Залежність від IDE Як мені це може нашкодити?


27

Я дуже залежний від IDE розробник (NetBeans та Eclipse, оскільки я розробник JAVA). Я можу правильно кодувати, якщо у мене є IDE. Я можу багато чого покластися на це для розробки, налагодження та розгортання. Але без IDE я нічого не можу зробити. Можу кодувати просту програму зі світовим привітанням або просту організацію інтерфейсу інтерфейсу, але мені потрібна IDE, щоб робити складні речі або довге кодування більш простих речей.

Думаєте, це мені шкодить? Деякі програмісти, які мають більше ніж 6 років досвіду розробки, твердо вірять, що це може нашкодити, але я думаю, що якщо я можу робити якісь складні речі швидко і правильно, чому я повинен дотримуватися інструментів блокноту та командного рядка, щоб виконувати трудомістке завдання У IDE для цього є натискання кнопки?


29
Я не збираюся додавати це як відповідь, але бути розробником Java (лише) - це те, що може завдати вам шкоди. Вивчіть справжню мову, не просто будьте іншою мавпою з коду з газильйонів за допомогою Java лише тому, що дешевше використовувати поганих програмістів. Будь ласка?
Лакрімологія

5
Це захоплююче питання для мене; Я ніколи не програмував нічого іншого, крім Emacs або Vi. Як наслідок, я не маю уявлення, що дає вам IDE, від якого ви навіть можете стати залежним.
kasterma

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 та мурашник)

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


2
Як хобі, витрачати час і клітини мозку на знання деталей низького рівня - це задоволення. Комерційно він втрачає багато цінності. Цей час краще витратити на вивчення бізнесу, а потім на впровадження з додатковою ефективністю, яку забезпечує IDE.
Брайан Ноблеуч,

CodingBat має підсвічування синтаксису зараз.
masterxilo

29

Ні. Я думаю, що насправді все навпаки. IDE забирає необхідність, щоб ви знали основу напам’ять (через intellisense) і спрощує в іншому випадку нудні / повторювані / складні завдання (налагодження, розгортання), речі, які вам дійсно не цікаві. Це дозволяє зосередитись на вирішенні бізнес-проблеми . Знання та IDE та добре знаючи це дійсно можуть допомогти вам швидше писати підтримуваний код.

І звичайно бути розробником - це не тільки це. Досвід, який ви маєте як розробник, допомагає застосувати правильне рішення проблеми, яка перетинає ваш шлях. Я думаю, що це справжня майстерність.


2
+1 для intellisense! Мені шкода людей, коли я спостерігаю, як вони вводять кожного персонажа в програму, коли intellisense настільки швидко прискорить це.
Давид

8
Це називається автозаповненням для всіх нас :)
mhitza

4
@David: Мені боляче спостерігати, як люди набирають двох символів, потім чекають півсекунди, щоб автозаповнення з’явилося і запитало їх, що вони насправді мають на увазі. Потім вони перейдуть до миші та прокручуватимуть доступні виділення, поки нарешті не натиснуть на один із них. Ні, автозаповнення не є добутком і навіть справді корисним. Це інструмент ледачих.
Джош К

1
@Josh K: Це правда. Автозаповнення може погіршити поганих програмістів, але це також може допомогти хорошим програмістам бути ефективнішими. :)
Давид

2
@Josh Але, безумовно, є більше для intellisense / autocomplete, то закінчуючи назву вашого методу? Як щодо вбудованих описів методів (що таке та які параметри потрібно), методу availabe перевантаження, доступ до фрагментів коду, розуміння того, якими методами ви можете перекрити і т. Д. Це вважає, що це справді корисно, нічого спільного з лінивим ....
Сиг

24

Ні, це не шкодить вам. Звичайно, ви повинні розуміти, як все працює без IDE (тобто ви повинні розуміти основний процес компіляції тощо), але не будемо мазохістично з цього приводу ... якщо IDE робить вас більш продуктивним, ніж не використовуйте його, то чому б це не було ' ти?


17

Бути залежним від IDE має такі ризики:

  • ви в кінцевому підсумку створюєте збірку програмного забезпечення, що вимагає конкретної IDE та версії.
  • ви змушуєте інших людей у ​​вашій команді використовувати цю IDE для створення системи.
  • ви не можете легко автоматизувати створення свого програмного забезпечення.
  • Ви не маєте уявлення про те, якими є Ваші програмні залежності.

Тому переконайтеся, що ви також можете створити програмне забезпечення з командного рядка. Наприклад, у Java використовують мавен або мураш. Тоді ви пом’якшите зазначені вище ризики.

