Быть зависимым от IDE. Как это может навредить мне?

27

Я сильно зависимый от IDE разработчик (NetBeans и Eclipse, так как я являюсь разработчиком JAVA). Я могу правильно кодировать, если у меня есть IDE. Я могу многое положиться на это при разработке, отладке и развертывании. Но без IDE я ничего не могу сделать. Можно кодировать простую программу hello world или какую-то простую организацию пользовательского интерфейса, но мне нужна IDE для выполнения сложных задач или длительного написания простых вещей.

Как вы думаете, это вредит мне? Некоторые программисты, имеющие опыт разработки более 6 лет, твердо убеждены в том, что это может быть вредно, но я думаю, что если я могу быстро и правильно выполнять сложные задачи, почему я должен придерживаться инструментов блокнота и командной строки, чтобы выполнять трудоемкую задачу, когда У IDE есть кнопка, чтобы сделать это?

Prasham
источник
29
Не собираюсь добавлять это как ответ, но быть разработчиком на Java (только) - это то, что может навредить вам, и многое. Изучайте реальный язык, не будьте просто обезьяной кода из gazillions, использующих Java, только потому, что дешевле использовать плохих программистов. Пожалуйста?
Лакримология
5
Это интересный вопрос для меня; Я никогда не программировал ни на что, кроме Emacs или Vi. В результате я понятия не имею, что дает вам среда IDE, от которой вы можете даже зависеть.
Кастерма
8
@kasterma Позвольте мне увидеть: помощь по коду, инструменты рефакторинга, выделение кода, отладку, параметризованную отладку, отслеживание стека, наблюдение за параметрами, структурирование решения, rad, intellisense, фрагменты кода, помощь при компиляции и ошибках компилятора, применение стандартов, шаблоны быстрого запуска, синтаксис выделение и многое другое ;-)
Syg
2
Я думаю, что @Lacrymology приближается к другому моменту: Java зависит от IDE. Попробуйте выучить язык, в котором большинство кодеров не используют IDE, например Python, Scheme или Common Lisp; это даст вам новый навык и иногда будет держать вас вне IDE.
JasonFruit
7
@Lacrymology: Java не зависит от IDE и является одним из самых популярных языков. Я нахожу это шокирующим, вы не думаете, что это "достаточно реально".
Джош К

Ответы:

15

Как уже говорили другие, хорошо быть быстрее в вашей IDE, чем без нее, вот в чем дело. Умение правильно использовать сложные инструменты для повышения вашей производительности является важным навыком.

Однако чрезмерная зависимость от IDE может вызвать проблемы. Навыки и знания, которыми вы больше не занимаетесь, исчезнут, а ваше понимание некоторых аспектов может быть поверхностным. Классическим примером является компиляция и запуск в командной строке - почти каждый раз, когда я делаю это, я получаю что-то не так (обычно это связано с путем к классу), потому что 99% времени я позволяю Eclipse делать это за меня.

Это влияет не только на вас, когда вы находитесь за пределами IDE - если ваши знания о сложностях, которые IDE скрывает от вас, невелики, тогда, когда он пойдет не так (и пойдет не так, в какой-то момент), вы обнаружите, что это гораздо сложнее исправить.

Я справляюсь с этим двумя способами:

  1. Изучите новые инструменты в их самой основной форме. Например, я переключился с SVN на Mercurial, но начал с клиента командной строки, а не с плагином Eclipse. Это сделало мое понимание того, что происходит намного глубже, а это означало, что я знал, что происходит не так, и как это исправить, когда IDE выдает ошибки.

  2. Практикуйте свои базовые навыки кодирования в командной строке. Хорошее место для этого - CodingBat, где нет подсветки синтаксиса, соответствия скобкам , красных подчеркиваний, ничего. Не забывайте также практиковаться в навыках командной строки java и javac! (И любые другие подходящие для вашего рабочего процесса - для меня это также будет включать hg и ant)

Наконец, не беспокойтесь об этом слишком сильно. Маловероятно, что вам когда-либо придется выполнять большую часть работы без NetBeans или Eclipse, поэтому, если вы способны программировать без них и понимать, что IDE делает для вас, не имеет значения, что вы ' медленнее или делать больше ошибок без него.

ZoFreX
источник
2
В качестве хобби тратить время и мозговые клетки на знание деталей низкого уровня - это весело. С коммерческой точки зрения он теряет большую ценность. Это время лучше потратить на изучение бизнеса, а затем на реализацию с дополнительной эффективностью, которую предоставляет среда IDE.
Брайан Кноблаух
CodingBat теперь имеет подсветку синтаксиса.
masterxilo
29

