Какие инструменты помогают разработчикам
Инженеры из Amazon и Sterlix GmbH делятся опытом.
Разработчики уже давно не делают все вручную. Например, вам нужно написать стандартные геттеры и сеттеры для класса на Java. Но интегрированная среда разработки (IDE) может генерировать их за вас.
На рынке много инструментов, которые облегчают кодинг, отладку и сборку приложений, а также работу с запросами.
Выбираем лучшие инструменты вместе с:
- Михаилом Михалевым,Software Engineer в Amazon и лектором курса Архитектура высоких нагрузок
- Станиславом Сапранковым,Software Developer Engineer в Amazon Web Services
- Ярославом Слипчуком,Node.js Developer в Sterlix GmbH
-
IDE и редакторы кода
IDE берут многие задачи на себя, например, подсветку «глупых» ошибок в синтаксисе. Программисту не нужно запоминать все методы классов. В IDE встроен анализатор кода, который предлагает методы после точки, отталкиваясь от написанного. Но «программирование через точечку» часто упоминают, говоря о кодере, который не понимает, как работают классы или методы. Анализатор помогает кодить, но не заменяет знание синтаксиса языка.
Пример работы анализатора кода
Источник: habr.comСреди IDE популярны продукты JetBrains. В них уже включены инструменты для сборки, отладки, тестирования, работы с Git, базами данных и регулярными выражениями. Встроенная функция автодополнения превратит несколько букв в целый кусок кода. Например, если в Intellij IDEA (IDE для Java) напечатать fori, то вы получите шаблон для for-цикла.
Если вам нужен только редактор кода, выбирайте Visual Studio Code. Он поддерживает все современные языки и содержит плагины, расширяющие его функционал. Если на проекте вы используете несколько языков, то просто качаете нужный плагин.
Среди недостатков — то, что некоторые фреймворки (например, NET.Core) не поддерживаются в полном объеме.
Станислав: «У нас есть своя система репозиториев, а в VS Code — плагин GitLens, который позволяет прописывать паттерны для поиска коммитов в кастомных репозиториях. Можно переходить в браузер на страницу с коммитом прямо из IDE.
Через плагины и расширения VS code поддерживает многие популярные форматы, включая Dockerfile, YAML, JSON.
Для крупных проектов я использую JetBrains. У них интуитивная настройка источников сторонних модулей — например, в IntelliJ IDEA удобно запускать тесты через IDE на облачном сервере, Docker, Vagrant. В PyCharm более быстрая индексация файлов, чем в VS Code, а в PhpStorm — более „умный” анализатор кода».
Visual Studio Code
Источник: docs.microsoft.com -
GIT GUI клиент
Для полноценной работы с системами контроля версий необходима командная строка. При этом многие операции можно делать и без нее, с помощью визуальных клиентов, например, TortoiseGit или GitKraken. Они поддерживают стандартные операции: коммиты, создание веток, показ различий в версиях. C помощью GUI-клиентов вы можете визуализировать ветвление коммитов. С другой стороны, визуальные инструменты не показывают, как системы контроля версий работают внутри. Особенно это касается команд, которые заменяет одна кнопка в графическом интерфейсе.
Станислав: «Я использую командную строку и Git GUI — минималистичный и простой интерфейс для гита. Git GUI ускоряет то, что в командной строке делать дольше, например, написание сообщений к коммитам и просмотр изменений. Для остального достаточно командной строки».
TortoiseGit
Источник: tortoisegit.org -
Анализатор трафика
Клиент-серверные приложения ежедневно взаимодействуют с огромным количеством данных. Во время сбоев причину можно обнаружить в самих данных и запросах, которые отправляют клиенты. Находить такие проблемы помогают анализаторы трафика.
Wireshark — бесплатный анализатор, который принимает и помогает просматривать данные, приходящие из сети. Например, вам нужно выявить, где теряются пакеты или откуда идет DDoS-атака. Захваченные пакеты можно отфильтровать по IP источника трафика, протоколу, длине и другим свойствам или использовать геопривязку к ip-адресам.
Ярослав: «Wireshark помогает сделать Trace Log передачи данных между клиентом и сервером. Wireshark позволяет увидеть служебные обмены информацией на низких уровнях модели OSI. Также Wireshark полезен для интеграции новых протоколов со сторонними сервисами — он помогает быстрее изучить особенности работы с протоколом».
Wireshark
Источник: networkguru.ru -
Отладчик API
Postman — инструмент для тестирования и отлаживания API, который помогает разобраться во взаимодействии сервисов. Например, проверить, какой код ответа возвращает запрос. У Postman понятный графический интерфейс, с помощью которого можно создавать запросы с заранее определенными переменными, а затем тестировать их в разных окружениях и группировать в коллекции.
Postman
Источник: postman.comМихаил: «Postman удобен не только для быстрой отладки и проверки гипотез, но и для постоянной разработки в команде. Например, с его помощью можно расшаривать свои запросы. Еще одна “фишка” Postman — автоматизация рутинных процессов, например, получения JWT-токена. Для разработчиков, тестировщиков и даже менеджеров, которые используют API в работе, Postman — must-have».
Станислав: «У Postman удобный импорт/экспорт конфигурации запросов. Можно писать переменные и маленькие скрипты, которые будут запускаться после запроса. Например, делаешь запрос на авторизацию, а токен с разрешениями автоматически сохраняется в переменную, которая потом используется в заголовках других запросов».