Інші ризики залежності від ІДЕ:

  • помилки та попередження IDE у вашому коді та дає швидкі виправлення. Вони можуть бути невідповідними - можливо, у грі є питання щодо дизайну чи вимог.
  • ви забуваєте основи - вам потрібно знати основи обраної вами мови, щоб ви могли оволодіти нею і щоб ви могли передати знання на співбесіді.
  • ви потрапили в пісочну коробку IDE - боїтеся спробувати щось нове або що-небудь, що не підтримується вашим IDE. Наприклад, ваш IDE може мати досить великі функції пошуку та заміни. Але це ніщо в порівнянні з потужністю та швидкістю інструментів командного рядка, таких як grep і sed. Ви не можете займатися розробкою Android, оскільки вибраний IDE (наприклад, Netbeans) не підтримує його добре.
  • деякі IDE не можуть обробляти великі файли - наприклад, спробуйте відкрити великий файл вихідного сервера в затемненні. Це займає вічно та / або втрачає пам’ять.

3
Я згоден з вашими пунктами, але я не думаю, що це стосується справжнього питання. Наприклад, запитувач не просто залежить від Netbeans. Якби він / вона був, то всі ці моменти можуть бути правдивими, але питання, наскільки я розумію, це просто використання IDE взагалі на відміну від основного редактора тексту та командного рядка.
jzd

2
Посилання на випадки IDE у моїй відповіді - лише приклади того, як залежність IDE може бути ризикованою. Я конкретно не вказую на небеса або затемнення.
Conor

Я використовую Netbeans на роботі, але я написав усі свої сценарії Ant вручну, щоб кожен міг створити проект, не вимагаючи Netbeans. Мені подобаються функції редактора і легко переміщуватися по коду, але я роблю все можливе, щоб він залишався незалежним IDE.
jonescb

9

Немає нічого поганого в тому, щоб бути більш продуктивним з обраним вами набором інструментів. Але якщо ви просто не можете працювати без цього, я б дуже підозріло ставився до ваших внутрішніх знань.

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

Пам'ятайте, що навіть швидше, ніж найкращі інструменти, не потрібно їх використовувати.


Якщо я не маю IDE, я не зупиняюсь або глухо шумую (у 40% випадків), але моя швидкість буде різко знижена, якщо у мене немає IDE. Щоб виконати десять хвилин завдання з IDE, я пройшов цілий день з блокнотом та javac, коли моя ідея зазнала краху.
Прашам

ну, блокнот йде занадто низько. спробуйте редактор програміста, як-от блокнот ++. Подумайте про це як про вправу: це не весело, але робить вас краще, якщо ви робите це регулярно.
Хав'єр

4

Але без IDE я нічого не можу зробити.

Мені потрібна IDE, щоб робити складні речі або довге кодування більш простих речей.

Ви можете це виправити, знаєте.

Ви насправді могли вивчити мову та рамки.

Ніщо вас не зупиняє.

Якщо, звичайно, ви не хвастаєтесь залежністю від IDE.

чому я повинен дотримуватися інструментів блокнота та командного рядка для виконання трудомісткого завдання, коли у IDE натискають кнопку для цього?

Не пов'язаний між собою. "Прилипати до блокнота" абсолютно не пов'язані з "без IDE я нічого не можу зробити". Не робити нічого в блокноті - це не що інше, як приклеїтись до блокнота. Що це таке?


3

Ви не такі "залежні", оскільки обидва ваші IDE є відкритим кодом, тому вони не просто зникнуть або випадково "вдосконаляться" до стану непридатності. І обрана вами мова не залишає вам жодних варіантів - ви залежні від gazillions бібліотек, і просто дурно намагатися запам’ятати всі ті неважливі речі, коли є IDE, який допоможе вам. Java є багатослівним, багатослівним, і ви не можете бути продуктивними без розумних інструментів, які підтримують зайву багатослівність.


Ви б сказали те ж саме для іншої мови? (Я думаю, що PHP в моєму випадку), але я не впевнений, що це хороша порада, як загальне правило. JAVA, можливо, тут є винятком
Quamis

1
Я б сказав, що те ж саме для C #, може бути і для PHP. Будь-яке поєднання мови та проблемного домену, де вам доведеться використовувати величезний набір різноманітних бібліотек, знадобляться розумні засоби. Деякі мови досить потужні та виразні, щоб їх можна було використовувати без численних бібліотек - і ви можете кодувати прості речі без IDE. Деякі мови потребують допомоги завжди навіть для найпростіших речей. Коли я кодую в Lisp, я добре з emacs або навіть CLI REPL. Коли я кодую в C # або Java, я нічого не буду робити без гідного IDE (msvs або eclipse).
SK-логіка

