|
1 | | -# Codewars Solutions / Решения с Codewars |
| 1 | +# Решения с Codewars |
2 | 2 |
|
3 | 3 | [](https://github.com/krotname/Codewars/actions/workflows/maven.yml) |
4 | 4 | [](https://github.com/krotname/Codewars/actions/workflows/codeql-analysis.yml) |
|
10 | 10 | [](https://junit.org/) |
11 | 11 | [](https://maven.apache.org/) |
12 | 12 |
|
13 | | -This repository is a portfolio-grade Java kata workspace focused on: |
14 | | -- deterministic algorithms with reproducible tests, |
15 | | -- explicit quality workflows (CI, CodeQL, coverage, static checks), |
16 | | -- readable production code and practical refactoring notes, |
17 | | -- bilingual project documentation. |
| 13 | + |
18 | 14 |
|
19 | | -English | [Русский](#русский) |
20 | | - |
21 | | -## English |
22 | | - |
23 | | -### Why this repository exists |
24 | | - |
25 | | -- It demonstrates practical coding and test engineering from **problem solving** to **delivery quality**. |
26 | | -- All solutions are intentionally organized by difficulty/source (kyu/LeetCode/interview/transactions/other). |
27 | | -- Static checks and tests are visible and runnable in one place. |
28 | | - |
29 | | -### Repository map |
30 | | - |
31 | | -- `src/main/java` — production solutions and domain classes |
32 | | -- `src/test/java` — tests and quality suites |
33 | | - - `quality.SmokeSuite` (unit/smoke partition) |
34 | | - - `quality.IntegrationSuite` (transactions scenario tests) |
35 | | - - `quality.PropertySuite` (property-based tests, currently curated) |
36 | | -- `.github` — CI workflows, dependabot and repo templates |
37 | | -- `ARCHITECTURE.md` — architectural and reviewability notes. |
38 | | -- `CHANGELOG.md`, `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, `SECURITY.md`, `TESTING.md` — project governance |
39 | | - |
40 | | -### Testing strategy |
41 | | - |
42 | | -- **Smoke / Unit baseline** — each kata has direct tests; grouped by `quality.SmokeSuite`. |
43 | | -- **Integration** — transaction validation state and ordering, via `quality.IntegrationSuite`. |
44 | | -- **Property-based** — jqwik property tests are grouped in `quality.PropertySuite`. |
45 | | -- **UI tests** — not applicable (`N/A` for this repository, no UI layer). |
46 | | -- **Static quality gates** — Checkstyle, PMD, SpotBugs run in Maven verify and fail the build on violations. |
47 | | -- **Static artifact capture** — reports from Checkstyle/PMD/SpotBugs are attached to CI artifacts for reviewer inspection. |
48 | | -- **Coverage gate** — JaCoCo fails `mvn verify` below 91% line, 85% branch and 92% instruction coverage. |
49 | | - |
50 | | -### CI and quality signals |
51 | | - |
52 | | -- GitHub Actions workflow: `.github/workflows/maven.yml` |
53 | | - - category jobs (`smoke`, `integration`, `property`) on JDK 21 via JUnit tags |
54 | | - - full `mvn verify` on JDK 17 and 21 |
55 | | - - uploaded test and coverage artifacts |
56 | | -- Quality workflow: `.github/workflows/quality.yml` |
57 | | - - runs static checks with `checkstyle`, `pmd`, and `spotbugs` without executing tests |
58 | | - - Checkstyle, PMD and SpotBugs are kept clean in the current quality baseline |
59 | | - - Checkstyle uses a project-specific baseline in `config/checkstyle/checkstyle.xml` |
60 | | - - Generated smoke wrappers have explicit suppressions in `config/checkstyle/suppressions.xml` |
61 | | - - SpotBugs is kept clean with documented compatibility exceptions in `config/spotbugs-exclude.xml` |
62 | | -- Security workflow: `.github/workflows/codeql-analysis.yml` |
63 | | -- Dependency automation: `.github/dependabot.yml` |
64 | | -- Coverage tracked in JaCoCo + Codecov; the current local baseline is 455 tests with 91.4% line, |
65 | | - 85.1% branch and 92.7% instruction coverage. |
66 | | - |
67 | | -### Portfolio checklist |
68 | | - |
69 | | -- Deterministic implementations with package-localized responsibilities. |
70 | | -- Clear QA signals in CI (unit/integration/property + static checks). |
71 | | -- Explicit bilingual documentation for contributors and users. |
72 | | -- Reproducible Maven build commands. |
73 | | -- Separate quality workflow for static tooling visibility. |
74 | | - |
75 | | -### Local run |
76 | | - |
77 | | -```bash |
78 | | -mvn -B verify |
79 | | -mvn -B test |
80 | | -mvn -B test -Dgroups='smoke' |
81 | | -mvn -B test -Dgroups='integration' |
82 | | -mvn -B test -Dgroups='property' |
83 | | -mvn -B -DskipTests checkstyle:check pmd:check spotbugs:check |
84 | | -mvn -B test -Dtest='quality.SmokeSuite' |
85 | | -mvn -B test -Dtest='quality.IntegrationSuite' |
86 | | -mvn -B test -Dtest='quality.PropertySuite' |
87 | | -``` |
88 | | - |
89 | | -### What code reviewers can verify quickly |
90 | | - |
91 | | -- No hidden mutation of test inputs inside algorithmic methods. |
92 | | -- Meaningful method-level comments in non-obvious logic. |
93 | | -- Deterministic edge-case handling in boundary tests. |
94 | | -- Governance artifacts for maintainability and process. |
95 | | - |
96 | | -### Local quality policy |
97 | | - |
98 | | -- Use ASCII-only patch style unless a file already contains another script. |
99 | | -- Keep public method behavior deterministic. |
100 | | -- Add/adjust tests for any changed branch behavior. |
101 | | -- Keep complexity-local comments in algorithmic methods. |
102 | | - |
103 | | -### Architecture |
104 | | - |
105 | | -- [ARCHITECTURE.md](ARCHITECTURE.md) |
| 15 | +[English README](README.en.md) |
106 | 16 |
|
107 | 17 | ## Русский |
108 | 18 |
|
|
0 commit comments