|
1 | | -## Сборка |
2 | | -`mvn -DskipTests=true install -f pom.xml` |
| 1 | +## Структура и модули |
| 2 | +- Корень: `pom.xml` (многомодульный Maven), Makefile с готовыми целями. |
| 3 | +- Backend: `core` (Spring Boot, домен и UI API), `cluster-api` (интеграция с Kafka-кластерами). Исходники в `src/main/java`, ресурсы в `src/main/resources`, тесты в `src/test/java`. |
| 4 | +- Frontend: `coral` (React/Vite/TypeScript). Исходники в `coral/src`, тесты в `coral/src` + `test-setup`, статические ассеты в `coral/public`. |
| 5 | + |
| 6 | +## Сборка, запуск и тесты |
| 7 | +- Полная сборка: `mvn -DskipTests=true install -f pom.xml`. |
| 8 | +- Backend модульно: `cd core && mvn clean verify`, `cd cluster-api && mvn clean verify`; Makefile цели `make klaw_core`, `make cluster_api`. Локальный запуск после сборки: `make run-core` и `make run-cluster-api` (читают собранные JAR из `target`). |
| 9 | +- Frontend: `cd coral && pnpm install`; dev против удаленного API — `pnpm dev`, без API — `pnpm dev-without-api`; сборка — `pnpm build`; тесты — `pnpm test` или `pnpm test-dev`; линт/формат — `pnpm lint`, автоформат — `pnpm reformat` + `pnpm eslint --fix`. |
| 10 | + |
| 11 | +## Стиль кода и качество |
| 12 | +- Java 17, Spring Boot 3; придерживаемся текущего стиля (Google Java Format/IDE автoформат), 4 пробела, import-order по умолчанию. Имена классов UpperCamel, методов/полей lowerCamel. Используем Lombok, но без лишней магии; явные null-проверки и Optional там, где нужно. |
| 13 | +- Тесты: JUnit 5 + AssertJ; именуем `*Test`, кладем в зеркальные пакеты `src/test/java`. Для регрессий — добавляйте узкие тесты на новый/исправленный сценарий. |
| 14 | +- FE: TypeScript строгий, компоненты — функциональные; стиль кода через Prettier/ESLint; CSS modules с именами в camelCase. |
| 15 | + |
| 16 | +## Коммиты и pull request |
| 17 | +- Коммиты по Conventional Commits (`feat/fix/docs/refactor/...`) и обязательно `Signed-off-by` (`git commit -s`). Мелкие, логичные пачки изменений. |
| 18 | +- PR: ссылка на issue (`Resolves: #...`), заполненный шаблон `.github/PULL_REQUEST_TEMPLATE.md`, зеленые проверки CI, свежий `main`. Для UI приветствуются скриншоты/видео. Предпочтительно squash-merge, понятный заголовок по гайду. |
| 19 | + |
| 20 | +## Конфигурация и безопасность |
| 21 | +- Не коммитим секреты: `.env*`, ключи, пароли, реальные `application.properties`. Локальные настройки держите вне VCS или в примерах. |
| 22 | +- Проверяйте лицензии и сторонние зависимости; обновления делайте отдельными PR. |
| 23 | +- Перед пушем: убедитесь, что сборка/тесты для затронутых модулей проходят и не падает форматирование. |
0 commit comments