- Gits
- CI/CD
- ΠΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Code Debt ΠΈ ΠΊΠ°ΠΊ Ρ Π½ΠΈΠΌ Π±ΡΡΡ
- Otherβ¦
- ΠΠ°ΠΊ ΡΡ Π΄Π΅Π»Π°Π΅ΡΡ ΡΡΡΠΈΠΌΠ°ΡΠΈΡ Π·Π°Π΄Π°ΡΠΈ?
- ΠΡΠ»ΠΈ Π»ΠΈ ΠΊΠ΅ΠΉΡΡ ΠΊΠΎΠ³Π΄Π° ΡΡΡΠΈΠΌΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°Π»ΠΈΡΡ?
- ΠΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΎΡΡ?
- ΠΠ°ΠΊΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΠΎΠΊΡΡΡΠΈΠ΅
- ΠΠ°ΠΊ ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ
- Π§ΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΡ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ?
- ΠΡΠ»Π° Π»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈ ΠΊΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π°?
- Lifecycle Π·Π°Π΄Π°ΡΠΈ
- Π§ΡΠΎ Π΄Π»Ρ ΡΠ΅Π±Ρ clean code
- CORS
- Π’ΡΠΎΡΡΠ»ΠΈΠ½Π³
Gits
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Git Flow
Historical BranchesΒ ΠΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ master Π²Π΅ΡΠΊΠΈ, ΡΡΠΎΡ workflow ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π²Π΅ Π²Π΅ΡΠΊΠΈ, Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Master Ρ ΡΠ°Π½ΠΈΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠ΅Π»ΠΈΠ·ΠΎΠ², Π² development ΠΆΠ΅ Π²Π΅ΡΠΊΠ΅ Π²Π΅Π΄Π΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΡΠ°Π³Π°ΡΡ ΠΊΠΎΠΌΠΈΡΡ Π² master Π²Π΅ΡΠΊΠΈ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ Π²Π΅ΡΡΠΈΠΉ.
Feature BranchesΒ ΠΠ°ΠΆΠ΄Π°Ρ Π½ΠΎΠ²Π°Ρ ΡΠΈΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ - Π² ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΡΠΈΡΡΡΡ Π² ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ»Π»Π°Π±ΠΎΡΠ°ΡΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΈΡΠ΅Π±ΡΠ°Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ development Π²Π΅ΡΠΊΠ°. ΠΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΈΡΠΈ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π°, ΠΎΠ½Π° ΡΠ»ΠΈΠ²Π°Π΅ΡΡΡ Π² development. Π€ΠΈΡΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ»ΠΈΠ²Π°ΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Ρ master Π²Π΅ΡΠΊΠΎΠΉ.
Release BranchesΒ ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ development Π½Π°Π±Π΅ΡΠ΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΈΡ Π΄Π»Ρ ΡΠ΅Π»ΠΈΠ·Π° (ΠΈΠ»ΠΈ Π² Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π΄Π°ΡΡ) ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ release Π²Π΅ΡΠΊΠ° ΠΈΠ· development Π²Π΅ΡΠΊΠΈ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π±ΡΠ°Π½ΡΠ° Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠ΅Π»ΠΈΠ·-ΡΠΈΠΊΠ», ΠΏΠΎΡΡΠΎΠΌΡ Π² ΡΡΡ Π²Π΅ΡΠΊΡ ΡΠΆΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π΄Π°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠΈΡ - ΡΠΎΠ»ΡΠΊΠΎ Π±Π°Π³-ΡΠΈΠΊΡΡ, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΡΠΊΠΈ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΡΠ΅Π»ΠΈΠ·.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΠΈΠ·-Π²Π΅ΡΠΊΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π°, Π΅Π΅ ΡΠ»ΠΈΠ²Π°ΡΡ Ρ master ΠΈ ΡΠ°Π³Π°ΡΡ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ»ΠΈΡΠ° ΠΈ Ρ development Π²Π΅ΡΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΆΠ΅ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠ±Π΅ΠΆΠ°Π»Π° Π²ΠΏΠ΅ΡΠ΅Π΄, Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅Π»ΠΈΠ·Π°.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π΄Π»Ρ ΡΠ΅Π»ΠΈΠ·Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΡΠ΅Π»ΠΈΠ·, Π² ΡΠΎΠΌ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠ³Π΄Π° Π΄ΡΡΠ³Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΈΡΠΈ Π² development Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ΅Π»ΠΈΠ·ΠΎΠ².
Hotfix BranchesΒ Hotfix Π²Π΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠΈΠ½Π³Π° ΡΠ΅Π»ΠΈΠ·ΠΎΠ². ΠΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ Π²Π΅ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈΠ· master. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΊΡ Π³ΠΎΡΠΎΠ², ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ»ΠΈΡ ΠΊΠ°ΠΊ Π² master, ΡΠ°ΠΊ ΠΈ Π² development (ΠΈΠ»ΠΈ Π² Π½ΠΎΠ²ΡΠΉ release, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π΅ΡΡΡ) ΠΈ master Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ (ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° patch ΡΠΈΡΡΠ°. v.1.0.1, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ) ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π΅ ΠΏΡΠ΅ΡΡΠ²Π°Ρ Π²Π΅ΡΡ Π²ΠΎΡΠΊΡΠ»ΠΎΡ ΠΈΠ»ΠΈ Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ΅Π»ΠΈΠ·Π°, Π΄Π»Ρ Π²ΡΠΊΠ°ΡΡΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ.
Reference:
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Git Rebase
ΠΡΠ°ΠΊ git ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΊΠΎΠΌΠΈΡΠ°ΠΌΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΈΡ β Π½Π°Π±ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΈΡΠ° Π΅ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ hash. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ merge:
$ git merge "another_branch"
ΡΠΎ Π²ΡΠ΅ ΠΊΠΎΠΌΠΈΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ β ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠΈΡΠ°, Π΅Π³ΠΎ hash + ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΈΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΈΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. ΠΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΠΎΠΏΡΡΡΠΈΠΌ Π²Π°Ρ ΠΊΠΎΠΌΠΈΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΎΡΠΊΠ°ΡΠΈΡΡ β Π²ΡΠΈΡΠΊΠΈΠ²Π°ΡΡ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ Π³Π΄Π΅ Π²Π°Ρ ΠΊΠΎΠΌΠΈΡ, Π° Π³Π΄Π΅ Π½Π΅ Π²Π°Ρ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΈΡΡΠ½ΠΎ. Π Π²ΠΎΠΎΠ±ΡΠ΅ β Π² ΠΎΠ±ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ Ρ ΠΎΡΠ΅ΡΡΡ Π²ΠΈΠ΄Π΅ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Π°ΠΆΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π° Π½Π΅ Β«ΠΎΠΉ, Ρ Π·Π°Π±ΡΠ» ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ;Β». ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΈΡΠΎΠ² ΡΠΊΠ»Π΅ΠΈΠ²Π°ΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ rebase. Π₯ΠΎΡΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ GitHub Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΎΡΠΊΠ° squash & commit β ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ pull request (PR) ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ (ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΈΠ· Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ) ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΆΠ°ΡΡ squash & commit, ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΈ Π²Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠ²ΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΈΡ.
Π₯ΠΎΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎ Π΄Π²ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ rebase:
- ΠΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΈΠ· ΠΎΠ΄Π½Ρ Π²Π΅ΡΠΊΡ Π² Π΄ΡΡΠ³ΡΡ Π½Π΅ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ merge, Π° ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ rebase:Β
$ git rebase "another_branch"
Β ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΡΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΈΡΡ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ Π² Π²Π΅ΡΠΊΡ Β«another_branchΒ». Π₯ΡΡΠΈ Π²Π°ΡΠΈΡ ΠΊΠΎΠΌΠΈΡΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡ. - ΠΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠ°ΠΌΠΈ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΡ
ΠΊΠΎΠΌΠΈΡΠΎΠ² β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΊΠ»Π΅ΠΈΡΡ ΠΈΡ
, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ:Β
$ git rebase -i {HEAD~_commit_count_|commit_hash}
ΠΡΠ°ΠΊ Π²Ρ Π²ΡΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠ½Π΅Π½ΡΠΊΠΎΠΉ Π²Π΅ΡΠΎΡΠΊΠΈ ΠΈ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΡΠΈΠΌ ΠΊΠΎΠΌΠΈΡΠΎΠΌ Ρ ΠΌΠΈΡΠΎΠΌ, Π½ΠΎ ΠΌΠΈΡ Ρ
ΠΎΡΠ΅Ρ ΠΎΡ Π²Π°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΈΡ.Β git rebase -i
Β Π·Π°ΠΏΡΡΡΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΈΡΡ (ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΈΡΠΎΠ² β ΡΠ²Π΅ΡΡ
Ρ Π²Π½ΠΈΠ· Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ git log). ΠΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΈΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ»Π΅ΠΈΡΡ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π²Π°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΈΡ Π½Π°Π΄ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ, Π° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°Β pick "commit_hash" "comment" β fixup "commit_hash" "comment"
.
ΠΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π² fixup ΠΊΠΎΠΌΠΈΡΠ°Ρ ΠΏΠΎΡΠ΅ΡΡΡΡΡΡ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΈΡΠ°. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π±ΡΠ»ΠΈ Π΄ΠΎΡΠΎΠ³ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΡΠΎ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ squash Π²ΠΌΠ΅ΡΡΠΎ fixup.
ΠΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΡΠ» Π΄ΠΎΠ»ΠΎΠ³, ΡΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π²Π°ΠΌ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π΄Π΅Π»Π°ΡΡ merge ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ. Π Π²ΡΠ΅ Π²Π°ΡΠΈ ΠΊΠΎΠΌΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ Ρ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΊΠΎΠΌΠΈΡΠ°ΠΌΠΈ ΠΈ ΡΠΊΠ»Π΅ΠΈΠ²Π°ΡΡ Π²Π°ΡΠΈ Ρ Π½Π΅ Π²Π°ΡΠΈΠΌΠΈ Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π½Π΅ΠΏΡΠΎΡΡΠΎΠΉ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°ΡΡΒ git rebase -i <>
Β ΡΡΠΎΠΈΡ ΡΠ΄Π΅Π»Π°ΡΡΒ git rebase
.Β git rebase
Β ΠΏΠΎΡΡΠ°Π²ΠΈΡ Π²ΡΠ΅ Π²Π°ΡΠΈ ΠΊΠΎΠΌΠΈΡΡ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠΏΠΈΡΠΊΠ° Π²ΡΠ΅Ρ
ΠΊΠΎΠΌΠΈΡΠΎΠ² (Π² ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π·Π°ΠΏΡΡΡΠΈΠ²Β git log
) ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΒ git rebase -i <HEAD~ΠΠΎΠ»ΠΈΡΠ΅ΡΠ²ΠΎ_Π²Π°ΡΠΈΡ
_ΠΊΠΎΠΌΠΈΡΠΎΠ²>
, Π²ΠΎ Π²ΡΠ΅Ρ
ΡΡΡΠΎΡΠΊΠ°Ρ
ΠΊΡΠΎΠΌΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ pick β {fixup|squash} ΠΈ Π²ΡΠ°Π»Ρ β Ρ Π²Π°Ρ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΈΡ.
ΠΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΈΡΠΎΠ²Β git rebase -i <>
Β Π²Ρ ΠΊΠ°ΠΊ-ΡΠΎ Π½Π°ΠΊΠΎΡΡΡΠΈΠ»ΠΈ, ΡΠΎ Π½Π΅ ΡΡΠΎΠΈΡ ΠΆΠ°ΡΡ Control+C β exit code Π²ΡΡ
ΠΎΠ΄Π° ΠΈΠ· ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° git Π½Π΅ Π²ΠΎΠ»Π½ΡΠ΅Ρ. ΠΠ½ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·ΡΠΌΠ΅Ρ ΡΠ°ΠΉΠ» ΠΈ ΡΠ΄Π΅Π»Π°Π΅Ρ Π²ΡΠ΅ ΠΏΠΎ Π½Π΅ΠΌΡ. ΠΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ ΡΡΡΠΎΡΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅. git ΠΏΠΎΠΉΠΌΠ΅Ρ, ΡΡΠΎ Π²Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Ρ
ΠΎΡΠ΅Π»ΠΈ.
ΠΠΎΡΠ»Π΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ rebase ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ push Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ -F. ΠΡΠ΅ ΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΈΡΠΎΠ² ΠΈ git Π½Π°Ρ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ΅ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ.Β $ git push -f
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Git Cherry pick
ΠΠΎΠΌΠ°Π½Π΄Π°Β git cherry-pick
Β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠ΅, ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ. ΠΡΠΎΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄Β git merge
Β ΠΈΒ git rebase
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠ΅Π»ΡΠΌΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠ°ΠΌΠΈ.
git cherry-pick <commit-hash>
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ force push
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΡΠ°ΡΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ git, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΈΠΌΡ Π°Π²ΡΠΎΡΠ° ΠΈΠ»ΠΈ e-mail, ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ amend ΠΈΠ»ΠΈ revert, ΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ push-Π° git ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ Β«ΡΡΠ³Π½ΡΡΡΡΒ»
Π§ΡΠΎΠ±Ρ Π½Π°ΠΌ Π²ΡΡ ΠΆΠ΅ Π·Π°ΠΏΡΡΠΈΡΡ Π½Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π»ΠΈΠ±ΠΎ
git push --force origin <ΠΈΠΌΡ_Π²Π΅ΡΠΊΠΈ>
ΠΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΡΠΈΡΠΊΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅ΡΡ ΡΡΠΈ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Ρ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΊΠ°ΠΊ ΠΌΡ Π·Π°Π±ΠΈΡΠ°Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΊΡΠΎ-ΡΠΎ ΡΡΠΏΠ΅Π» Π·Π°ΠΏΡΡΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git push --force-with-lease origin <ΠΈΠΌΡ_Π²Π΅ΡΠΊΠΈ>
Π’Π°ΠΊΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π»ΡΡΡΠ΅ ΡΠ΅ΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΡΡΠΏΠ΅Π» Π·Π°ΠΏΡΡΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ Π·Π°Π±ΠΈΡΠ°Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠΎ ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡ
ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ°ΡΡ, Π° Π²ΡΠ΄Π°ΡΡ Π½Π°ΠΌ ΠΎΡΠΈΠ±ΠΊΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΆΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡΒ push --force-with-lease
Β Π΅ΡΡ ΡΠ°Π·.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ pre-commit check
ΠΠ°ΠΊ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, Π² GitβΠ΅ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π² ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π²Π΅ Π³ΡΡΠΏΠΏΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠΈΠΊΠΎΠ² (hook): Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠΈΠΊΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅. ΠΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠΈΠΊΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΡΠΈΡΠΌ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΌΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ· ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ ΠΌΡ ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ.
Pre-commit check ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊ:
- Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΊΠΎΠ΄Π° Π½Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ PEP8, Π½Π°Π»ΠΈΡΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΡΠ΄);
- Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΡ ΠΈΡΠ΄);
- ΠΏΡΠ΅ΡΡΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ commitβΠ° Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΆΡΡΠ½Π°Π» Π΄Π»Ρ ΡΠ°Π·Π±ΠΎΡΠ° ΠΏΠΎΠ»Π΅ΡΠΎΠ².
CI/CD
Continuous integration (Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ)Β ΠΠ΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ: Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½ΠΎΡΠΈΠΌΡΠ΅ Π² ΠΊΠΎΠ΄, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΡΠ»ΠΈΡΠ½ΠΈΠ΅Β»). Π‘Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π² Π΄Π΅Π½Ρ, ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ±ΠΎΡΠΊΠ° ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ±ΠΎΡΠΊΠΎΠΉ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ (ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ·ΡΠΊΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½Π° Π½Π°ΠΏΠΈΡΠ°Π½Π°). Π‘Π΅Π³ΠΎΠ΄Π½Ρ Π²ΡΠ΅ ΡΠ°ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Docker. ΠΠ°ΡΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΊΠΎΠ΄Π°, ΡΠ°Π±ΠΎΡΡ UI, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ API ΠΈ ΠΏΡ. ΠΡΠ΅ ΡΡΠΈ ΡΡΠ°ΠΏΡ Π² ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΡΠ±ΠΎΡΠΊΠΎΠΉΒ».
CI β ΡΡΠΎ ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½Π°Ρ ΡΡΡΠ°Ρ ΠΎΠ²ΠΎΡΠ½Π°Ρ ΡΠ΅ΡΠΊΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΌΠ°ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΄Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Continuous delivery (Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½Π°Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠ°)Β ΠΠ΅ΠΏΡΠ΅ΡΡΠ²Π½Π°Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠ° β ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ΅Π»ΠΈΠ·Π° ΠΠ. ΠΠ΄Π΅Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ CI, ΠΏΠ»ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΈ Π²Π΅ΡΡΠΈ ΡΠ΅Π»ΠΈΠ· ΠΊ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Ρ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ: Π»ΡΠ±ΠΎΠΉ, ΠΊΡΠΎ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΈΠ·Π° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΠΈΠΊΠΎΠ². ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, ΠΈΠ·Π±Π°Π²ΠΈΠ²ΡΠΈΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡ Π²ΡΠ΅ΠΉ ΡΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, ΡΡΡΠ΄ΠΈΡΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½Π΅Π΅.
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΡΡΠ½ΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄ΠΈΠ½ ΡΡΠ°ΠΏ: ΠΎΠ΄ΠΎΠ±ΡΠΈΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ. Π ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ°ΠΏΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ Π²ΡΡΡΠ½ΡΡ Π»ΠΈΠ±ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
Continuous deployment(Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π΅Π½ΠΈΠ΅)Β ΠΠ΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Β«Π½Π° ΡΡΠΎΠ²Π΅Π½Ρ Π²ΡΡΠ΅Β» Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½ΠΎΡΠΈΠΌΡΠ΅ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½, Π±Π΅Π· ΡΠ²Π½ΠΎΠΉ ΠΎΡΠΌΠ°ΡΠΊΠΈ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π·Π°Π΄Π°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ (pull request) ΠΎΡ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ΠΈ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°Ρ Π²ΡΠ΅Ρ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ.
ΠΠ΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»Π° ΠΎΡΠ»Π°ΠΆΠ΅Π½Π½Π°Ρ ΠΊΡΠ»ΡΡΡΡΠ° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, Π²ΡΠ΅ ΡΠΌΠ΅Π»ΠΈ Π΄Π΅ΡΠΆΠ°ΡΡ ΡΡΠΊΡ Π½Π° ΠΏΡΠ»ΡΡΠ΅ ΠΈ Π±ΡΡΡΡΠΎ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΠΏΡΠ°ΠΊΡΠΈΠΊΡΡΡΠΈΠ΅ CI ΠΈ ΠΆΠ΅Π»Π°ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΌΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π² ΠΎΠ±ΠΊΠ°ΡΠΎΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ, Π° ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π΄Π΅Π»Π°ΡΡ Π²ΡΡΡΠ½ΡΡ β ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠ»ΠΈΠΊΠΎΠΌ.
Π Π΅Π·ΡΠΌΠ΅:
- ΠΠ΅ΠΏΡΠ΅ΡΡΠ²Π½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ (CI): ΠΊΠΎΡΠΎΡΠΊΠΎΠΆΠΈΠ²ΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΠΊΠΈ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ»ΠΈΠ²Π°Π΅Ρ ΠΈΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π² Π΄Π΅Π½Ρ, ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΠΌΠ΅Π΅ΠΌ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ 10 ΠΌΠΈΠ½ΡΡ; ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΡΡΠ½ΡΡ.
- ΠΠ΅ΠΏΡΠ΅ΡΡΠ²Π½Π°Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠ° (CD): Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ CI + Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΅Π»ΠΈΠ·Π° ΠΠ. ΠΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ°ΠΏΠΎΠ². Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΡΡΠ½ΡΡ.
- ΠΠ΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅: CI + CD + ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½.
ΠΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ
ΠΠ°ΠΊΠ°Ρ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Scrum ΠΈ Kanban
Scrum ΠΈ Kanban β ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ Agile-ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π°. ΠΠ±Π΅ ΡΡΠΈΡΠ°ΡΡΡΡ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌΠΈ.
ΠΠΎΠ»Π΅Π΅ 17 Π»Π΅Ρ Π½Π°Π·Π°Π΄ Π»ΠΈΠ΄Π΅ΡΡ IT-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ Agile. ΠΠ»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΈΠ· ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°:
- ΠΡΠ΄ΠΈ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π²Π°ΠΆΠ½Π΅Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ².
- Π Π°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ Π²Π°ΠΆΠ½Π΅Π΅ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅ΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
- Π‘ΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²ΠΎ Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ Π²Π°ΠΆΠ½Π΅Π΅ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
- ΠΠΎΡΠΎΠ²Π½ΠΎΡΡΡ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ Π²Π°ΠΆΠ½Π΅Π΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΏΠ»Π°Π½Ρ.
ΠΡΠ½ΠΎΠ²ΡΒ ScrumΒ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠΏΡΠΈΠ½ΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, 2-3-Ρ Π½Π΅Π΄Π΅Π»ΡΠ½ΡΠ΅. ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΠΏΡΠΈΠ½ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ°ΠΌΠ° ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΡ Π½Π° ΠΈΡΠ΅ΡΠ°ΡΠΈΡ, Π΄Π°Π»Π΅Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠΏΡΠΈΠ½Ρ.
ΠΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠΏΡΠΈΠ½ΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ ΡΠΈΡΠΈ Π·Π°Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½, Π° Π½Π΅Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ β ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠΏΡΠΈΠ½Ρ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠΈΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΏΡΠΈΠ½ΡΠ°, Π½Π΅ ΠΌΠ΅Π½ΡΡΡΡΡ: ΡΡΠΎ Π±ΡΠ»ΠΎ Π½Π° ΡΡΠ°ΡΡΠ΅ ΡΠΏΡΠΈΠ½ΡΠ° β Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π»ΡΠ±ΠΎΠΉ ΡΠ΅Π½ΠΎΠΉ ΠΊ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠΏΡΠΈΠ½ΡΠ°.
KanbanΒ Π΄Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°ΡΡΠΎΡΡ ΡΠΌΠ΅Π½Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ². ΠΡΠ΅ΡΠ° Π²Ρ Π·Π°Π»ΠΈΠ»ΠΈ Π½Π° ΠΏΡΠΎΠ΄ Π½ΠΎΠ²ΡΡ ΡΠΈΡΡ, Π° ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΎΠΉ ΠΈ ΡΠ·Π½Π°Π»ΠΈ, ΡΡΠΎ Π²ΠΎΡ ΡΡΠ° ΡΡΡΠΊΠ° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ Π·Π°Π΄ΡΠΌΠ°Π½ΠΎ β Π»ΡΠ΄ΠΈ Π½Π΅ Π½Π°ΠΆΠΈΠΌΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΊΡΠΏΠΈΡΡΒ». ΠΡ Β«Π΄Π°Π΅ΡΠ΅ ΠΏΠΎ ΡΠ°ΠΏΠΊΠ΅Β» UX, ΠΎΠ½ Π΄Π°Π΅Ρ Π²Π°ΠΌ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ. ΠΡ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΡΠ΅ Π½Π°Π²Π΅ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΡΡ Π·Π°Π΄Π°ΡΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π±Π΅ΡΠ΅Ρ ΡΡΡ Π·Π°Π΄Π°ΡΡ Β«ΡΠ²Π΅ΡΡ ΡΒ», Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΅Π΅ ΠΈ, ΠΊ Π²Π΅ΡΠ΅ΡΡ fix ΡΠΆΠ΅ Π½Π° ΠΏΡΠΎΠ΄Π΅, ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡ Π² ΠΏΠ»Π°ΡΠ΅ΠΆΠΈ Π²ΡΡΠΎΡΠ»ΠΈ Π½Π° 12%. ΠΡΠΎ ΠΏΠΎΠ±Π΅Π΄Π°.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Scrum ΠΈ ΠΠ°Π½Π±Π°Π½ β Π² Π΄Π»ΠΈΠ½Π΅ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ. Π Scrum ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ β 2 Π½Π΅Π΄Π΅Π»ΠΈ, Π² Kanban Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Β«ΠΏΠΎΠ΄ΡΠΎΠ²ΡΠ²Π°ΡΡΒ» Ρ ΠΎΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ.
ΠΒ ScrumΒ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΈΠ½ΡΡΠΎ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ Π² Story points ΠΈΠ»ΠΈ Π² ΡΠ°ΡΠ°Ρ . ΠΠ΅Π· ΠΎΡΠ΅Π½ΠΊΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΡΠΈΠ½Ρ: Π²Π΅Π΄Ρ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΏΠ΅Π΅ΠΌ Π»ΠΈ ΠΌΡ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π°Π΄Π°ΡΠΈ Π·Π° 2 Π½Π΅Π΄Π΅Π»ΠΈ. Π§Π΅ΡΠ΅Π· 2 Π½Π΅Π΄Π΅Π»ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ΅Π½Π½ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ β ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ² ΠΈΠ»ΠΈ Story points ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΌΠΎΠ³Π»Π° ΡΠ΄Π΅Π»Π°ΡΡ Π·Π° ΡΠΏΡΠΈΠ½Ρ. Velocity β ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠΏΡΠΈΠ½Ρ. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Scrum ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°ΡΡ, Π³Π΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π· 2 Π½Π΅Π΄Π΅Π»ΠΈ.
ΠΒ KanbanΒ Π½Π΅ ΠΏΡΠΈΠ½ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΠΎΡΠ΅Π½ΠΊΡ. ΠΡΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ΡΠ°Π΅Ρ ΡΠ°ΠΌΠ°. ΠΠ΄Π΅ΡΡ Π½Π΅Ρ ΠΏΠΎΠ½ΡΡΠΈΡ Β«ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΡΒ», ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π° Π·Π°Π΄Π°ΡΡ. ΠΡΠ΅ΠΌΡ ΡΡΠΎ ΡΡΠΈΡΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΡΠ΅ΡΠ° β Cycle Time.
ΠΡΠ°ΠΊ, Π² Scrum Π½Π°ΡΠ° ΡΠ΅Π»Ρ β Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ ΡΠΏΡΠΈΠ½Ρ, Π² Kanban β Π·Π°Π΄Π°ΡΡ.
Scrum β ΡΡΠΎ Π°Π²ΡΠΎΠ±ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π»ΠΈΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ°Ρ , Π³Π΄Π΅ Π»ΡΠ΄ΠΈ Π²ΡΡ ΠΎΠ΄ΡΡ Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ. Π Kanban β ΡΡΠΎ ΠΌΠ°ΡΡΡΡΡΠΊΠ°: Π·Π°Ρ ΠΎΡΠ΅Π» ΠΏΠ°ΡΡΠ°ΠΆΠΈΡ Π²ΡΠΉΡΠΈ, ΠΏΠΎΠΏΡΠΎΡΠΈΠ» Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΈ Π²ΡΡΠ΅Π» ΡΠ°ΠΌ, Π³Π΄Π΅ Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Code Debt ΠΈ ΠΊΠ°ΠΊ Ρ Π½ΠΈΠΌ Π±ΡΡΡ
Π ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ, Ρ.Π΅. Π² ΡΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ° ΠΌΠ΅ΡΠ°ΡΠΎΡΠ° Π±ΡΠ»Π° ΠΎΠΏΠΈΡΠ°Π½Π° ΠΠ°ΡΠ΄ΠΎΠΌ ΠΠ°Π½Π½ΠΈΠ½Π³Π΅ΠΌΠΎΠΌ, ΠΏΠΎΠ΄ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ Π΄ΠΎΠ»Π³ΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΊΠ°Π·ΡΠΈΠΊ ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ΅ΡΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π²ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΎΡ Π±ΡΡΡΡΠΎΠ³ΠΎ, ΠΏΡΡΡΡ ΠΈ Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π·Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°ΡΠΏΠ»Π°ΡΠΈΡΡΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅. Π Ρ ΠΎΡΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ»ΠΎΡ ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π±Π΅Π·ΡΠΌΠ½ΠΎΠΉ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΡΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ: Π΅ΡΠ»ΠΈ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, Π²ΡΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ ΡΠ°Π½ΡΡΠ΅ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ², ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ°ΠΌΠΈ, ΡΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΎΠΏΡΠ°Π²Π΄Π°Π½Π½ΠΎ. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½Π°Ρ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π° Π²ΠΎΠΎΠ±ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»Π°.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄ΠΎΠ»Π³ Π² ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌ ΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° Π½Π΅Π³ΠΎ Π»Π΅ΠΆΠΈΡ Π½Π° Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°Ρ , ΠΌΠ°ΡΠ΅ΡΡΡ Π»ΠΈΠ΄Π°Ρ , Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡΠ°Ρ ΠΈ Π΄Π°ΠΆΠ΅ ΠΠ-Π°Ρ , Π½ΠΎ Π²ΠΎΡ Π²ΡΠ΅, ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π³ΡΡΠ·Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΏΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π³ΡΡΠ·Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π½Π΅ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎ ΡΡΡΠΈ, Π½Π΅ ΡΠ°ΠΊΠ°Ρ ΡΠΆ ΠΈ Π±ΠΎΠ»ΡΡΠ°Ρ: ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π²Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΡΠΏΠ»Π°ΡΠΈΠ²Π°ΡΡΡΡ Π·Π° Π½Π΅Π΄Π°Π»ΡΠ½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ.
ΠΡΠΏΠ»Π°ΡΠΈΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅Π½ΡΡ ΠΏΠΎ ΡΠ΅Ρ Π΄ΠΎΠ»Π³Ρ Π»Π΅Π³ΡΠ΅, Π΅ΡΠ»ΠΈ Π½Π°ΡΠ°ΡΡ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.
- ΠΠ΅Π»Π°ΠΉΡΠ΅ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ MVP ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΡΠ΅ Π³ΠΈΠΏΠΎΡΠ΅Π·Ρ Π²ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ Π² ΡΠ°Π±ΠΎΡΡ.
- Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ: ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ, API Ρ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
- ΠΡΠΊΠ°ΠΆΠΈΡΠ΅ΡΡ ΠΎΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Microsoft Azure, AWS Amazon Cloud, Β«Π―Π½Π΄Π΅ΠΊΡ.ΠΠ±Π»Π°ΠΊΠΎΒ», ΠΎΠ±Π»Π°ΠΊΠΎ ΠΎΡ Mail.ru ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΠ΅ΡΠΊΠΈΠΉ definition of done, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°. ΠΡΠ΅Π½Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² DOD ΠΏΡΠ½ΠΊΡ, ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ Β«ΠΏΡΠΈΠ΅ΠΌΠΊΡΒ» ΡΠΈΡΠΈ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½Π΅ΠΉ Π±Π°Π³ΠΈ.
- ΠΠ»Ρ MVP Ρ ΠΎΡΠΎΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠ² Π½Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ ΡΠ°ΡΡΡ Π±ΡΠ»Π° Π½Π΅Π·Π°ΠΌΠ΅ΡΠ½ΠΎΠΉ.
ΠΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΡΠ΅Ρ Π΄ΠΎΠ»Π³ΠΎΠΌ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ. ΠΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΡΡΠΈ.
- ΠΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅ Ρ Π½ΡΠ»Ρ. ΠΡΠΎ ΡΠ»ΡΡΠΈΠΌΠ°ΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π³ΠΎΡΠΎΠ²Π° ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ Π·Π°ΡΠ»ΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π°Π»Π΅ΠΊΠΎ ΠΈ ΡΠΆΠ΅ Π½Π΅Ρ ΠΏΡΠ΅ΠΆΠ½Π΅ΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ.
- ΠΠ΅Π»Π°ΡΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³. ΠΠ°Π΄Π°ΡΠΈ ΠΏΠΎ ΡΠ΅Ρ Π΄ΠΎΠ»Π³Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π² Π±ΡΠΊΠ»ΠΎΠ³ Π½Π°ΡΠ°Π²Π½Π΅ Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ. ΠΡΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ Π²ΡΠΊΠ°ΡΠΊΠ΅ Π½ΠΎΠ²ΡΡ ΡΠΈΡ, Π½ΠΎ Π±ΠΈΠ·Π½Π΅Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠ΄Π΅Ρ Π½Π° ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΡ.
- Π‘ΠΌΠΈΡΡΡΡΡΡ Ρ ΡΠ΅Ρ Π΄ΠΎΠ»Π³ΠΎΠΌ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅ ΡΡΠ°ΡΡΠ°ΠΏ, Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½ΡΠΆΠ½Ρ ΡΠ°Π· Π² ΠΏΠΎΠ»Π³ΠΎΠ΄Π°, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΌΠΈΡΠΈΡΡΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΊΠΎΠ΄ Π½Π΅ΠΎΠΏΡΠΈΠΌΠ°Π»Π΅Π½, ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Β«ΡΠ°Π±ΠΎΡΠ°Π΅Ρ β Π½Π΅ ΡΡΠΎΠ³Π°ΠΉΒ». ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅, ΡΡΠΎ ΠΎΡΠΈΠ±Π»ΠΈΡΡ, Π²Ρ ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ΡΡ ΠΊ ΠΏΡΠ½ΠΊΡΡ 1.