Я думаю, что на самом деле все наоборот. Среда IDE избавляет вас от необходимости знать инфраструктуру наизусть (через intellisense) и упрощает скучные / повторяющиеся / сложные задачи (отладка, развертывание), вещи, которые вас действительно не волнуют. Это позволяет вам сосредоточиться на решении бизнес-задач под рукой. Знание и IDE, а также знание этого могут реально помочь вам быстрее написать поддерживаемый код.

И конечно, быть разработчиком - это не только. Опыт, накопленный вами в качестве разработчика, поможет вам найти правильное решение для проблемы, пересекающей ваш путь. Я думаю, что это настоящий навык.

SYG
источник
2
+1 за интеллигентность! Мне жаль людей, когда я смотрю, как они вводят каждый символ в программе, когда intellisense так сильно ускорит это.
Дэвид
8
Это называется автозаполнением для остальных из нас :)
Mhitza
4
@ Дэвид: Мне больно смотреть, как люди набирают два символа, а потом ждать полсекунды, пока не появится автозаполнение, и спросить их, что они на самом деле имеют в виду. Затем они перейдут к мышке и прокрутят доступные варианты, пока, наконец, не нажмут одну из них. Нет, автозаполнение не является находкой или даже действительно полезным. Это инструмент для ленивых.
Джош К
1
@ Джош К: Это правда. Автозаполнение может сделать плохих программистов хуже, но оно также может помочь хорошим программистам быть более эффективными. :)
Дэвид
2
@Josh Но, конечно же, есть еще кое-что, что нужно добавить в intellisense / autocomplete, чем завершить название вашего метода? Как насчет встроенных описаний методов (что делает и какие параметры они принимают), доступных перегрузок методов, доступа к фрагментам кода, понимания того, какие методы вы можете переопределить и т. Д. Он действительно полезен, ничего не делая с ленивостью ....
Сыг
24

Нет, это не "навредит" тебе. Конечно, вы должны понимать, как все работает без IDE (то есть вы должны понимать базовый процесс компиляции и т. Д.), Но давайте не будем мазохистски относиться к этому ... если IDE делает вас более продуктивным, чем не используя его, то почему бы не ты?

Дин Хардинг
источник
17

Быть зависимым от IDE имеет следующие риски:

  • в конечном итоге вы создаете программную сборку, которая требует определенной IDE и версии.
  • вы заставляете других людей в вашей команде использовать эту IDE для построения системы.
  • Вы не можете легко автоматизировать создание своего программного обеспечения.
  • Вы понятия не имеете, каковы ваши программные зависимости.

Поэтому убедитесь, что вы можете собрать свое программное обеспечение также из командной строки. Например, в Java используйте maven или ant. Тогда вы уменьшите вышеуказанные риски.

Другие риски зависимости IDE:

  • IDE помечает ошибки и предупреждения в вашем коде и дает вам быстрые исправления. Они могут не подходить - может быть, есть проблема с дизайном или требованиями.
  • вы забываете основы - вам нужно знать основы выбранного вами языка, чтобы вы могли овладеть им, и чтобы вы могли передать свое мастерство на собеседованиях.
  • в итоге вы застряли в песочнице IDE - боитесь попробовать что-то новое или что-либо, что не поддерживается вашей IDE. Например, ваша IDE может иметь довольно обширные функции для поиска и замены. Но это ничто по сравнению с мощью и скоростью таких инструментов командной строки, как grep и sed. Вы не можете заниматься разработкой для Android, потому что выбранная вами среда разработки (например, NetBeans) не поддерживает ее должным образом.
  • некоторые IDE не могут обрабатывать большие файлы - например, попробуйте открыть большой файл вывода сервера в Eclipse. Это занимает вечность и / или не хватает памяти.
Конор
источник
3
Я согласен с вашими соображениями, но я не думаю, что это касается реального вопроса. Например, спрашивающий не просто зависит от Netbeans. Если бы он или она были тогда, то все эти пункты могли бы быть верными, но вопрос, насколько я понимаю, заключался просто в использовании IDE в целом, в отличие от основного текстового редактора и командной строки.
JZD
2
Ссылки на экземпляры IDE в моем ответе - лишь примеры того, как зависимость IDE может быть рискованной. Я не особо указываю на netbeans или затмение.
Конор
Я использую Netbeans на работе, но я написал все свои скрипты Ant вручную, чтобы любой мог построить проект, не требуя Netbeans. Мне нравятся функции редактора и простота навигации по коду, но я делаю все возможное, чтобы сохранить независимость IDE.
Jonescb
9

