CLI – следующий уровень. Это уже не просто один скрипт, а маленькая утилита или набор инструментов. Четкой границы когда нужно делать CLI, а не скрипт я вам не дам, но есть пара признаков:
👉 запускается и на CI, и у разработчиков;
👉 переиспользуется в разных проектах;
👉 не зависит от структуры конкретного проекта.
Пример: линтеры вроде detekt (его можно запускать как CLI). У нас на проекте есть CLI для запуска тестов с разными параметрами, работает куда предсказуемее обычного запуска через студию.
Лучший язык тут – Go: один бинарь, никаких runtime. Java/C# тоже можно, но придётся тащить runtime. Python также можно упаковать в бинарь, но это прям геморно. Rust – если прям нужен низкий уровень, но я бы не стал.
Минус – правки уже не такие быстрые, чаще всего CLI живёт в отдельной репе. Плюс – если берем Gо, то ничего лишнего в базовом образе.
Post #555
3.04K
- 🥰 12
- 🤡 3