Що виправдовує використання IDE порівняно зі стандартним редактором? [зачинено]


39

Я вважаю, що використовую свій текстовий редактор за вибором (vim, nano, gedit, вибирай свою отруту) набагато частіше, ніж будь-який IDE, як пізно.

Помітивши, що мої ярлики стають запиленими, я почав думати про це і замислюватися: що виправдовує використання IDE для вас проти текстового редактора ?

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


можливий дублікат програмістів.stackexchange.com/ questions/ 1003/… ?
Ларрі Коулман

що ти насправді робиш у своїх редакторах?

Пишіть код, розробляйте програми, ... майже все, як останнім часом.
Кріс

15
Особисто я вважаю, що IDE набагато корисніше при читанні коду інших людей (особливо великих проектів), ніж при написанні власного коду. IDE дозволяє вам легше переходити через джерело, що полегшує швидке розуміння вихідного коду інших людей.
Чарльз Сальвія

3
Я хотів би перевернути це питання. Що виправдовує НЕ використання IDE.
Найлер

Відповіді:


69

Я: інтеграція . Хороший текстовий редактор може бути приємним для написання коду, але більшість вашого програмування не витрачається на написання; він провів тестування та налагодження, і для цього ви хочете, щоб ваш текстовий редактор інтегрувався з вашим компілятором і вашим налагоджувачем. Це найбільша сила IDE.


Якби тільки я міг знайти той, який мені не заважав :)
Tim Post

5
Я щойно прийняв редагування підрозділу як ціну, яку я плачу за зручність інтеграції.
TMN

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

8
@Tom, Тестування програмує, коли ви можете автоматизувати тести, які ви робите весь час. В іншому випадку перевірте, яким би методом не було найкращої якості.
Андрес Яан Так

49

Це мої улюблені функції мого улюбленого IDE, IntelliJ, які я люблю використовувати для Java, PHP, Javascript, HTML, навіть ActionScript.

  • Помилка перевірки - як перевірка орфографії в прямому ефірі. Абсолютно важливо.
  • НавігаціяCtrl+click по коду - на функцію, змінну, тип, щоб перейти до визначення. (IntelliJ дуже добре в цьому на всіх перерахованих вище мовах)
  • Поповнення коду - я Ctrl+spaceпостійно використовую, щоб допомогти заповнити ім'я класу чи методу, яке мені потрібно. Це прискорює кодування тонни і навіть допомагає ловити помилки, перш ніж вони трапляться, коли щось потрібне вам недоступне з контексту, в якому ви перебуваєте. IntelliJ навіть допоможе вам розширити абревіатури - тип NPE, хіт Ctrl+space, і він покаже "NullPointerException", "NoPageError" і т. Д. Натискання Alt+enterна автоматичне додавання також importдуже добре.
  • Генерація коду - створюйте геттери та сетери, реалізовуйте методи з інтерфейсу за допомогою декількох клацань.
  • Дуже хороше забарвлення коду - IntelliJ не тільки стандартне ключове слово, рядок, забарвлення імені змінної, але й кольорові змінні елементи, локальні змінні, параметри. У ActionScript змінна, яка насправді сеттер / геттер, буде пофарбована як функція.
  • Рефакторинг - Перейменування без помилок є найбільшим. IntelliJ дуже добре перейменовує навіть сетери та геттери або строкові звичаї. Звичайно, існує пошук на основі регулярних виразів і їх заміна, коли вам це потрібно, і параметр "зберегти регістр", який дозволяє вам замінити "myNumber", "MyNumber" і "MYNUMBER" на "myString", "MyString" і "MYSTRING" за одну операцію
  • Інтеграція контролю версій - Ми використовуємо SVN, і мої улюблені функції IDE VC дозволяють створювати, видаляти, переміщувати класи, не замислюючись про SVN, легко переглядаючи історію, дуже хороший інструмент різного розширення, хороші можливості об’єднання та анотації файлів (показує поточна історія) в редакторі.
  • Імпорт залежності - Коли ви покладаєтесь на сторонні бібліотеки, для яких у вас є джерело, ви можете легко перейти до коду для довідки, налагодження тощо.
  • Розумне введення тексту - вставлення коду та автоматичне вставлення його в потрібне положення вкладки, автоматичне заповнення кінцевих дужок, дужок, цитат тощо.
  • Дуже хороший тестовий бігун для JUnit, FlexUnit, PHPUnit
  • Налагодження - звичайно. Налагодження JBoss, Jetty, навіть Flash бездоганно. Ctrl + клацання слідів стека, щоб перейти праворуч до коду.

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

