Раз уж наш канал про боль и сожаления, то позвольте поделиться своей персональной болью. Касается она локального окружения разработчика. Обычнно такими вещами не заморачиваются и работают как есть, по полдня пытаясь вспомнить с какими же параметрами нужно запускать приложение. Новичиок же приступает к работе только спустя недели две потому что никто уже не может вспомнить как вообще развернуть рабочее окружение, а ридми либо устарело, либо его вообще нет. Путем перебора, проб, ошибок и задалбывания остальных членов команды кое-как удается запустить проект локально, новичку поручают актуализировать инструкцию ииии ..... повторить все тоже самое со следующим новичком, т.к. инструкция к тому времени опять устарела.
Мы же уделяем повышенное внимание удобству локальной разработки и следуем концепции "одной кнопки" (ну или скрипта если хотите). Идея состоит в том, чтобы частые и не очень действия на локальном компе можно было выполнить одной "кнопкой". Что это может быть
- Прогон всех тестов
- Запуск приложения со всеми зависимостями (н-р через docker-compose)
- Сборка докер-образа
- Подготовка окружения
- Накатка тестовых данных
- Прогон линтеров и статанализаторов
- etc
В общем все, что вам вздумается и потребуется. Причем у самих "кнопок" не должно быть параметров (зашиты врутри или есть по-умолчанию), либо их должно быть по минимуму, если без параметров совсем никак.
Что мы получаем, применяя такой подход:
- сниженную когнитивную нагрузку - больше не нужно помнить все параметры и комбинации действий, которые приводят к нужному результату, как следствие экономим время и душевные силы. По хорошему, мы вообще должны забыть о таких вещах. Если вы не помните как запускать приложение, а все при этом работает и разрабатывается - хороший знак.
- быстрый старт для новичков - скачал репо, жмакнул скрипт и все готово, можно браться за весло
- возможность организации труЪ-СI, ведь непрерывная интерграция - это процесс, а не билд-сервер. Билд-сервер при этом нажимает практически те же "кнопки"
- из предыдущего пункта можем получить экономию средств, так как какие-то вещи мы можем проверить локально и быстро, нежели ждать своей очереди на билде и возвращаться к нему в случае паденя. Да и тачки у разрабов обычно гораздо быстрее, нежели дохлые билд-сервера.
Да, такое нужно поддерживать, не все операции можно прогнать локально, и вообще какой-никакой порядок должен быть в проекте. Но зато вы разгружаете голову и экономите кучу нервов и времени, а используя такие вещи в повседневной рутине, вы тем самым снижаете затраты на поддержку инструментов. В общем-то это банальная автоматизация, но по нашему мнению крайне важный элемент разработки. Собсна, любой новый проект (ну или даже старый, где такого нет) мы начинаем с такого рода автоамтики. В общем, настоятельно рекомендуем попробовать подход, если еще не применяете.
Post #61
1.4K
- 👍 10
- 🔥 7
- 👏 1