С 31 января по 2 февраля на турбазе под Екатеринбургом прошел первый в истории Иволга Senior Camp — закрытая тусовка для сеньоров и других руководителей, чья работа связана непосредственно с разработкой.
В течение двух дней ребята из лучших ИТ-компаний общались в неформальной обстановке, делились инсайтами, соревновались в хардкорном программировании, жарили шашлыки и пели под гитару. А вишенкой на этом торте стал хакатон по созданию манифеста чистого кода для генеративных моделей, который прошел при поддержке МТС AI.
Мысль написать общий документ, который стандартизировал и облегчил бы работу промт-разработчиков, возникла почти сама собой. Концепция чистого кода с легкой руки Робина Мартина завоевала признание среди самых разных разработчиков. И почему бы ее не распространить на взаимодействие с ИИ? Ведь тогда рутинных действий в повседневности программиста будет еще меньше, а времени для по-настоящему интересных задач — больше.
По общему решению ребят публикуем получившийся документ в свободном доступе. Пользуйтесь:
### **0. Процесс разработки**
1. **Итеративный подход**:
- Генерируй код по одному файлу, ожидай подтверждение "Ready" перед переходом к следующему.
- Рефакторинг обязателен при обнаружении нарушений принципов манифеста.???
- Полная реализация модулей (никаких заглушек или TODO без веских причин).
---
### **1. Архитектурные принципы**
- **Слоистая архитектура**:
- Четкое разделение: API → Domain ← Infrastructure
- Запрещено:
- Вызов Infrastructure-сервисов напрямую из API слоя.
- Размещение бизнес-логики в контроллерах.
- Анемичные модели (если у модели нет методов - создай entity).
- **DDD & Clean Architecture**:
- Строгие bounded contexts для доменных моделей.
- Пример как делать нельзя: OrderService
, вызывающий PayPal API напрямую.
- Пример как делать можно: TODO - добавить пример из интернета
---
### **2. Стандарты кодирования**
- **Идиоматичность**:
- Соответствие стандартам, например PEP8/Java Code Conventions + строгая типизация (mypy/TypeScript).
- **Структура кода**:
- Все публичные методы/классы — docstrings (формат Google/OpenAPI).
- Логирование: структурированные JSON-логи с уровнями DEBUG/ERROR.
---
### **3. Управление зависимостями**
- **Dependency Injection**:
- Внедрение через конструкторы.
- Инфраструктурные зависимости (БД, API) изолированы в отдельном слое.
- **Запрещено**:
- Глобальные переменные.
---
### **4. Тестирование**
- **Пирамида тестов**:
- Юниты: не менее 80% покрытия, моки для внешних зависимостей.
- Интеграционные: тестирование API + БД.
- E2E: ключевые пользовательские сценарии.
- **Правила**:
- Тесты не требуют реальных сервисов (Kafka/S3 и т.п.).
- Параметризованные тесты для сложных кейсов.
---
### **5. Безопасность и инфраструктура**
- **Обязательно**:
- Валидация входных данных (Pydantic/Schema).
- Аутентификация через JWT/OAuth2.
- Секреты в environment variables (не в коде!).
- **Infrastructure as Code**:
- Docker + docker-compose для локальной разработки.
- Terraform/CloudFormation для прода.
---
### **6. Документация**
- **OpenAPI**:
- Актуальная спецификация с примерами запросов.
- Описания статус-кодов и ошибок.
- **Комментарии**:
- Только для неочевидных частей кода.
---
### **7. Quality Gates**
1. Линтинг: используй линтеры!
2. Проверка типов: обязательно, например при помощи mypy.
3. Тесты: 100% прохождение перед merge.
4. Security scan: bandit
/Snyk
/Codescoring
.
---
### **8. Антипаттерны**
- **Архитектура**:
- SQL-запросы в контроллерах.
- **Код**:
- doTheThing()
вместо processOrder()
.
- Запрещено логирование через print()
.
- Запрещены магические переменные.
---
### **9. Оптимизация**
- **Приоритеты**:
0. Корректность → 1. Читаемость → 2. Производительность → 3. Краткость.
- Желательно:
- Оптимизация N+1 запросов к БД.
---
### **10. Поддерживаемость**
- **SOLID + DRY**:
- Максимум 5 уровней вложенности кода.
- Вынос дублирующего кода в утилиты/фабрики.
- **Рефакторинг**:
- Техдолг фиксируется в Issues с меткой refactoring
.???
---
**Применение манифеста**:
1. Используй манифест как чек-лист при генерации.
Будем рады, если вы не только используете манифест в своей работе, но и поделитесь впечатлениями от него в комментариях. Что хорошо, что сомнительно, что можно было бы добавить на ваш взгляд.
Иволга Senior Camp — закрытая IT-тусовка для сеньоров, техлидов и других руководителей, имеющих непосредственное отношение к разработке. Ближайшая встреча пройдет летом, можно оставить заявку на участие. Организаторы, компания Speach! и члены программного комитета изучат ее и свяжутся с вами, чтобы обсудить детали.