IntelliJ також використовує, Ctrl+spaceщоб запропонувати імена змінних. У Java, якщо ви оголосите нову змінну EventMessageItem і натисніть Ctrl+space, вона запропонує "eventMessageItem", "eventMessage", "item" тощо.

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


4
+ 1 для згадки Ідея IntelliJ - Мені просто подобається
artjom

3
+1, більшість пунктів тут стосуються будь-яких гідних IDE, або повинні :)
Матьє

21

IDE розуміє ваш код набагато краще, ніж редактор. Це дозволяє, наприклад, завершити ідентифікатор і рефакторинг, який для багатослівних мов, таких як Java - це Бог, що надсилає,


1
Зауважте, що для цього розуміння потрібно зберігати пам'ять. Отже, IDE, як правило, дуже голодний на ресурси в порівнянні з редактором "придатний на флопі".

19
Так, але моя 8Gb i7 dev машина повинна щось робити, поки я друкую. : D
Домінік МакДоннелл

IDE не повинні бути голодними ресурсів. Але Smalltalk - це, мабуть, кращий випадок: легкий, дуже простий синтаксис відображення тощо.
Френк Ширар

@Frank, залежить від того, що ти хочеш, щоб вони робили, і наскільки це легко.

18
[To the IDE] You had me at intellisense/autocomplete

1
+1 Навіть незважаючи на те, що завжди неприємно розуміти, що я більше ніколи не набираю повного класу, методу чи назви властивості, і точно знаю, скільки натискань клавіш потрібно, щоб виділити правильний параметр автозаповнення ... tic-tic-tic-TAB- dot-tic-tic-tic-TAB-dot-tic-tic-tic
grossvogel

5
@gross, але це правильно ! Введення вручну часто передбачає помилки введення тексту.

@ TThorbjørnRavnAndersen Якщо у вас є дві речі, названі однаково, і випадково не введіть достатньо символів, щоб отримати потрібний. Я випадково вставив властивість "NumberOfPoints" у кількох областях, для яких потрібна "NumberOfSegments" через те, що я не приділяв належної уваги моєму автозавершенню: p. Коли це було сказано, я б швидше мав автозавершення, ніж ні.
KChaloux

14

Продуктивність. Чи є якесь інше обґрунтування, яке має сенс? Для мене добре розроблений IDE, який централізує безліч функцій, які я виконую під час програмування - створення та редагування коду, використання керування джерелом, налагодження, взаємодія з інструментами управління проектами, спілкування з іншими програмістами, створення документації, запуск автоматизованих тестів - різко знижує тертя процесу, що знижує мою продуктивність.

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

Я використовував багато, але IDE, які я повертаю до перегляду, - це Visual Studio, Wing IDE та NetBeans. Все додає значної цінності часу, який я провожу програмуванням.


9

Історично IDE забезпечували незрівнянну зручність на комп'ютері з однозначним завданням. Моєму першому компілятору C потрібні наступні кроки циклу редагування-збирання:

  • Запуск редактора
  • Редагувати програму
  • Збережіть програму, вийдіть із редактора
  • Програма складання
  • Зберіть складену програму
  • Посилання складеної та зібраної програми
  • Запустити програму

в моїй системі CP / M. (Я міг би значною мірою автоматизувати це як пакетна програма, якби мої дискові диски були більшими.)