Нет ничего плохого в том, чтобы быть более продуктивным с выбранным вами набором инструментов. Но если вы просто не можете работать без этого, я бы очень подозрительно относился к вашим внутренним знаниям.

Не отказывайтесь от IDE; но время от времени старайтесь делать пару «простых» классов, используя только редактор и документацию в браузере.

Помните, что даже быстрее, чем лучшие инструменты, нет необходимости использовать их.

Хавьер
источник
Я не остановлен и не ошеломлен (в 40% случаев), если у меня нет IDE, но моя скорость будет резко снижена, если у меня нет IDE. Для выполнения десятиминутной задачи с IDE я провел целый день с блокнотом и javac, когда мой ide потерпел крах.
Прашам
ну, блокнот идет слишком низко попробуйте редактор для программиста, например, блокнот ++. Думайте об этом как об упражнении: это не весело, но делает вас лучше, если вы делаете это регулярно.
Хавьер
4

Но без IDE я ничего не могу сделать.

Мне нужна IDE, чтобы делать сложные вещи или долго кодировать более простые вещи.

Вы можете это исправить, вы знаете.

Вы могли бы на самом деле выучить язык и рамки.

Ничто не мешает тебе.

Если, конечно, вы не хвастаетесь зависимостью от IDE.

Почему я должен придерживаться блокнота и инструментов командной строки, чтобы выполнить трудоемкую задачу, когда в IDE есть кнопка для этого?

Это не связано. «Stick to notepad» совершенно не связано с «без IDE я ничего не могу сделать». Ничего не делать в блокноте - все равно, что придерживаться блокнота. Что он?

С. Лотт
источник
3

Вы не настолько «зависимы», так как обе ваши IDE имеют открытый исходный код, поэтому они не просто исчезнут или случайно «улучшатся» до такой степени, что станут непригодными для использования. И язык, который вы выберете, не оставляет вам никаких вариантов - вы зависите от миллиардов библиотек, и просто глупо пытаться вспомнить все эти неважные вещи, когда есть IDE, чтобы помочь вам. Java многословна, многословна, и вы не сможете работать продуктивно без интеллектуальных инструментов, которые используют избыточную многословность.

SK-логика
источник
Вы бы сказали то же самое для другого языка? (я думаю, что PHP в моем случае), но я не уверен, что это хороший совет, как общее правило. JAVA может быть исключением здесь
Quamis
1
Я бы сказал, то же самое для C #, может быть и для PHP. Любая комбинация языка и проблемной области, где вам нужно использовать огромный набор разнообразных библиотек, потребует умных инструментов. Некоторые языки достаточно мощные и выразительные, чтобы их можно было использовать без многочисленных библиотек - и вы можете программировать простые вещи без IDE. Некоторые языки всегда нуждаются в помощи, даже для самых простых вещей. Когда я пишу код на Лиспе, я в порядке с emacs или даже с CLI REPL. Когда я пишу код на C # или Java, я ничего не сделаю без приличной IDE (msvs или eclipse).
SK-logic
но не должна ли потребность в «intellisense» или «конструкторе форм» быть предупреждением для плохо организованных (или именованных) членов объекта? Я заметил, что люди, которые часто используют intellisense, обычно используют более длинные и более подробные имена для объектов / функций / переменных, что затрудняет их запоминание. Должен ли я понять, что это тоже хорошая привычка?
Quamis
Куамис: Разве это не наоборот? Необходимость печатать заставляет вас выбирать короткие имена, которые не описывают класс / метод так же, как длинное имя.
DistantEcho
@Niphra: да, и мне нравятся короткие имена больше :), на мой взгляд, облегчает чтение кода ... если метод делает что-то, что не может быть кратко описано, то да, более длинное имя приемлемо, но я Я пытаюсь сделать это коротким, и я не вижу в этом ничего плохого.
Quamis
3

Я думаю, что вред от чрезмерной зависимости от IDE проявляется, когда вы бездумно полагаетесь на то, что мастера создадут для вас код. И NetBeans, и Eclipse довольно легки в этом, что хорошо для IMO. Еще один вред, если вы знаете только одну IDE и не можете использовать другие. У некоторых компаний есть политика, которая диктует, что вы будете использовать. Хорошо это или плохо, но это то, что есть.

Я бы сказал, что если IDE не сделает вас более продуктивным, это не стоит. Например, я самый продуктивный с JetBrains IDEA, но Eclipse прошел большой путь, и я могу быть довольно продуктивным с этим. Eclipse также был адаптирован для широкого спектра применений, что является двойным преимуществом. Хотя я могу обойтись в VIM или каком-либо другом текстовом редакторе, есть другие функции, которые я нахожу незаменимыми в большинстве современных IDE, такие как поддержка рефакторинга.