але чи не повинно бути "intellisense" або "дизайнер форм" попередження для погано організованих (або названих) членів об'єкта? Я помічав, що люди, які багато використовують інтеліссенс, як правило, використовують більш довгі і багатослівні імена для об'єктів / функцій / змінних, що ускладнює запам’ятовування цих імен в першу чергу. Чи повинен я розуміти, що це теж хороша звичка?
Quamis

Кваміс: Хіба не навпаки? Набір тексту змушує вибирати короткі імена, які не описують клас / метод, а також довге ім'я.
DistantEcho

@Niphra: так, і я песоніально люблю більш короткі назви більше :), на мою думку, полегшує читання код .. Якщо метод робить щось, що неможливо описати коротко, то так, прийнятне довше ім'я, але я Я намагаюся тримати це коротко, і я не бачу нічого поганого в цьому.
Quamis

3

Я думаю, що шкода від надмірної залежності від IDE спричиняється, коли ви безглуздо покладаєтесь на майстрів, щоб створити код для вас. І NetBeans, і Eclipse досить легкі для тих, що добре. Ще одна шкода буде, якщо ви знаєте лише одну IDE і не можете використовувати інші. Деякі компанії мають політику, яка диктує, що ви будете використовувати. На краще чи гірше - це те, що воно є.

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


2

Я не думаю, що ти робиш собі прихильність. Зрозуміло, ви використовуєте Eclipse, який є у вільному доступі та працює в будь-якому місці, де у вас є JVM. Але я зіткнувся з ситуаціями, коли мені довелося переїхати на іншу машину через термінальний сеанс без X-сервера, це означає, що мені довелося використовувати звичайний текстовий редактор типу vi та будувати командний рядок. Я також працюю в середовищі, коли мережа розвитку фізично ізольована від решти світу, а всі передачі між нею та загальнодоступною мережею здійснюються через фізичні носії інформації. Єдина причина, по якій ми маємо Eclipse в цій мережі, полягає в тому, що вона спочатку пройшла кілька шарів затвердження.

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


2

Це може насправді не «нашкодити», але ви отримаєте користь, якщо ви також знайомі з тим, як робити речі без IDE. Не бійтеся розширювати свій обрій.

Пам'ятайте, що більшість інструментів розробника спочатку записуються як інструменти командного рядка. ІДЕ - це думки, що добре. З іншого боку, ви часто знаходите деякі "приховані перемикачі командного рядка дорогоцінних каменів" або "розширені хитрощі", про які ви ніколи не зможете дізнатися, якщо триматимете точку та клацання.

Отже, щоб відповісти на запитання "Як мені це може нашкодити?" Я думаю, це зашкодить тобі, коли ти так прив’яжешся до нього, що ти вважаєш, що всі інструменти командного рядка будуть повільнішими, ніж натискання кнопок, до того, що ти уникаєш вивчення інструментів командного рядка (які є джерелами).

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


2

Бути залежним від комп’ютера вже досить шкідливо. Я завжди програмую в тканину з локонами з великим кам'яним планшетом і молотком. Код потребує певного часу, щоб вибити, але коли ви закінчите особливо великий метод, ви зазвичай їсте щось. Там я намагаюся бути незалежним від супермаркету та подібних речей, тому я вирощую всю свою пшеницю вдома і просто їжу це. Звичайно, постачальники насіння пшениці та води, як правило, мене зачепили, змусивши мене думати, що виходу із цього циклу залежності немає.

Серйозно: якщо <disclaimer>ви використовуєте IDE, і </disclaimer>ви опинилися без IDE, і ви ОБОВ'ЯЗКОВО програму, вам слід просто розглянути можливість гри і

  1. Телефонуйте ІТ або
  2. Вирішіть проблему самостійно, якщо ви ІТ

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


1

Бути залежним від ІДЕ не може завдати шкоди, але можливість працювати без обраного середовища - життєво важливий навик.

ІДЕ може зупинити вас від вивчення «дрібниць», які, як правило, незначні і можуть допомогти вам швидше виконати роботу, оскільки ви уникаєте марного набору тексту / котла. Ви також можете виправляти проблеми в міру виникнення, наприклад, неправильної написання функції.

Моє особисте правило, коли я вивчаю будь-яку мову / рамку / і т. Д., - це спочатку вивчити її важким шляхом. Потім, як тільки я це освоїв, я впав, я заробив право робити це простим способом. Річ у тім, що якщо ви не знаєте деяких дрібниць, що містять азоту, коли ваша основна каналізація починає виводити лайно з кухонної мийки, ви будете СОЛ. Якщо ви знаєте, які основні операції можуть бути потенційною причиною, ви, ймовірно, можете виправити проблему або взагалі зупинити її виникнення.


0

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.