Какую IDE выбрать backend-разработчику: Java, PHP, Python, Go

/* Статья обновлена 7 апреля 2022 */

 

IDE (Integrated Development Environment) — это интегрированная, единая среда разработки, которая используется программистами для создания ПО. По-другому называется редактором.

Согласно Википедии, на сегодняшний день существует больше 50 различных IDE — универсальных или заточенных под конкретную технологию. Какие-то существуют на рынке давно и собрали свою аудиторию, а какие-то только развиваются. Поэтому перед начинающими разработчиками встает вопрос: какой редактор выбрать?

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

Другие статьи серии: «Какую IDE выбрать — frontend» и «Какую IDE выбрать — mobile».

INTELLIJ IDEA

Павел, Java-разработчик

Почему именно эта IDE

В своей работе я использую IntelliJ IDEA от JetBrains. Фактически, она стала отраслевым стандартом для Java-разработчиков: в нашей команде мы работаем только в этой IDE, и я пока не встречал проект, где кто-то использовал бы другую среду.

В IDEA есть две редакции: Ultimate и Community. Я пользуюсь Ultimate, так как она отлично подходит для корпоративной и web-разработки: включает в себя поддержку Spring, Hibernate, Java EE, AspectJ, работу с БД, http-клиент и развертывание на серверах приложений. Подписка на Ultimate стоит $499 в год. Но есть бесплатные программы для студентов, преподавателей, некоммерческих организаций и Open Source-проектов.

Функционал бесплатной Community ограничен, но как и в Ultimate, она поддерживает языки Java, Kotlin, Scala, Rust, языки разметки HTML, XML, JSON, YAML, работу с системами контроля версий, системы сборки, фреймворки Android, Java FX и Swing, Docker. Отлично подходит для разработки десктопных и консольных приложений на Java и под Android.

Минусы

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

Альтернативы

Из альтернатив IntelliJ IDEA можно выделить NetBeans и Eclipse. Однако в этом случае попрощайтесь со многими удобными инструментами. Например, умное автодополнение, подсветка кода, удобный отладчик. В Eclipse для этого необходимо устанавливать многочисленные конфликтующие между собой плагины.

Советы

Если IDEA что-то не поддерживает, то, как правило, можно найти соответствующий плагин. Однако, за последние несколько лет лично я установил только один — плагин для поддержки Lombok (не сторонник использования этой библиотеки, но был ряд проектов, где ее использование было требованием нашего клиента).

Ярослав, Java-разработчик

Почему именно эта IDE

Опытным разработчикам я посоветую выбрать IntelliJ IDEA. Ее плюсы:

  • Удобная работа с кодом;
  • Классный дизайн;
  • Работа со многими полезными и необходимыми инструментами из коробки: Git, базы данных, поддержка фреймворков Spring, Hibernate, Gradle, Maven, новые версии IDEA с JDK 14;
  • Горячие клавиши;
  • Бесплатная Ultimate-версия для студентов;
  • Есть функция синхронизации настроек: список установленных плагинов, переопределенные hot keys и тому подобное;
  • Каждое большое обновление — новая заставка при запуске программы :)

Минусы

Работа с Git. Дерево коммитов выглядит не интуитивно, функционал может показаться сложным, особенно новичкам в системе управления версиями. 

Альтернативы

Начинающим разработчикам будет полезна Eclipse. Этот редактор заставит делать некоторые вещи, которые другой сделает за вас. 

Например, в IntelliJ IDEA очень мощная функция автозаполнения, которая «дописывает» ваш код. В Eclipse она не такая прокачанная и необходимо думать над каждым словом самостоятельно. Это помогает более глубоко понимать собственный код.

Советы

Выучить простой набор горячих клавиш для работы с кодом. Например, разные варианты перемещения курсора, автоматическое построение простейших конструкций (геттеры, сеттеры, конструкторы), перемещение между вкладками редактора кода, работа с Git (commit, pull, push), перемещение внутри классов и методов, интерфейсов и реализаций.

Плагины:

  • Lombok — позволяет заменить классические геттеры и сеттеры одной аннотацией;
  • Key Promoter X — поможет в изучении горячих клавиш в очень надоедливой форме;
  • Gradle/Maven — упрощенная сборка приложения; Database tools — работа с данными в БД; и прочие стандартные плагины, которые предлагаются во время установки IDE.

Больше материала

Если возникают проблемы, то лучший гайд — это официальная документация. В остальных случаях — изучение методом проб и ошибок :)

Вадим, PHP / Python-разработчик

Почему именно эта IDE

В работе пользуюсь Inteliji IDEA Ultimate от JetBrains. Ее основные плюсы в удобстве и мультиязычности: редактор дает возможность делать многое «из коробки», что очень полезно, так как я пишу сразу на нескольких языках. В дополнение эта IDE поддерживается на всех ОС (Windows, Linux, Mac), а в плане эргономики не встречал ничего лучше.

Минусы

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

Альтернативы

Вопрос поднимался один раз, но установив пробную версию IDEA, понял, что все устраивает.

Советы

