ΠΠΎΠ΄
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΎΠΌΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ: ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³, ΡΠ΅ΡΡΡ, ΡΠ΅Π²ΡΡ, Π΄Π΅Π±Π°Π³.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΎΠΌΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ: ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³, ΡΠ΅ΡΡΡ, ΡΠ΅Π²ΡΡ, Π΄Π΅Π±Π°Π³.
- ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ9 (16%)
- Π‘ΡΠ΅Π΄Π½ΠΈΠΉ12 (21%)
- ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ37 (64%)
Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³
Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ, ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅, ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΡΠ±Π»Π΅ΠΉ.
Π Π΅Π²ΡΡ ΠΊΠΎΠ΄Π°
Security, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΡΠΈΠ»Ρ, ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡΡ.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Unit, integration, e2e, fuzz-ΡΠ΅ΡΡΡ, coverage ΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ.
ΠΠ΅Π±Π°Π³
ΠΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅, root-cause Π°Π½Π°Π»ΠΈΠ·, Π³ΠΈΠΏΠΎΡΠ΅Π·Ρ, ΡΠΈΠΊΡ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌ, Π²ΡΠ±ΠΎΡ ΡΡΠ΅ΠΊΠ°, ADR, Π³ΡΠ°Π½ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ
Π‘Ρ Π΅ΠΌΠ°, ΠΈΠ½Π΄Π΅ΠΊΡΡ, Π·Π°ΠΏΡΠΎΡΡ, ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, Π²ΡΠ±ΠΎΡ ΡΠΈΠΏΠ° ΠΠ ΠΏΠΎΠ΄ Π·Π°Π΄Π°ΡΡ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
README, API-Π΄ΠΎΠΊΠΈ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, changelog β ΡΡΠΎΠ± Π½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
OWASP, threat modeling, secrets, supply chain, secure-by-default.
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
ΠΡΠΎΡΠ°ΠΉΠ»ΠΈΠ½Π³, hot path, ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ, memory.
ΠΡΠ΅ ΠΏΡΠΎΠΌΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠΎΠ΄
Read-then-refactor: Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΠΎΠ½ΡΡΡ Π²Π΅ΡΡ ΠΊΠΎΠ΄, ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ. ΠΠ΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΡΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
ΠΠ°ΠΉΡΠΈ Π·ΠΎΠ½Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ, Π²ΡΠ½Π΅ΡΡΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΡΡΡΠΊΠΈΠΌ API.
Code review Ρ ΡΠΎΠΊΡΡΠΎΠΌ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
OWASP-ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠΎΠ΄Π°: injection, auth, secrets, Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ, XSS, CSRF, ΡΡΠ΅ΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ .
Π Π΅Π²ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
ΠΠ°ΠΉΡΠΈ ΡΠ·ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠ°: N+1, ΡΠ΅Π½Π΄Π΅ΡΡ, ΡΡΠΆΡΠ»ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² hot path, ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ»Π°Π½ ΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΡΠΈΡΠΈ
ΠΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π½Π°Π±ΠΎΡΡ ΡΠ΅ΡΡΠΎΠ²: unit, integration, e2e, edge cases.
ΠΠΎΠΈΡΠΊ edge cases
Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠΈΡΠΊ Π³ΡΠ°Π½ΠΈΡΠ½ΡΡ ΡΠ»ΡΡΠ°Π΅Π² Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ / API / UI.
Root cause investigation
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ Π±Π°Π³Ρ: Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅, Π³ΠΈΠΏΠΎΡΠ΅Π·Ρ, ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ, ΡΠΈΠΊΡ. ΠΠ΅Π· ΡΠ³Π°Π΄ΡΠ²Π°Π½ΠΈΡ.
Architecture Decision Record (ADR)
ΠΠ°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅: ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, Π²Π°ΡΠΈΠ°Π½ΡΡ, Π²ΡΠ±ΠΎΡ ΠΈ trade-offs.
Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΡΠ½ Π² ΠΊΠΎΠ΄Π΅
ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΡΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ΄ ΡΠΈΡΠ°Π»ΡΡ ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡΡ: ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΈΠΏΡ, ΡΠ°ΠΉΠ»Ρ.
Π Π΅Π²ΡΡ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°
Π‘ΡΡΡΠΊΡΡΡΠ°, Π΄Π»ΠΈΠ½Π° ΡΡΠ½ΠΊΡΠΈΠΉ, Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΡ, ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ β ΡΡΠΎ ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠΈΡΠ°ΡΡ.
Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΌΠΎΠΊΠΎΠ² Π² ΡΠ΅ΡΡΠ°Ρ
Π§ΡΠΎ ΠΌΠΎΠΊΠ°ΡΡ, ΡΡΠΎ Π½Π΅Ρ, ΠΈ ΠΊΠ°ΠΊ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΡΡ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠΎΠΊΠ°Π½ΠΈΡ.
ΠΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ repro-ΠΊΠ΅ΠΉΡΠ°
ΠΡ Β«Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΠΏΡΠΎΠ΄Π΅Β» Π΄ΠΎ 10 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΠ½ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ Π±Π°Π³.
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΎΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ
ΠΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ, Π΄Π°Π½Π½ΡΠΌ, API ΠΈ ΠΏΠ»Π°Π½Ρ ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ.
Π Π΅Π²ΡΡ Π³ΡΠ°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
ΠΠ΄Π΅ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΠΎΡΠ΅ΠΊΠ°Π΅Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ, Π³Π΄Π΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π½Π°ΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ ΠΎ Π΄ΡΡΠ³Π΅.
ΠΠΈΠ·Π°ΠΉΠ½ ΡΡ Π΅ΠΌΡ ΠΠ
Π’Π°Π±Π»ΠΈΡΡ, ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ, ΠΊΠ»ΡΡΠΈ, ΠΈΠ½Π΄Π΅ΠΊΡΡ β ΡΡ Π΅ΠΌΠ° ΠΊΠΎΡΠΎΡΡΡ Π»Π΅Π³ΠΊΠΎ ΡΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ SQL-Π·Π°ΠΏΡΠΎΡΠ°
ΠΡ EXPLAIN Π΄ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ views.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΠ
ΠΠΎΠ»ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡ Π΅ΠΌΡ Π±Π΅Π· Π΄Π°ΡΠ½ΡΠ°ΠΉΠΌΠ° ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ: backfill, swap, ΠΎΡΠΈΡΡΠΊΠ°.
Π‘ΡΡΡΠΊΡΡΡΠ° README
Π§ΡΠΎ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π² README β ΡΡΠΎΠ±Ρ Π½ΠΎΠ²ΡΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π·Π°ΠΏΡΡΡΠΈΠ» ΠΏΡΠΎΠ΅ΠΊΡ Π·Π° 5 ΠΌΠΈΠ½ΡΡ.
API-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
OpenAPI/Swagger, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ endpoints, ΠΏΡΠΈΠΌΠ΅ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ², ΠΎΡΠΈΠ±ΠΊΠΈ.
Changelog ΠΈ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Keep a Changelog + SemVer: ΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π±Π°ΠΌΠΏΠ°ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ breaking.
Threat modeling (STRIDE)
Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΡΠ³ΡΠΎΠ·Ρ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΡΡΠΎΠΈΡΡ Π·Π°ΡΠΈΡΡ.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ dependency / supply chain
ΠΡΠ΄ΠΈΡ npm/pypi/cargo, lockfiles, ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ CVE, Π·Π°ΡΠΈΡΠ° ΠΎΡ malicious packages.
ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ
ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ²Π΅ΡΡΠΉ input'Ρ. ΠΠ΄Π΅ ΠΈ ΠΊΠ°ΠΊ Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ, ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ ΠΏΠ΅ΡΠ²Π°Ρ Π·Π°ΡΠΈΡΠ°.
ΠΡΠΎΡΠ°ΠΉΠ»ΠΈΠ½Π³ ΠΈ hot path
ΠΠ°ΠΉΡΠΈ Π³Π΄Π΅ ΠΊΠΎΠ΄ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΡΠ°ΡΠΈΡ Π²ΡΠ΅ΠΌΡ β Π±Π΅Π· ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ»Π΅ΠΏΡΡ.
Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ΄Π΅ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ, Π½Π° ΡΠΊΠΎΠ»ΡΠΊΠΎ, ΠΊΠ°ΠΊ ΠΈΠ½Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ β ΠΊΠ΅Ρ ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π»ΠΆΡΡ.
ΠΠΎΠΈΡΠΊ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ
Heap-snapshot, retained size, ΡΠΈΠΏΡ ΡΡΠ΅ΡΠ΅ΠΊ, ΠΊΠ°ΠΊ Π½Π΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ.
Π’Π΅ΡΡΡ Π΄Π»Ρ legacy Π±Π΅Π· ΡΠ΅ΡΡΠΎΠ²
ΠΠ΄Π΅ Π²ΡΠ΅Π·Π°ΡΡΡΡ Π² ΠΊΠΎΠ΄ Π±Π΅Π· ΡΠ΅ΡΡΠΎΠ², ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ characterization tests ΠΈ Π½Π°ΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΏΠΎΠΊΡΡΡΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ.
Zero-downtime ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΠ
Expand/contract, dual-write, backfill, switch-over, rollback β ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π±Π΅Π· ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°.
ΠΠΈΠ·Π°ΠΉΠ½ rate limiting
ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ (token bucket, sliding window), Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΊΠ»ΡΡΠΈ, ΠΎΡΠ²Π΅ΡΡ 429 ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠ΄Π΅.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° feature flags
Π’ΠΈΠΏΡ ΡΠ»Π°Π³ΠΎΠ² (release/experiment/ops/permission), Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΠΎΡΠ΅Π½ΠΊΠ°, ΡΠ΅Ρ -Π΄ΠΎΠ»Π³ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅.
ΠΠΈΠ·Π°ΠΉΠ½ async ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ ΠΈ Π²ΠΎΡΠΊΠ΅ΡΠΎΠ²
At-least/exactly-once, idempotency, retry, DLQ, ordering, observability β ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΡΠ΅ΡΡΠ΅Ρ ΠΈ Π½Π΅ Π΄ΡΠ±Π»ΠΈΡΡΠ΅Ρ.
Observability: ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Π»ΠΎΠ³ΠΈ, ΡΡΠ΅ΠΉΡΡ
Π§ΡΠΎ ΠΈ Π³Π΄Π΅ ΡΠΎΠ±ΠΈΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡ ΡΡΠΈ ΠΏΠΈΠ»Π°ΡΠ°, ΠΊΠ°ΠΊΠΎΠΉ Π±ΡΠ΄ΠΆΠ΅Ρ Π½Π° cardinality ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅.
Event-driven Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°: ΡΠΎΠ±ΡΡΠΈΡ ΠΈ Π±ΡΠΎΠΊΠ΅Ρ
Π‘ΠΎΠ±ΡΡΠΈΡ vs ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²ΡΠ±ΠΎΡ Π±ΡΠΎΠΊΠ΅ΡΠ°, schema evolution, ordering guarantees, replay Π΄Π»Ρ recovery β Π±Π΅Π· ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ Π°Π΄Π°.
ΠΠ΅ΠΊΡΠ°Π³ΠΎΠ½Π°Π»ΡΠ½Π°Ρ (Clean) Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°: ΠΏΠΎΡΡΡ ΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΡ
Dependency rule, ΡΡΠΎ Π² core ΠΈ ΡΡΠΎ Π² infra, ports ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, adapters ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ β Π±Π΅Π· overengineering.
Contract testing: Pact, OpenAPI, CI-Π³Π΅ΠΉΡΡ
Consumer-driven contracts, provider/consumer flow, schema check Π² CI, Π»ΠΎΠ²ΡΡΠΊΠΈ ΠΌΠΎΠΊΠΎΠ² vs ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠ².
API versioning: ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΈ deprecation
URL path vs Accept header vs media-type, deprecation timeline, sunset headers, ΠΊΠ°ΠΊ Π½Π΅ Π·Π°ΡΡΡΡΡΡ Π½Π° v2 Π½Π°Π²ΡΠ΅Π³Π΄Π°.
ΠΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎΡΡΡ: ΠΊΠ»ΡΡΠΈ, storage, retry
Idempotency keys (UUID), Redis storage Ρ TTL, retry strategy, edge-cases Ρ concurrent same-key ΠΈ retry ΠΏΠΎΡΠ»Π΅ success.
Transactional outbox pattern
Outbox table Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, async publisher, Π΄Π΅Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π° consumer, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° poison messages.
Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ²: ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π°, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅Π½ΠΎΠΉ
ΠΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ, composite vs single, covering indexes, Π°ΡΠ΄ΠΈΡ unused, ΡΠ΅Π½Π° write vs read.
Full-text search: pg_trgm vs MeiliSearch vs Elastic
ΠΠΎΠ³Π΄Π° Ρ Π²Π°ΡΠΈΡ Postgres, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ΅Π½ MeiliSearch, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ»ΡΠΊΠΎ Elastic. Ranking (BM25, custom boost), faceting, multilang, synonyms.
Π§ΡΠ΅Π½ΠΈΠ΅ distributed traces: critical path ΠΈ fan-out
ΠΠ°ΠΊ ΡΠΈΡΠ°ΡΡ trace: critical path (Π΄Π»ΠΈΠ½Π½Π΅ΠΉΡΠΈΠΉ span), fan-out (parallel calls), latency budget, ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΌΠ΅Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ (N+1, ΡΠ΅ΡΠΈΠΉΠ½ΡΠ΅ calls).
Runbook Π΄Π»Ρ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ°: ΡΠ°Π±Π»ΠΎΠ½
Π‘ΠΈΠΌΠΏΡΠΎΠΌΡ β first response β escalation β ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ β Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ β ΠΏΠΎΡΡ-ΠΌΠΎΡΡΠ΅ΠΌ. ΠΠΈΠ²ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, Π½Π΅ ΠΎΡΡΡΡ.
ADR-ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°: lifecycle, ΡΡΠΎ ΡΡΠ΄Π° ΠΏΠΈΡΠ°ΡΡ, ΡΡΠΎ ΠΠ
ΠΠΎΠ³Π΄Π° ΠΏΠΈΡΠ°ΡΡ ADR (architectural, Π½Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ PR), ΡΠΎΡΠΌΠ°Ρ, lifecycle (proposed/accepted/superseded), ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΆΠΈΠ²ΡΠΌ, ΡΡΠΎ ΠΠ ADR.
ΠΠ½Π°Π»ΠΈΠ· JS-Π±Π°Π½Π΄Π»Π° ΠΈ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ
ΠΠ°ΠΉΡΠΈ ΡΠΎΠΏ-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ² Π½Π° Π²ΡΠ»Π΅Ρ ΠΈΠ· Π±Π°Π½Π΄Π»Π°: webpack-bundle-analyzer / source-map-explorer / Lighthouse, dynamic import strategy, Π±ΡΠ΄ΠΆΠ΅Ρ.
Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ lazy hydration
Π§ΡΠΎ Π³ΠΈΠ΄ΡΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π·Ρ, ΡΡΠΎ Π»Π΅Π½ΠΈΠ²ΠΎ, ΠΏΠΎ ΡΠ΅ΠΌΡ ΡΡΠΈΠ³Π³Π΅ΡΠΈΡΡ β Π΄Π»Ρ Astro islands, RSC, Vue suspense.
Π¨Π°Π±Π»ΠΎΠ½ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Pull Request
Π§ΡΠΎ / Π·Π°ΡΠ΅ΠΌ / ΠΊΠ°ΠΊ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ / ΡΠΈΡΠΊΠΈ / ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ / ΡΠΊΡΠΈΠ½ΡΠΎΡΡ. Π Π΅Π²ΡΡΠ΅Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π³Π°Π΄Π°ΡΡ.
ΠΠΈΠ·Π°ΠΉΠ½ fuzz-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ΄Π΅ fuzz Π΄Π°ΡΡ ROI: ΠΏΠ°ΡΡΠ΅ΡΡ, Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΡ, ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ. Corpus + ΠΌΡΡΠ°ΡΠΈΠΈ, ΡΡΠΎ ΡΡΠΈΡΠ°ΡΡ crash, tooling.
Π€ΠΈΡΠ° ΠΎΡ ΡΠΏΠ΅ΠΊΠΈ Π΄ΠΎ ΡΠ΅Π»ΠΈΠ·Π° Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡ ΠΎΠ΄
Orchestrator-ΠΏΡΠΎΠΌΡ: Π²Π΅Π΄ΡΡ ΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· 7 ΡΠ°Π· (spec β arch β impl β tests β docs β PR β release notes) Π·Π° ΠΎΠ΄ΠΈΠ½ Π·Π°Ρ ΠΎΠ΄. ΠΠ°ΠΌΠ΅Π½ΡΠ΅Ρ 5-7 ΡΠ°Π·ΡΠΎΠ·Π½Π΅Π½Π½ΡΡ ΠΏΡΠΎΠΌΡΠΎΠ² ΠΈ Π΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π°ΠΌΠΈ.
ΠΠΈΠ³ΡΠ°ΡΠΈΡ ΡΡΠ΅ΠΊΠ°: orchestrator ΠΎΡ discovery Π΄ΠΎ cutover
Orchestrator-ΠΏΡΠΎΠΌΡ Π΄Π»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ: jQueryβReact, ExpressβFastify, RESTβGraphQL, on-premβcloud, Postgres major version. 7 ΡΠ°Π·: discovery β risks β strategy β plan β execution β cutover β cleanup.
Systematic Debugging Orchestrator: 6 ΡΠ°Π· ΠΎΡ ΡΠΈΠΌΠΏΡΠΎΠΌΠ° Π΄ΠΎ root cause
ΠΠΈΡΡΠΈΠΏΠ»ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ: ΡΠΈΠΌΠΏΡΠΎΠΌΡ β ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ β Π΄Π΅ΡΠ΅Π²ΠΎ Π³ΠΈΠΏΠΎΡΠ΅Π· β trace/bisect β root cause β fix + regression test. Iron Law: Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΈΠΊΡΠΎΠ² Π±Π΅Π· root cause.
ΠΠΈΠ·Π°ΠΉΠ½ webhooks: payload, ΠΏΠΎΠ΄ΠΏΠΈΡΡ, retry, ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎΡΡΡ
ΠΠΎΠ»Π½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ webhooks: ΡΡ Π΅ΠΌΠ° payload, HMAC-ΠΏΠΎΠ΄ΠΏΠΈΡΡ, ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΠ΅ΡΡΠ°Π΅Π², ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎΡΡΡ, Π·Π°ΡΠΈΡΠ° ΠΎΡ replay, observability, dead letter, ΡΠ·Π΅Ρ-debug.
ΠΠΈΠ·Π°ΠΉΠ½ cron jobs: scheduling, overlap, observability
Cron vs scheduler service, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ overlap'Π°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ missed runs, observability ΠΈ monitoring, failure handling.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²: presigned URLs, multipart, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
Direct browser β S3 ΡΠ΅ΡΠ΅Π· presigned URLs, Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΈ virus scanning, MIME enforcement, thumbnails, retention, scale Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² (multipart, resumable).
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ°: PG full-text vs MeiliSearch vs Algolia vs Elasticsearch
ΠΡΠΈΡΠ΅ΡΠΈΠΈ Π²ΡΠ±ΠΎΡΠ° engine, ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ, ranking, faceting, multi-language, ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΈΡΡ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΠΎΡΡΡ.
Real-time collaboration: CRDT vs OT vs lock-based
ΠΡΠ±ΠΎΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π΄Π»Ρ collaborative editing (ΠΊΠ°ΠΊ Figma/Notion/Linear): CRDT vs Operational Transform vs lock-based. Trade-offs, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, edge cases.
ΠΡΠ΄ΠΈΡ SSR-Π³ΠΈΠ΄ΡΠ°ΡΠ°ΡΠΈΠΈ
React / Next.js SSR hydration: Π³Π΄Π΅ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ°ΡΡ ΠΎΠ΄ΡΡΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΉΠΌΠ°ΡΡ (console warnings, content flash), ΠΊΠ°ΠΊ ΠΏΠΎΡΠΈΠ½ΠΈΡΡ Π±Π΅Π· `suppressHydrationWarning`-ΠΎΠ±ΡΡΡΠΎΠΊ.
E2E-ΠΏΠ»Π°Π½ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»ΠΎΡ
Playwright / Cypress / Puppeteer-ΠΏΠ»Π°Π½ Π΄Π»Ρ 5-7 critical user flows: signup, search, checkout, settings, recovery. Stable, Π² CI, Π½Π΅ flaky.
ΠΡΠ΄ΠΈΡ data + state integrity
Race conditions, optimistic-update revert, localStorage versioning, browser back/forward, multi-tab sync, retry-storms, stale cache. Π‘Π°ΠΌΡΠΉ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Π±Π°Π³ΠΎΠ² β Π½Π΅Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ Β«ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅ΡΒ».