Хочется поделиться набором инструментов, которые использую в рабочем процессе. Когда я был студентом – я считал что разработка это только IDE. Практика очень быстро развеяла эти заблуждения. Я занимаюсь разработкой web-api на C#, разработкой структуры БД и хранимых процедур, разработкой kotlin-скриптов для Teamcity для сборки и деплоя проектов ну и ряд попутных процессов. Вкратце можно будет оценить - сколько нужно установить софта студенту на домашний компьютер, чтобы сделать его похожим на профессиональную машину разработчика. И так начнем.
Мини-disclaimer. Я не обсуждаю вопросы лицензий на программное обеспечение. Если та или иная програмулина недоступна бесплатно для домашнего использования – это не моя вина. Всякое бывает. Если поискать дольше 10 минут – можно найти бесплатную альтернативу.
И так основная деятельность – разработка web-api. Для этих целей на C# есть 2 основных инструмента – Microsoft Visual Studio и JetBrains Rider. Я использую первую. Visual Studio занимает гигантскую долю рынка, но есть оговорочки. Лично я для повышения производительности и личного удобства использую аддон к студии - JetBrains Resharper. Resharper бесплатной лицензии не имеет и использовать в домашних условиях не очень удобно. При этом Visual Studio имеет Community версию для домашнего использования. Следовательно - если вы платите, дома за Resharper – возможно имеет смысл приобрести лицензию на Rider. Фичи Resharper конечно перетекают в основную версию Visual Studio, но пока они дотекут – Resharper обзаводится новыми.
Поскольку заговорил про JetBrains – немного перескочу. Для разработки kotlin-скриптов я использую IntelliJ IDEA. Еще один маленький довод перейти на продукты JetBrains. Почему используется данный продукт? Teamcity это тоже продукт JetBrains, написан на Java и имеет все необходимые нативные инструменты для локальной отладки скриптов. Лично мне, использование данного продукта для других задач неудобно, но это скорее личные предпочтения и привычка к решениям Microsoft Visual Studio.
Вторая основная деятельность, важная но занимающая меньше времени – разработка SQL. Тут используется несколько инструментов:
1) Разработка скриптов – Notepad++. Это великолепный продукт для самых разных сценариев. Легкий, быстрый, удобный. Имеет подсветку синтаксиса и если нужно быстро отредактировать имеющийся скрипт – это лучший инструмент.
2) Исполнение скриптов – Microsoft Management Studio. Мы используем MS SQL сервер БД и данная программа практически идеальна для выполнения скриптов. А если у вас права на БД достаточные – можете и профилировщиком воспользоваться. Можно использовать и для разработки, но данный продукт более тяжеловесен по сравнению с предыдущим и если нужно набросать скрипт – вы будете дольше ждать пока она запустится.
3) Версионирование структуры БД – RoundHouse. Это даже не программа для установки. Это библиотека для автоматического деплоя базы данных. От себя рекомендую продукт хотя бы для ознакомления. Но для agile-методологий с постоянной корректировкой структуры базы – инструмент крайне полезен.
Даже для домашней разработки крайне необходима система контроля версий. За всю свою карьеру я перепробовал Git, Mercurial, SVN, Tfs и один даже вспомнить не могу. Суть контроля версий одна на все эти продукты и выбор в принципе не меняет ничего. Может быть более удобным будет Git или Mercurial позволяющий разделить локальные коммиты и пуш в репозиторий. SVN например в локальные коммиты не умеет, хотя порой это очень полезно.
Что еще? Да много всего. Все поддерживаемые продуктом браузеры, офисный пакет, производители скриншотов и писалки gif-ок. И это я еще не упоминаю js-разработку, так как крайне редко этим занимаюсь, не упоминаю взаимодействие с NoSql базами или брокерами сообщений. А еще издалека поглядывают сервера виртуальных машин, которые тоже пригодятся. Продолжать можно довольно долго. Так что если кто-то задумывается над обучением программированию в домашних условиях – можете прикинуть сколько нужно установить софта для образовательного процесса. Если вы заказываете разработку у фрилансера – можете примерно прикинуть, сколько такой пакет софта стоит за год, добавьте зарплату самого программиста и технику. Может, поймете «почему так дорого?».
На некоторых местах работы – работодатель не готовил рабочие машинки для разработки, следовательно, такой вот набор джентльмена нужно было устанавливать самому. Со всеми обновлениями – это занимает до недели рабочего времени. И этот список постоянно дополняется. Этот список не содержит полтора десятка интернет-сервисов для облегчения жизни разработчика. Ну и разумеется – этот список не ответ на вопрос «Как надо?» это ответ на вопрос – «Как у меня?».