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

Пролог

До того, как я занялся разработкой JavaScript, я много занимался низкоуровневым программированием, в основном на C/C++. В результате у меня появилась привычка использовать текстовый редактор для написания кода и окно терминала для его сборки и запуска. Таким образом, это было мое мышление, когда я начал работать с JavaScript, поэтому я начал использовать текстовые редакторы для первоначального написания своего кода JavaScript. Только позже я понял полезность, которую предоставляют полные IDE.

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

Возвышенный текст 3

Моя история разработки JavaScript начинается с Sublime Text, который я впервые начал использовать в начале моей стажировки, примерно в мае 2016 года. Sublime Text, вероятно, является моим любимым редактором типа замены блокнота (я уверен, что многие думают так же), как он кажется наиболее совершенным, имеет все необходимые мне функции и в основном просто работает. Редактирование кода JavaScript в нем дает вам обычные возможности редактора, такие как поиск/замена слов, автоматический отступ, автоматическая вставка скобок и тому подобное. Он также имеет удобную функцию выделения всех совпадающих экземпляров любого выбранного вами текста, что-то вроде всегда активной функции мягкого поиска, которая значительно упростила переименование вещей или поиск использований в одном и том же файле. Мне также понравилось, как он восстанавливал открытые файлы при закрытии и повторном запуске, включая несохраненные. Это было действительно приятно использовать.

К сожалению, будучи текстовым редактором, Sublime не имеет полных функций IDE, таких как объявление перехода или поиск/замена всех использований символа. По этой причине он не идеален для работы над чем-либо, кроме очень простых однофайловых проектов, и я решил попробовать что-то другое.

"Атом"

Atom быстро стал популярным редактором в сообществе разработчиков благодаря обширной системе пакетов/плагинов, которая позволяет добавлять в редактор пользовательские модули для выполнения любых задач. Он построен на стеке Электрон, да ещё и с открытым исходным кодом. Я решил попробовать, так как мой босс на стажировке использовал его в качестве своего главного редактора в то время, и один из моих друзей также высоко оценил его. В дополнение к длинному списку плагинов, созданных людьми, вы также можете создать свой собственный, если не можете найти что-то, что соответствует вашим потребностям. Точно так же вы можете загружать и применять пакеты стилей, которые позволяют полностью настроить внешний вид редактора. Лично я остановился на теме материального дизайна.

Однако за всеми этими функциями это все еще просто текстовый редактор, мало чем отличающийся от Sublime Text. Он имеет те же функции редактора, но ему все еще не хватает более мощных функций IDE. Однако стоит отметить, что есть некоторые плагины, которые могут приблизить вас к функциональности, подобной IDE. Вдобавок ко всему, я мог чувствовать, что время от времени он замедляется, хотя я уверен, что это должно улучшиться по мере дальнейшего развития. Я не слишком углублялся в экосистему Atom и не рекомендовал бы Atom для более крупных проектов.

Вебсторм

Моим первым набегом на настоящую IDE был Webstorm. Это, возможно, самая популярная полная среда разработки JavaScript, и многие мои коллеги использовали ее или другие предложения среды разработки JetBrains IDE в качестве своей основной среды разработки. Кроме того, это единственный из изученных мной редакторов, созданный исключительно для JavaScript — все остальные также могут редактировать множество других языков. Будучи полнофункциональной IDE, она делает многое — я, наконец, получил возможность искать определения функций/переменных простым нажатием клавиши CTRL+щелчок, и аналогичным образом было легко найти/заменить все случаи использования какого-либо символа. Это значительно упрощает рефакторинг кода в больших базах кода, где все функции и переменные запутаны между несколькими файлами.

К сожалению, он тоже не был идеальным. Он кажется довольно раздутым и тяжелым при работе с любой кодовой базой, и он становится только хуже для больших кодовых баз (как это было во время моей стажировки). У меня он часто зависал. Кроме того, иногда он дает сбой или демонстрирует необъяснимую странную функциональность; однажды он зарегистрировал все мои файлы с исходным кодом как внешние по отношению к проекту, тем самым отказавшись индексировать в них символы и по сути превратившись в простой текстовый редактор. Webstorm кажется слишком большим, чтобы поддерживать согласованность и высокое качество всех его компонентов, поэтому в целом он становится несколько неприятным и неинтуитивным.

Код Visual Studio

Последним шагом в моем путешествии по исследованию редактора стал VS Code. Это еще один редактор на основе Electron, разработанный Microsoft, популярность которого среди сообщества разработчиков с момента его недавнего запуска резко возросла. Для меня это почти как Webstorm, но переделанный с нуля и улучшенный. Его интерфейс кажется мне более чистым, и он по-прежнему делает все, что я хочу от IDE. Важно отметить, что при моем использовании он не был таким медленным или глючным. VS Code делает это, не отказываясь от полноценных функций IDE, поэтому я могу делать почти все то же самое, что и Webstorm. Это редактор, который я использую в настоящее время, и я действительно наслаждаюсь своим опытом работы с ним. Однако может быть важно отметить, что я не тестировал очень большие кодовые базы в VS Code, так как начал использовать его только после окончания стажировки. Таким образом, я не могу говорить о том, насколько хорошо он будет работать в этом сценарии.

Вывод

Я пробовал несколько редакторов для написания кода на JavaScript, и до сих пор этот путь привел меня к Visual Studio Code. Я ценю его отзывчивость, стабильность, эстетичный внешний вид и полную функциональность IDE; редакторы, которые я пробовал ранее, терпят неудачу по крайней мере в одной из этих областей. Конечно, он не идеален, но я с нетерпением жду, когда он будет развиваться со временем. Какой ваш любимый редактор JavaScript?