Коли я отримав Turbo Pascal, я був у захваті від можливості редагувати редактор під час компіляції та налагодження.

Я вважаю, що саме це зробило ІДЕ насамперед популярними.


Але все це можна зробити з багатьох редакторів; Наприклад, Emacs.
JasonFruit

@JasonFruit: Безумовно. Я пояснюю, що вперше мене привернуло до них. У ті часи я працював CP / M на TRS-80 Mod 4, і я вважаю, що Emacs тоді ще базувався на TECO.
Девід Торнлі

Гаразд, крапка. :-) (Смайлик для заповнення необхідної кількості символів.)
JasonFruit

2
@JasonFruit, машини CP / M-80 мали максимум 64 Кб оперативної пам’яті. Поміркуйте, скільки Emacs ви можете вмістити в це.

7

Якщо ви вводите код у Lisp, Emacs має такі можливості, як Intellisense, як пошук параметрів методу та автодоповнення, тож можна сказати, що це оригінальний IDE. Також приємно мати можливість використовувати одну програму для декількох завдань (редагування в цілому, командний рядок, читання новин).

Взагалі питання редактора проти IDE, схоже, залежить від мови програмування. Наприклад, із того, що я бачив, кодери Рубі та Хаскелла, схоже, віддають перевагу улюбленому редактору тексту.


Emacs дійсно може це зробити майже будь-якою мовою. Режим PHP досить хороший, це режими Javascript, Haskell, Erlang та SQL. (Інші можуть бути і хорошими, але я їх не використовував).
Захарій К

Як тільки ви додасте всі ці дзвіночки до emacs (або будь-якого редактора з цього приводу), у вас є IDE. Інтегроване середовище розробки. Я порівнюю це з купівлею торта з пекарні (IDE) проти виготовлення його з нуля (Tricked out editor)
sal

+1, для Coq, Haskell та Lisp Emacs - це єдине, що має гідну підтримку
jozefg

4
  • Компіляція одним клацанням миші
  • Налагодження
  • Шаблони коду
  • Заповнення коду
  • Інтеграція з інструментами контролю та рефакторингу версій
  • Простіше тестування одиниць

назвати декілька


3

Я думаю, що відповідь багато залежатиме від того, якою мовою програмування ви користуєтесь і наскільки ви добре в ній. Для таких мов, як JAVA, IDE обов'язково, якщо ви робите щось серйозне. У будь-якому іншому випадку, коли мова йде про мови сценаріїв, такі як JS або Ruby IDES, не користуються великою користю.

Для моєї розробки я використовую блокнот ++ та набір скриптів оболонок (для резервного копіювання, git commits), і він працює чудово.


Я використовую GVIM для Javascript і виявляю, що це набагато швидше, ніж використання IDE. Він також використовує набагато менше пам'яті. Додайте приблизно 3-4 сценарії оболонки для таких речей, як jsLint, форматування та контроль селену, і я вважаю, що мені майже ніколи не потрібно знімати руку з клавіатури. (І якщо чесно, я, мабуть, міг би перетворити всі ці сценарії на плагіни VIM, якщо б мені було байдуже)
Zachary K

3

Деякі аргументи на користь "редакторів":

  1. Бувають випадки, коли IDE ще не розроблений або ніколи не буде.
  2. За допомогою редактора ви можете вносити зміни "швидше" та хірургічніше.
  3. Для цього потрібно набагато менше ресурсів (так простіше використовувати одночасно багато відкритих)
  4. Тому що це єдиний спосіб вирішити деякі питання, як описані тут .
  5. (особисте) Іноді, коли мені доводиться вводити все, я більше працюю, використовуючи своє стисне і більше займаюся тим, що я друкую. Багато разів я виявляв, наприклад, орфографічну помилку в методі (formaqString), який би пройшов непомітно за допомогою IDE.
  6. Це полегшує роботу лише за допомогою клавіатури (швидкість / потік)
  7. Ментальність використання макросів або інших заощаджень часу.

Я щодня використовую IDE для роботи, інакше писати Java / C # важко.