В основном использую плагины для related-вещей, таких как подсветка синтаксиса в blade, twig и прочих шаблонизаторах. Также могу посоветовать PHP Inspections и Phpcs для PHP-разработчиков.

Единственный совет при работе с IDE, который могу дать: по максимуму пользоваться возможностями, но не забывать и про нативную работу. Например, я работаю с Git и Docker через консоль, чтобы «руки помнили».

PHPSTORM

Андрей, PHP-разработчик

Почему именно эта IDE

В работе использую PhpStorm от JetBrains. При выборе IDE обращал внимание на удобство, интуитивность в управлении и слова старшего товарища «возьми нормальный редактор». Так выбирали инструмент большинство моих коллег, потому что «сел — работаешь, а не носишься с 10 плагинами и 15 сниппетами».

В дополнение, большое количество приятных мелочей вроде встроенной работы с Git, базами данных, Docker и даже, удивительно, Joomla и WordPress. Во время первого запуска тебе предложат плагин для Symfony.

Неожиданно, но Vue-плагин лучше работает у PhpStorm, чем Vetur для VSCode. То есть, IDE заточенная под PHP неплохо справляется с JavaScript и TypeScript, Angular, Vue, Less/Sass.

А еще у редактора лучшая поддержка языка из того, что я видел. Можно даже выбрать конкретную версию, а с версиями 5.6 — 8.x это актуально.

Очень удобный встроенный инструмент для работы с базами данных — после него я вообще забыл, что существуют такие вещи, как phpMyAdmin, HeidiSQL и DBeaver. Всегда можно посмотреть текущую структуру таблицы, индексы, хранимые процедуры, запросы и консоль с автодополнением.

Минусы

Раньше бы я сказал, что главный минус — это ценник $89 в год. Но сейчас считаю, что такая цена за инструмент — вполне адекватно.

Также иногда IDE тратит много ресурсов (из-за Java, на которой написан редактор). Сам PhpStorm на старте выдает 300-400 МБ в оперативной памяти, а потом у тебя неожиданно пропадает 2 ГБ. Ой.

Альтернативы

Я начинал писать код в Notepad++, потом пробовал SublimeText (когда он еще был популярен), потом VS Code. Последним пользуюсь на досуге, когда время от времени пишу на JS.

Советы

Работаете с конкретным стеком? Берите конкретную IDE. Переехать с PyCharm на WebStorm, а потом на GoLand вообще не проблема, потому что у все них одно ядро. 

По возможности купите лицензию и помните, что в начале работы вам не нужна вся IDE.

Не пренебрегайте автогенерацией (скаффолдинг). Геттеры, сеттеры, болванка класса с заглушками родительских методов — это удобно.

На Windows 10 при открытии нового проекта посмотрите в правый нижний угол — IDE может предложить внести папку с проектом в игнор-лист Windows Defender, чтобы он не сканировал постоянно файлы. Просто скажите «да».

Изучите документацию IDE. Она неплохая :)

Михаил, PHP-разработчик

Почему именно эта IDE

В разработке использую PhpStorm от JetBrains, которую выбрал по совету опытных разработчиков компании, так как в то время IDE была не настолько известна. В начале редактор показался достаточно сложным в освоении, но после изучения основных фич стал незаменим в разработке.

До сих пор остаюсь в этой среде по причинам:

  • Много лет работы, привычные и настроенные под себя темы приложения и редактора кода;
  • Полноценная поддержка всех около-web языков и структур CSS, JavaScript, TypeScript, JSON и т.д.;
  • Возможность полноценной разработки frontend-приложений на базе JS-фреймворков;
  • Удобная работа с VCS, просмотр лога, интерфейс разрешения конфликтов при объединении веток, работа со стеком и т.д.;
  • Полноценная интеграция с Docker без установки дополнительных плагинов и модулей;
  • Наличие IDE от того же разработчика JetBrains для любых других языков программирования. Стилистика и основные принципы работы практически не отличаются;
  • Симпатичный и продуманный интерфейс;
  • Стабильная работа приложения даже на средних по мощности машинах;
  • Полноценная поддержка Unit-тестов.

Минусы

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

Альтернативы

Раньше работал исключительно с Notepad++, модулем для подключения серверу по FTP и функцией сравнения файлов (про систему контроля версий VCS я тогда еще не знал). Когда на более сложных проектах Notepad++ перестал справляться, начал искать альтернативу IDE.

Ради спортивного интереса рассматривал вариант бесплатного NetBeans — эта IDE достаточно похожа по функционалу и UI. Но все-таки по удобству использования, интеллектуальным фичам и фичам для рефакторинга кода продукт от JetBrains выигрывает даже с учетом того, что этот редактор платный.

Советы