Берин Лорич
источник
2

Я не думаю, что вы делаете себе какие-либо услуги. Конечно, вы используете Eclipse, который находится в свободном доступе и работает везде, где у вас есть JVM. Но раньше я сталкивался с ситуациями, когда мне приходилось удаленно подключаться к другому компьютеру через терминальную сессию без X-сервера, то есть мне приходилось использовать простой текстовый редактор, такой как vi, и использовать командную строку. Я также работаю в среде, где сеть разработки физически изолирована от остального мира, и все передачи между ней и общедоступной сетью осуществляются через физические носители. Единственная причина, по которой у нас есть Eclipse в этой сети, заключается в том, что он прошел несколько уровней одобрения в первую очередь.

Я разрезал мои зубы на C и Fortran 77 в командной строке среды (VAX / VMS), поэтому я считаю , понятие необходимости в IDE несколько подозрительно. Тем не менее, это крошечные языки по сравнению со зверем Java; учитывая, что вам нужен вилочный погрузчик, чтобы носить с собой новейшую книгу о Java Nutshell, я вижу, как доступность IDE значительно облегчает жизнь.

Джон Боде
источник
2

Это может на самом деле не «навредить» вам, но вы бы выиграли, если бы вы также знали, что делать без IDE. Не бойтесь расширять свой кругозор.

Помните, что большинство инструментов разработчика сначала пишутся как инструменты командной строки. IDE - это запоздалая мысль, и это нормально. С другой стороны, вы часто найдете некоторые «скрытые переключатели командной строки gem» или «продвинутые трюки», которые вы никогда не сможете узнать, если будете держать точку и нажимать.

Итак, чтобы ответить на вопрос «Как это может навредить мне?» Я думаю, что это повредит вам, когда вы станете настолько привязанными к нему, что вы будете верить, что все инструменты командной строки будут работать медленнее, чем нажатие кнопок, до такой степени, что вы избегаете изучения инструментов командной строки (которые являются источниками).

Это похоже на изучение ассемблера как программиста - очень немногие из нас сегодня пишут ассемблер вручную, но я считаю, что те, кто понимает ассемблер, лучше программистов на любом языке, который они используют.

kizzx2
источник
2

Быть зависимым от компьютера уже довольно вредно. Я всегда программирую на набедренной повязке с большой каменной табличкой и молотком. Код требует времени, чтобы разбить, но когда вы заканчиваете особенно большой метод, вы обычно едите что-то. Там я стараюсь быть независимым от супермаркета и подобных вещей, поэтому я выращиваю всю свою пшеницу дома и просто ем это. Конечно, поставщики семян пшеницы и воды в значительной степени меня зацепили, заставляя меня думать, что выхода из этого цикла зависимости нет.

Серьезно: если <disclaimer>вы используете IDE, и </disclaimer>вы обнаружите, что у вас нет IDE, и вы ДОЛЖНЫ программировать, вы должны просто считать себя игрой законченной и

  1. Позвоните в IT или
  2. Решите проблему самостоятельно, если вы являетесь ИТ

Вы не только не должны программировать без каких-либо инструментов, которые считаете нужными, но вы также не можете использовать зубную пасту в качестве термопасты.

Дэн Розенстарк
источник
1

Зависимость от IDE может не обязательно навредить вам, но способность работать без выбранной вами среды является жизненно важным навыком.

IDE могут помешать вам учиться «мелочам», которые обычно незначительны, и могут помочь вам выполнить работу быстрее, потому что вы избегаете бесполезного набора текста / шаблона. Вы также можете исправлять проблемы по мере их возникновения, например, неправильно писать функции.

Мое личное правило при изучении любого языка / фреймворка / и т. Д. - сначала выучить его нелегко. Затем, когда я справился с этим, я упал, я заработал право сделать это простым способом. Дело в том, что если вы не знаете некоторые мелкие мелкие детали, когда ваша канализационная магистраль начнет извергать дерьмо из кухонной раковины, вы будете SOL. Если вы знаете, какие основные операции могут быть потенциальной причиной, вы, скорее всего, решите проблему или полностью ее не допустите.


источник
0

Давайте попробуем хороший текстовый редактор, например, PSPad для MS-Windows (бесплатная), TextMate для Mac OS X, Geany для рабочего стола GNU (opensource) или Kate для KDE (opensource).

MultiEdit4.0 для MS-DOS изменил мою жизнь несколько лет назад, с тех пор я очень чувствителен к текстовым редакторам.

ern0
источник