(2) порівняно з (3): В основному лише можливість віддалено редагувати файли (через ssh / віддалений робочий стіл) і робити мінімальні зміни в конфігурації або файлах віддаленого сервера.


2

Залежно від вашої мови, деякі IDE також включають візуальні дизайнери форм / вікон.

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


2

Я використовую IDE для тестування / налагодження / інтеграції та KEDIT для редагування, оскільки IDE серйозно бракує можливостей редагування.
Оскільки .NET IDE розпізнає зовнішні зміни, все, що мені потрібно зробити, це зберегти в редакторі та прийняти підказку для перезавантаження джерела. Це дозволяє мені оптимізувати свої можливості редагування та налагодження одночасно.
Для інших IDE я використовую KEDIT як програмування шаблонів і програму пошуку джерела і копіюю / вставляю це джерело в IDE.


Що ви робите в kedit, який IDE не може зробити? Мені по-справжньому цікаво, що ніколи не використовував нічого, окрім IDE, для більшості моїх серйозних кодувань ...
Дін Гардінг,

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

1

Для IDE: -
покращені функції підключаються до коробки.
- деякі функції настільки специфічні для вашої основи, що редактори не мають еквівалента.

Для редактора: -
Тримаючи руки на клавіатурі.
- ваше середовище розробників однакове для всіх систем -
кращі сценарії для вашого редактора -
деякі функції IDE доступні із зовнішніми інструментами або сценаріями. (intellisense, перейти до визначення, знайти посилання)


0

Коротка крива навчання. Це воно.


4
Я здогадуюсь, ви не викреслили жодного роду IDE
Харальд Шейріх,

4
З vim як моїм пілотом мені не потрібно.
nate c

Коротка крива навчання для ....? пробачте, але це для мене було не очевидно.
Кріс

0

Єдиний, який я дійсно порекомендував би - це налагоджувач. IDE - це дійсно редактор, на якому додано набір інших gubbins, але якщо ви можете компілювати, ввівши make (або стрілку вгору + enter) у командному рядку, IDE вам не потрібен . Якщо ви можете взяти на себе зобов'язання в SCM, клацнувши правою кнопкою миші в Explorer і вибравши потрібний пункт меню, IDE вам не потрібен.

Тепер я знаю, що деяким людям потрібні такі речі, як підтримка рефакторингу (введіть свій код прямо в перший раз :)) або якийсь інтегрований дизайнер графічного інтерфейсу (але навіть тоді, використовуючи Visual Studio, я використовую Expression для роботи з графічним інтерфейсом, а не шалену підтримку XAML у VS ), і багатьом людям потрібні інтелісценційні та автозавершені (особливо для багатослівних мов, таких як Java та C #, які мають усімазначними іменами).

Але для мене відладчик графічного інтерфейсу - єдиний справді хороший привід використовувати IDE. Я все ще використовую налагоджувач "командного рядка" (ну, windbg), але для кожного дня його вбудований VS.


0

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

  • Мова має багатий стандартний API, який у вікнах IDE може сприяти швидкому розвитку.
  • Код плит котла дуже багато. (Вимушена спроба / ловля, геттери / сетери тощо)
  • Автозаповнення може точно відповідати вашим потребам кодування
  • Ваш набір тестування мовних одиниць інтегрований у вказану IDE.
  • IDE обізнаний і підтримує численні мовні бібліотеки щодо найкращих практик.
  • Доступні плагіни для створення роботи mo'betta
  • Це не так важко, що сповільнює вашу систему
  • Високо інтегрований налагоджувач? Це допомагає.

Проблема полягає не в тому, що всі мови дійсно отримують великий приріст продуктивності завдяки всебічному IDE. Я використовую IDE для певної роботи (Java, C #), а не для інших (Python, Ruby, Coldfusion). Все це насправді є рівноважним актом. Деякі мови просто не потребують такого всебічного набору.

Чи є IDE для кожного? Звичайно. Вам завжди потрібна? Не зовсім.

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