Мои рабочие инструменты
https://t.me/zhukovsd_it_mentorСреды разработки
IDE - integrated development environment или среда разработки - основной инструмент для написания кода. Современные IDE это многофункциональные комбайны со множеством функций, повышающих продуктивность.
Я пользуюсь семейством сред от JetBrains:
- Intellij IDEA для Java/Kotlin. Существуют и другие Java IDE, но если есть возможность, рекомендую пользоваться IDEA
- PyCharm для Python
- Rider для .NET
- PHPStorm для PHP
Чем мне помогают IDE от JetBrains:
- Помощь в написании кода - автодополнение, подсказки
- Анализ кода - автоматический поиск типовых ошибок
- Рефакторинг - переименование классов, переменных, перемещение классов в другие. Хороший доклад про рефакторинг от разработчика JetBrains - https://www.youtube.com/watch?v=C5eD-K8AO3o
- Интеграция с фреймворками, базами данных
Несомненно, непросто пользоваться IDE в полную мощь. Освоение их функционала - процесс, поэтому я советую новичкам с самого начала выбрать популярную и актуальную для их языка программирования IDE, и писать весь код в ней, постепенно осваивая новые для себя возможности.
Для простых проектов, где мощь IDE от JetBrains не требуется, использую VSCode.
Несомненно, выбор IDE - дело вкуса, есть и те, кто предпочитает консольные редакторы Vim/Emacs. Пробуйте разное, и выбирайте, что вам по душе.
Работа с git
Для рутинных операций (add, commit, push, pull) разумно пользоваться той средой, где вы пишете код, чтобы не приходилось для каждого коммита переключаться на другое приложение.
Большинство современных IDE и редакторов кода в той или иной мере позволяют производить рутинные операции с git в своём интерфейсе.
Моя основная рекомендация - не делать в графическом интерфейсе ничего такого, что вы не можете сделать в консоли. Например - если знаете как создать новую ветку через консоль, нет проблем начать делать это в графическом интерфейсе, если вам так удобнее.
Также, существуют отдельные приложения для управления Git репозиториями. Я иногда пользуюсь https://www.sourcetreeapp.com/ для красивой и понятной визуализации веток репозитория.
Всё вышеперечисленное актуально для локальных репозиториев, которые нужно где-то хранить. Самым популярным инструментом является GitHub, но некоторые аналоги не хуже, например BitBucket и GitLab. Выбор конкретного хостинга для репозиторием является вопросом цены и нужного функционала. Если особых требований нет, советую выбирать GitHub.
Терминал
Для многих рутинных задач нужен терминал - работа с Docker, установка пакетов, подключение к серверам по SSH.
На MacOS или Linux я пользуюсь любыми терминалами с поддержкой вкладок (как в браузере) и Bash.
На Windows пользуюсь https://cmder.app/ - это отдельное приложение, добавляющее в Windows эмулятор Bash и других инструментов командой строки из Linux.
Новичкам советую как можно раньше осваивать командную строку Linux и Bash, не тратить время на Windows CMD/PowerShell.
Установка пакетов и приложений
Часто нужно что-то поставить или удалить - новую среду или инструмент разработки. Классический способ - скачать и запустить установщик.
Для инструментов программиста существует более удобный способ - пакетные менеджеры, позволяющие устанавливать, обновлять и удалять приложение из консоли.
В Linux такие инструменты встроены по-умолчанию. Они отличаются в зависимости от диструбитива, на Ubuntu/Debian это apt, на CentOS - yum.
На MacOS пакетный менеджер не является частью системы, его нужно установить отдельно - https://brew.sh/.
2 лучших на мой вкус пакетных менеджера для Windows - https://scoop.sh/ и https://chocolatey.org/. Также, в Windows 11 появился нативный пакетный менеджер - https://learn.microsoft.com/en-us/windows/package-manager/winget/
Задачи, которые я решаю с помощью пакетных менеджеров:
- Установка любых приложений на Linux серверах
- Установка инструментов разработчика (кроме некоторых исключений, например - среды JetBrains) в локальном рабочем окружении
Виртуализация и контейнеры
Виртуализация нужна, чтобы запустить внутри своей основной операционной системы виртуальную. Зачем это может быть нужно:
- Практика с новой для себя ОС
- Запуск приложений, которые нельзя запустить на вашей основной ОС. Пример - разрабатываете кросс-платформенное мобильное приложение, и хотите потестировать его в эмуляторе iOS. Если у вас нет мака, для этого потребуется виртуальная MacOS
Для решения таких задач существует множество решений. Мой выбор:
- Если нужно запустить консольный Linux на Windows 10 или выше - https://learn.microsoft.com/ru-ru/windows/wsl/install
- Если нужно запустить виртуальную ОС с графическим интерфейсом - VMware
Иногда, целая виртуальная ОС не нужна, а нужно конкретное приложение без графического интерфейса, например база данных конкретной версии, веб-сервер, компилятор/интерпрератор. Для лёгкого управления такими приложениями без засорения ими основной системы отлично подходит Docker.
AI ассистенты
Основным моим AI ассистентом является GitHub Copilot, я пользуюсь им на регулярной основе через плагин к средам JetBrains.
Copilot повышает продуктивность при написании типового кода. Вместо написания его с нуля, можно сгенерировать основу с помощью Copilot и исправить/подредактировать её. Я не рекомендую новичкам использовать Copilot для решения новых для себя проблем, а использовать его только тогда, когда вы можете решить задачу и без него, но хотите сэкономить время. Советую не использовать AI ассистенты при работе над пет проектами, но применять их в рабочих проектах.
Что же касается ChatGPT - я пока не нашёл сценариев использования этого инструмента, полезных на регулярной основе. Иногда применяю его для генерации кода, перевода кода с одного языка на другой, поиска информации. Жду появления интеграций ChatGPT с IDE JetBrains.