Фичи

  • Используйте Live Template — настраиваемые комбинации символов и клавиш, в которые можно заложить логику вывода в редактор часто используемых конструкций кода. Есть базовый набор шаблонов из коробки, а можно настроить свои.
  • Поиск по всем файлам проекта при двукратном нажатии Shift. Последующее двукратное нажатие Shift с открытым окном поиска «по всему» ставит галочку на опции «Искать в файлах, не входящих в проект» (например, файлы в папке vendor, node_modules и т.д.).
  • Find in Path. Поиск файлов по вхождению строки в тело либо в название файла в рамках директории / проекта.
  • Refactoring->Rename. Переименование переменных, классов, методов, функций с поиском и исправлением всех вхождений этих переменных, классов, методов, функций.
  • Introduce Variable / Constant / Field / Parameter. Быстрое извлечение значений из кода в переменные, константы или поля класса.
  • Extend selection — расширение области выделения при каждом нажатии горячей клавиши.
  • Context Actions. Полезные операции, зависящие от контекста курсора: замена кавычек с одинарной на двойную и обратно, конвертация формата записи массива с традиционного на короткий формат, конвертация строки из параметров через запятую в многострочный формат записи и т.д.;
  • Выбрать вариант в автокомплите можно с помощью Tab или Enter. Например, при автокомплите для замены метода класса Enter просто добавит новый вариант и старый придется удалять вручную. Tab произведет замену автоматически.

Плагины

  • env files support — работа с файлами переменных окружения.
  • Markdown — помощь в написании README.md, подсвечивает синтаксис и визуализирует верстку.
  • Task Management — мощный плагин для интеграции с популярными task-менеджерами, настройка шаблонов для сообщений коммитов и многое другое.

PYCHARM

Марат, Python-разработчик

Почему именно эта IDE

PyCharm используют на всех обучающих курсах по Python. В таком случае не надо ставить дополнительных плагинов для работы с языком. В каком-то смысле тут нет альтернатив :)

Минусы

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

Во-вторых, ошибочно подсвечивает атрибуты: актуально для PyCharm Community, где нет поддержки фреймворков, а также при неполном документировании типов параметров функции, сторонней библиотеки. Но это бывает редко.

Альтернативы

Atom, Spyder или Sublime Text. Основной их минус в том, что самые важные функции для Python-разработки не идут «из коробки». Их необходимо устанавливать самому с помощью разных плагинов и расширений. 

Советы

Несколько интересных плагинов:

  • IDE Features Trainer поможет изучить основные ярлыки и функции в интерактивном режиме;
  • Key Promoter X при нажатии кнопки мыши в IDE покажет сочетание клавиш, которые можно использовать вместо этого;
  • Python Security анализирует потенциальные недостатки безопасности в вашем коде и предлагает исправления;
  • PyCrunch — средство для непрерывного выполнения тестов;
  • CodeStream объединяет в IDE основные инструменты разработки, такие как GitHub, GitLab, Bitbucket, Slack, Teams, Jira, Trello и т.д.;
  • Power Mode II — забавный плагин из категории Fun Stuff :)

Cборник полезных гайдов

GOLAND

Влад, GO-разработчик

Почему именно эта IDE

В работе использую GoLand от JetBrains, так как не смог найти более удобного инструмента для разработки.

В первую очередь для меня важна кроссплатформенность, так как часто приходится работать на разных ОС и не хочется привязываться к одной платформе.

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

Далее я учитывал уже более специфические вещи, такие как «умный» автокомплит, поддержка go modules, простота и удобство навигации по коду.

Минусы

Среде разработки требуется больше времени для запуска и оперативной памяти, чем другим. Поэтому использовать GoLand для быстрого просмотра файлов с исходным кодом нецелесообразно.

Также у GoLand, как и других продуктов JetBrains, порог вхождения немного выше, чем у почти любого другого редактора кода. Поэтому я бы не советовал этот инструмент начинающим программистам.

Альтернативы

Некоторое время использовал Visual Studio Code, но меня не устроили качество и скорость автокомплита, а также общее качество данного редактора. Возможно, сейчас уже всё изменилось, но пробовать уже не хочется.

Советы

Использование функции «Language Injection» вкупе с настроенным подключением к базе данных вашего приложения значительно облегчит процесс написания SQL-запросов в коде. GoLand будет подсказывать и подсвечивать ошибки, исходя из модели данных вашего приложения и синтаксиса SQL.

Также стоит разобраться с системой автокомплита (smart completion, postfix complete) и возможностями рефакторинга. Это сэкономит вам куда больше времени, потраченного на его изучение. Не стоит забывать о возможности визуализации данных профилировщика.

Из плагинов я могу посоветовать «Go Linter» (интегрирует всем известный golangci-lint в GoLand) и «VS Code Keymap» (для разработчиков, которые переходят с Visual Studio Code на GoLand).

Больше материала

Официальная документация

Советы и лайфхаки по работе в IDE от JetBrains

В ИТОГЕ

В backend-разработке программисты чаще всего используют одну из IDE от JetBrains. PhpStorm для разработки на PHP; PyCharm для Python; GoLand для Go. Отраслевой стандарт для Java-разработки — IntelliJ IDEA. 

Как альтернативы можете рассмотреть NetBeans, Eclipse или VS Code, но готовьтесь к долгому процессу «до-настройки» и большому количеству конфликтов, связанных с разными конфигурациями плагинов. 

Но выбор всегда остается за вами — поймите цели и задачи вашего проекта и с умом используйте советы наших разработчиков при выборе редактора. Хорошей работы и учебы и до встречи!