Мои рабочие инструменты

Мои рабочие инструменты

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.

Report Page