Π‘Π΄Π°ΡΠ° Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ ΡΠ°Π±ΠΎΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π΄Π²Π° ΡΡΠ°ΠΏΠ°: Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΡΠΈΡΠ°.
- ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΄Π°Π½Π½ΡΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠΉ Π½Π° Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠΎΠ΄Π°ΡΠ΅ΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ΄Π°ΡΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Pull Request Π² ΡΡΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ (ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΏΡΠ½ΠΊΡΠ΅), Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π·Π°ΠΎΡΠ½ΠΎ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌΡ Π³ΡΠ°ΡΠΈΠΊΡ Π±Π΅Π· ΡΡΠ°ΡΡΠΈΡ ΡΡΡΠ΄Π΅Π½ΡΠ°. ΠΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ Pull Request ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π²ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ (Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ) ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠ΄Π΅Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΡ ΠΈ ΠΏΠΎΠ΄Π°ΡΡ ΠΊ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅. ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΊ ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠΌΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π³Π΄Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
- ΠΠ°ΡΠΈΡΠ° ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² "Π²ΠΆΠΈΠ²ΡΡ" Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ Π·Π°Π½ΡΡΠΈΠΉ, Ρ Π΄Π°ΡΠ΅ΠΉ ΠΎΡΠ²Π΅ΡΠΎΠ² Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ.
Π Π΅ΠΉΡΠΈΠ½Π³ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡΠ΅Π½ΠΈΠ²Π°Π½ΠΈΡ (Π Π‘Π): Π‘ΠΈΠΌΠ²ΠΎΠ»
ΠΠ°Π»Π»ΠΎΠ²
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Q R
60
ΡΠ΅ΠΉΡΠΈΠ½Π³ΠΎΠ²ΡΠΉ Π±Π°Π»Π»
Q E
40
Π±Π°Π»Π»ΠΎΠ² Π·Π° ΡΠΊΠ·Π°ΠΌΠ΅Π½
Q B
10
Π±ΠΎΠ½ΡΡΠ½ΡΡ Π±Π°Π»Π»ΠΎΠ²
Π Π΅ΠΉΡΠΈΠ½Π³ΠΎΠ²ΡΠΉ Π±Π°Π»Π» (Q R), Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π‘ΠΈΠΌΠ²ΠΎΠ»
ΠΠ°Π»Π»ΠΎΠ²
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Q Rlab
40
Π±Π°Π»Π»ΠΎΠ² Π·Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ
Q Rtst
5 + 5
Π±Π°Π»Π»ΠΎΠ² Π·Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΠΠ
Q Ratt
10
Π±Π°Π»Π»ΠΎΠ² Π·Π° ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π½ΡΡΠΈΠΉ (Π»Π΅ΠΊΡΠΈΠΉ ΠΈ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ )
Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΡΡΠΊΠ° ΠΊ ΡΠΊΠ·Π°ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ:
- ΠΡΠ΅ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΠΈ Π·Π°ΡΠΈΡΠ΅Π½Ρ;
- ΠΠ°ΠΏΠΈΡΠ°Π½Ρ Π²ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ;
- Π‘ΡΠΌΠΌΠ°ΡΠ½ΡΠΉ Π½Π°Π±ΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΠΉΡΠΈΠ½Π³ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 40 Π±Π°Π»Π»ΠΎΠ².
Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ΄Π°ΡΠΈ ΡΠΊΠ·Π°ΠΌΠ΅Π½Π° (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΊΠ°ΠΊ "Π°Π²ΡΠΎΠΌΠ°Ρ"):
- ΠΡΠ΅ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΠΈ Π·Π°ΡΠΈΡΠ΅Π½Ρ;
- ΠΠ°ΠΏΠΈΡΠ°Π½Ρ Π²ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ;
- Π‘ΡΠΌΠΌΠ°ΡΠ½ΡΠΉ Π½Π°Π±ΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΠΉΡΠΈΠ½Π³ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 40 Π±Π°Π»Π»ΠΎΠ²;
- Π‘ΡΡΠ΄Π΅Π½Ρ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 3Ρ ΠΏΡΠΎΠΏΡΡΠ΅Π½Π½ΡΡ Π·Π°Π½ΡΡΠΈΠΉ;
- Π‘ΡΠΌΠΌΠ°ΡΠ½ΡΠΉ Π±Π°Π»Π» Π·Π° ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 40% ΠΎΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ.
Π£ΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠ΄Π°ΡΠΈ ΡΠΊΠ·Π°ΠΌΠ΅Π½Π° ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΡΠ°ΡΡΡΠ΅Ρ Π±Π°Π»Π»ΠΎΠ² Π·Π° ΡΠΊΠ·Π°ΠΌΠ΅Π½ ΠΊΠ°ΠΊ Q E = Q Rlab (Π±Π°Π»Π»Ρ Π·Π° ΡΠΊΠ·Π°ΠΌΠ΅Π½ ΠΏΡΠΈΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ ΠΊ Π±Π°Π»Π»Π°ΠΌ Π·Π° Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΠ΅). Π‘ΡΡΠ΄Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΠΆΠ΅Π»Π°Π½ΠΈΡ.
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΡΠΈΡΠ° Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ ΡΠ°Π±ΠΎΡ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, ΠΏΠΎ ΡΠΊΠ°Π»Π΅ ΠΎΡ 0 Π΄ΠΎ 5 Π±Π°Π»Π»ΠΎΠ²;
ΠΡΠΎΠ³ΠΎΠ²Π°Ρ ΠΎΡΠ΅Π½ΠΊΠ° Π·Π° Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅:
Π³Π΄Π΅ R LAB β ΠΈΡΠΎΠ³ΠΎΠ²ΡΠΉ ΡΠ΅ΠΉΡΠΈΠ½Π³ΠΎΠ²ΡΠΉ Π±Π°Π»Π» Π·Π° Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ; K LAB β ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ (ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ, Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π Π‘Π); N f β ΠΎΡΠ΅Π½ΠΊΠ° Π·Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ, ΠΎΡ 0 Π΄ΠΎ 5; N s β ΠΎΡΠ΅Π½ΠΊΠ° Π·Π° Π·Π°ΡΠΈΡΡ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, ΠΎΡ 0 Π΄ΠΎ 5.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠ΅Π½ΠΊΠ° Π·Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Π½ΠΎΡΠΈΡ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΠΈΡΠΎΠ³ΠΎΠ²ΡΠΉ Π±Π°Π»Π»
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠ΅Π½ΠΊΠ° Π·Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ:
- 5 Π±Π°Π»Π»ΠΎΠ² β Π΅ΡΠ»ΠΈ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΈ ΠΏΠΎΠ΄Π°Π½Π° ΠΊ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Π±Π΅Π· ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠΉ ΠΎΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ;
- 4 Π±Π°Π»Π»Π° β Π΅ΡΠ»ΠΈ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΈ ΠΏΠΎΠ΄Π°Π½Π° ΠΊ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Ρ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΠΎΠ΄Π½Ρ Π½Π΅Π΄Π΅Π»Ρ;
- 3 Π±Π°Π»Π»Π° β Π΅ΡΠ»ΠΈ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΈ ΠΏΠΎΠ΄Π°Π½Π° ΠΊ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Ρ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ Π½Π° ΠΎΠ΄Π½Ρ Π½Π΅Π΄Π΅Π»Ρ.
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠ΅Π½ΠΊΠ° Π·Π° Π·Π°ΡΠΈΡΡ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ:
- 5 Π±Π°Π»Π»ΠΎΠ² β Π΅ΡΠ»ΠΈ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π·Π°ΡΠΈΡΠ΅Π½Π° Π²ΠΎΠ²ΡΠ΅ΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΡΠΈΡΡ ΡΡΡΠ΄Π΅Π½Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ, Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π°Π²ΡΠΊΠΎΠ², ΡΠ²ΠΎΡΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΡ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈ ΡΠ΅ΡΠΊΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ;
- 4 Π±Π°Π»Π»Π° β Π΅ΡΠ»ΠΈ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π·Π°ΡΠΈΡΠ΅Π½Π° Ρ ΠΎΠΏΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Π½Π° ΠΎΠ΄Π½Ρ Π½Π΅Π΄Π΅Π»Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΡΠΈΡΡ ΡΡΡΠ΄Π΅Π½Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ, Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π°Π²ΡΠΊΠΎΠ², ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈ ΡΠ΅ΡΠΊΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ;
- 3 Π±Π°Π»Π»Π° β Π΅ΡΠ»ΠΈ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π·Π°ΡΠΈΡΠ΅Π½Π° Π²ΠΎΠ²ΡΠ΅ΠΌΡ, Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΡΠΈΡΡ ΡΡΡΠ΄Π΅Π½Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΌ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΡ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ Ρ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π½Π΅ΡΠΎΡΠ½ΠΎΡΡΡΠΌΠΈ ΠΈΠ»ΠΈ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π·Π°ΡΠΈΡΠ΅Π½Π° Ρ ΠΎΠΏΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ Π½Π° ΠΎΠ΄Π½Ρ Π½Π΅Π΄Π΅Π»Ρ;
- 1.5 Π±Π°Π»Π»Π° β Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΡΠΈΡΡ ΡΡΡΠ΄Π΅Π½Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠΉ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, Π½ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ;
- 0 Π±Π°Π»Π»ΠΎΠ² β Π΅ΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π·Π°ΡΠΈΡΡ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΡΡΠ΄Π΅Π½Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π» Π²ΠΎΠΏΠΈΡΡΠ΅Π΅ Π½Π΅Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ ΠΈ Π²ΡΡΠ°Π·ΠΈΠ» Π½Π΅ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΄Π°Π²Π°ΡΡ Π΅Π΅ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΊ ΠΎΡΠ²Π΅ΡΠ°ΠΌ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ).
ΠΠΎΠ΄Π°Π½Π½ΡΠ΅ ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΌ:
ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ±Π±ΠΎΡΠ°, Π΄ΠΎ 16:00 ΠΏΠΎ ΠΊΠΈΠ΅Π²ΡΠΊΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ |
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ½Π΅Π΄Π΅Π»ΡΠ½ΠΈΠΊ, Π΄ΠΎ 17:00 ΠΏΠΎ ΠΊΠΈΠ΅Π²ΡΠΊΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ |
ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠ²Π°ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Ρ β Π² Π΄ΡΡΠ³ΠΎΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΏΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Π΅ΠΌ Π½Π΅ ΠΏΠΎΠ·ΠΆΠ΅, ΡΠ΅ΠΌ Π·Π° Π½Π΅Π΄Π΅Π»Ρ |
ΠΠΎΠ΄Π°Π½Π½ΡΠ΅ Pull Request ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΌ Π·Π°Π½ΡΡΠΈΠΈ. Π‘ΡΠΎΠΈΡ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ΄Π΅Π½ΡΠ°ΠΌ, Π·Π°ΡΠΈΡΠ°ΡΡΠΈΠΌ ΡΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ. ΠΡΠΎΠ²Π΅ΡΠΊΠ° Pull Request ΠΊΡΠΎΠΏΠΎΡΠ»ΠΈΠ²Π° ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎΡΡΠ΄ΠΊΠ° 10..30 ΠΌΠΈΠ½ΡΡ.
ΠΠΎΠ΄Π°Π½Π½ΡΠ΅ Π²Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π²ΡΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° Pull Request, Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΊΠΎΡΠΎΡΡΡ Π½Π° Π·Π°Π½ΡΡΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π΅ Ρ Π²Π°ΡΠΈΠ»ΠΎ ΠΏΠΎΠ΄Π°Π½Π½ΡΠΌΠΈ Π²ΠΎΠ²ΡΠ΅ΠΌΡ Π½Π΅ ΡΡΠΈΡΠ°ΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π·Π°ΡΡΠ³ΠΈΠ²Π°ΡΡ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ.
ΠΡΠΎΠ³ΠΈ β ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π·Π°ΡΠΈΡΡ ΡΠ°Π±ΠΎΡ
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
- ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΠΊ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π΄Π»Ρ ΡΡΡΠ΄Π΅Π½ΡΠ° Π²ΡΠ΅ΠΌΡ ΠΈ Pull Request ΠΏΠΎΠ΄Π°Π΅ΡΡΡ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Π΄ΠΎ ΡΡΠ±Π±ΠΎΡΡ 16:00;
- ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Pull Request, ΠΈ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ, ΡΡΡΠ΄Π΅Π½Ρ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΡ Π΄ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π² ΠΏΠΎΠ½Π΅Π΄Π΅Π»ΡΠ½ΠΈΠΊ 17:00;
- ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΌ Π·Π°Π½ΡΡΠΈΠΈ ΡΡΡΠ΄Π΅Π½Ρ Π·Π°ΡΠΈΡΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΡ, ΠΈ ΠΏΡΠΈΡΡΡΠΏΠ°Π΅Ρ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ. ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π²ΠΎΠΏΡΠΎΡΠΎΠ² β ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΡΠ°Π·Ρ ΠΆΠ΅ Π·Π°Π΄Π°ΡΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ²Π΅ΡΡ ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ.
Π ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π±ΠΎΡ
ΠΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°ΡΠΈΠΉ. ΠΠΎΠ½ΡΡΠ»ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡΡΡ Π² ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠΎΠ² Telegram ΠΈ Skype (ΠΈΠ»ΠΈ Π² ΠΎΡΡΠ»Π°ΠΉΠ½-ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΏΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Ρ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Π΅ΠΌ).
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ Π²ΠΎΠΏΡΠΎΡΡ Π² Telegram-Π³ΡΡΠΏΠΏΡ ΠΊΡΡΡΠ°. ΠΠ°Π΄Π°Π²Π°ΡΡ Π²ΠΎΠΏΡΠΎΡΡ Π² Π²ΠΈΠ΄Π΅ Π»ΠΈΡΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² Telegram ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ (@thodnev) Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΠ΅Ρ ΡΠ°ΡΡΠΏΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΡΠ΅Π΄ΠΈ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ².
ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π° ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠ°Π²ΠΎ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Telegram, Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π° ΠΏΡΠΎΡΡΠ±Π° ΠΎ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ Π² ΠΎΠ±ΡΡΡ Π³ΡΡΠΏΠΏΡ Ρ ΡΠ΅Π»ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡ Π²Π°ΡΠ° Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Telegram. ΠΠΎΠΏΡΠΎΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π° Π² Π²ΠΈΠ΄Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠ½ΠΎΡΠΈΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Π±ΡΠ΄ΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΡΠ΄Π°Π»ΡΡΡΡΡ Π±Π΅Π· ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ ΠΏΡΠΈΡΠΈΠ½.
ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π° ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠ°Π²ΠΎ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ Π² Telegram Π² Π½Π΅ΡΠ°Π±ΠΎΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ. ΠΡΠ΅ΠΌΡ, ΡΠ΄Π΅Π»ΡΠ΅ΠΌΠΎΠ΅ ΠΎΡΠ²Π΅ΡΠ°ΠΌ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ Π² Telegram ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 1.5 ΡΠ°ΡΠ° Π² Π½Π΅Π΄Π΅Π»Ρ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ.
ΠΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Π»ΠΈΡΠ½ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² Telegram, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Skype-ΡΠ΅ΡΡΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ²ΡΠ·ΠΈ β ΡΠΌΠ΅ΡΡΠ½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠΏΡΠΎΡΠΎΠ², ΡΡΠ΅Π±ΡΡΡΠΈΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠΊΡΠ°Π½Π° ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ², Π΄Π»Ρ ΠΎΡΠ²Π΅ΡΠ° Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ² Teleram Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ.
normal text |
normal text |
**bold text** |
bold text |
__italic text__ |
italic text |
~~strikethrough text~~ |
|
some `inline code` part |
some inline code part |
```multi
line
code
```
|
multi
line
code
|
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΡΠ΅Π·ΡΠΌΠ΅ ΠΏΡΠ°Π²ΠΈΠ» ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π²ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ Coding Style ΡΠ΄ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ΄Π΅ΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠ²Π°ΡΡΡΡ. Π ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠΉ, ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°. Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΡΠ°Π²ΠΈΠ» Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° ΡΡΡΠΎΠΊΠΈ ΡΠ°Π²Π½Π°:
- 80 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ° ΠΈ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π΄Π΅ΡΠ΅Π²Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΡΠ΄ΡΠ°
- 99 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ΄ΡΡ
ΠΡΡΡΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΡΡΡΠΌΠΈ ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΊΡΠΎΠΌΠ΅
\n
. ΠΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ Π½Π°\n
. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉΠΡΡΡΡΠΏΡ:
- ΠΠ»Ρ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ΄ΡΡ, Π² ΠΊΠΎΠ΄Π΅ Π΄Π»Ρ ΠΎΡΡΡΡΠΏΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ» TAB. 1 ΠΎΡΡΡΡΠΏ = 1 TAB. 1 TAB ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ 8 ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡΡΠ°Π²ΠΈΡΡ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅
- ΠΠ»Ρ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ΄ΡΡ, Π΄Π»Ρ ΠΎΡΡΡΡΠΏΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΡΠΎΠ±Π΅Π»Π°. 1 ΠΎΡΡΡΡΠΏ = 1 TAB = 4 ΠΏΡΠΎΠ±Π΅Π»Π°
Π€ΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ { }:
Π ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΡΠΊΡΡΠ²Π°ΡΡΠ°Ρ ΡΠΊΠΎΠ±ΠΊΠ° ΡΡΠ°Π²ΠΈΡΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ
inline unsigned int invert(unsigned int val) { return ~val; }
Π ΡΠ»ΡΡΠ°Π΅ Ρ
if
-else
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠΈΠ»Ρ:if (a == b) { do_first(); } else if (c == a) { do_next(); } else { do_nothing(); }
Π ΡΠ»ΡΡΠ°Π΅ Ρ
switch
,case
Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΡΡΠΎΠ²Π½Π΅ ΠΈΠ΄Π΅Π½ΡΠ°ΡΠΈΠΈ, ΡΡΠΎ ΠΈswitch
. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΊΠ²ΠΎΠ·Π½ΡΠ΅(Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅break
, ΠΊΡΠΎΠΌΠ΅default
)case
, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ fall-through. ΠΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΊΠ²ΠΎΠ·Π½ΡΡcase
. ΠΡΠΈΠΌΠ΅Ρ ΡΡΠΈΠ»Ρ:switch (state) { case STATE_INIT: do_first(); break; case STATE_RUN: do_run(); /* fall through */ case STATE_NEXT: do_next() break; default: return EUNKNOWN; }
ΠΠΎ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΎΡΠΊΡΡΠ²Π°ΡΡΠ°Ρ ΡΠΊΠΎΠ±ΠΊΠ° ΡΡΠ°Π²ΠΈΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ±Π΅Π» Π² ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠΎΠΊΠ΅, Π° Π·Π°ΠΊΡΡΠ²Π°ΡΡΠ°Ρ β Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΈΠ΄Π΅Π½ΡΠ°ΡΠΈΠΈ Π±Π»ΠΎΠΊΠ° ΠΎΡΠΊΡΡΠ²Π°ΡΡΠ΅ΠΉ. ΠΡΠΈΠΌΠ΅Ρ:
if (a == b) { for (int i = 0; i < sz; i++) { do_smthng(); } a = sz; }
ΠΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ( ):
Π Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ (statements), ΠΎΡΠ΄Π΅Π»ΡΡΡΡΡ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ. ΠΡΠΈΠΌΠ΅Ρ:
if (state) { ... } for (i = k; i >= 0; i--) { ... } while (!ret) { ... } do { ... } while (i < cnt);
Π ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΈΡ Π²ΡΠ·ΠΎΠ²Π°Ρ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ Π½Π΅ ΠΎΡΠ΄Π΅Π»ΡΡΡΡΡ:
bool is_last(struct item *it) { ... } bool tst = is_last(item_ptr); while (!is_last(ptr)) { ... }
ΠΠΎΠΌΠΏΠ°ΡΠ½Π΄Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ Ρ
if
Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΠΈΠΌΠ΅Ρ:if ((LAST_ITEM == a) && (b != a) && (NOT_FIRST == c) && (k == p) && (NOT_FIRST != k) && (g == r) && ((a == r) || (b == r)) { do_something(); }
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅, Π° Π·Π° ΡΡΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠ°ΡΠΈΠΈ ΡΠ°ΡΡΡ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΏΡΡΠ°ΡΡ Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π²Π½ΡΡΡΠΈ
if
-Π±Π»ΠΎΠΊΠ°.Π Π΄Π»ΠΈΠ½Π½ΡΡ Π²ΡΠ·ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π·Π° ΠΎΡΠΊΡΡΠ²Π°ΡΡΠ΅ΠΉ ΡΠΊΠΎΠ±ΠΊΠΎΠΉ. ΠΠ°ΠΊΡΡΠ²Π°ΡΡΠ°Ρ ΡΠΊΠΎΠ±ΠΊΠ° ΡΡΠ°Π²ΠΈΡΡΡ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ. ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΡΠ°Π²ΠΈΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΈΠ΄Π΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠ»ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΎΡ ΡΡΠΎΠ²Π½Ρ ΠΈΠ΄Π΅Π½ΡΠ°ΡΠΈΠΈ Π²ΡΠ·ΠΎΠ²Π°. ΠΡΠΈΠΌΠ΅Ρ:
// first variant - aligned with opening delimiter prn("Here we have some long call" "\nThis string literal is concatenated." "\nFinally we have params: %d, %d, %d\n", some_really_really_really_long_long_param, short_param_a, short_param_b); // second variant - add an extra level of indentation to distinguish arguments some_very_very_very_long_function_call( one_indented_arg, second_indented_arg);
ΠΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΈ ΡΠ΅ΡΠ½Π°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ (
+
,-
,*
,/
,%
,=
,<
,>
,<=
,>=
,==
,!=
,<<
,>>
,|
,&
,^
,?
,:
) ΠΎΡΠ΄Π΅Π»ΡΡΡΡΡ ΡΠ»Π΅Π²Π° ΠΈ ΡΠΏΡΠ°Π²Π° ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:a + b
Π²ΠΌΠ΅ΡΡΠΎa+b
. Π£Π½Π°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ ΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π½Π΅ ΠΎΡΠ΄Π΅Π»ΡΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:++a
,b->c
,k = -a
McCabe complexity Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ 6 Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ 9 Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ . Π‘Π»ΠΎΠΆΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, McCabe complexity ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ 6 Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, Π΄ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ. ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΡΡΠ΅ΡΠ°:
int somefunc(int a, int b, int c) { // McCabe = 1 at this point // statements denoted as ... here affect the control flow // McCabe is all about graph and possible paths, used to reach // from function call to return // we have two execution variants (if, else), each adds +1 to complexity if (a) { ... } else { ... } // at this point it would have been equal to 1 + 2 = 3 // but we have more to offer: // add +1 if (b) { // add +2 if (a == c) { ... } else { ... } } // at this point it would have been equal to 1 + 1 + 2 = 4 // but we have even more to offer: // add +1 if (c) { // add +3 if (b) { ... } else if (c) { ... } else { ... } // add +1 as we have two possibilities: // having return here and notreturned() acts as if-else return 0; } notreturned(); return -1; // at this point it is equal to 1 + 1 + 3 + 1 = 6 // add one more indentation level and you're screwed }
ΠΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ kernel-doc. ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄Π΅Π»ΡΡΡΡ Π½Π° "Π²Π½Π΅ΡΠ½ΠΈΠ΅" ΠΈ "Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅". ΠΠ½Π΅ΡΠ½ΠΈΠ΅ Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ±ΡΠΎΡΠΊΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΆΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π°, ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ.
ΠΡΠΈ ΡΡΠΎΠΌ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΊΠ°ΠΊ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ, ΡΠ°ΠΊ ΠΈ ΠΈΠ·Π»ΠΈΡΠ½Π΅ΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ·Π»ΠΈΡΠ½Π΅. Π’ΡΡ ΠΈ ΡΠ°ΠΊ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ
cnt
ΠΈ Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.int cnt = 0; // counter while (cnt++ < k) { ... }
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. Π’ΡΡ Π½Π΅ ΠΌΠ΅ΡΠ°Π»ΠΎ Π±Ρ ΠΎΠΏΠΈΡΠ°ΡΡ, Π·Π°ΡΠ΅ΠΌ ΠΌΡ ΡΡΠ°ΠΊΡΡΠ΅ΠΌ
somevar
ΠΊΠ°ΠΊunsigned long long
ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΠ°ΠΉΠ΄-ΡΡΡΠ΅ΠΊΡΡ. Π ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΊΡΠ΄Π° Π²Π·ΡΠ»Π°ΡΡ ΡΡΠ° ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π»ΡΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊconst
ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠ΄Π΅, ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ.tmp = *((unsigned long long *)&somevar) & 0xD0BF00AA00000000LLU;
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π² Coding Style.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ include guards, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΠ»ΠΎΡ ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΠΈ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ. Π’ΠΎ ΠΆΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΈ ΠΊ
#pragma once
. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΡ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΠ΅Ρ ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΠΈΠΆΠ΅ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ± Π±ΠΎΡΡΠ±Ρ Ρ Π½Π΅ΠΉ:Π‘ΡΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΈ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΄Π»Ρ Π±ΠΎΡΡΠ±Ρ Ρ Π½ΠΈΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ forward declaration. ΠΡΠΈΠΌΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ:
/* Forward declaration */ struct niceobj; /* * Pointer named comfunc to function of the form * void name(struct niceobj *) * defined as type */ typedef void (*comfunc)(struct niceobj *); /* Here we finally declare it */ struct niceobj { /* Use the defined type */ comfunc comfuncptr; /* Simply pointer named otherfunc without type definition * This one can be used without forward declaration */ void (*otherfunc)(struct niceobj *, int); ... }; /* Here we have some function pointers used */ void comcom(struct niceobj *obj) { ... } void otherother(struct niceobj *obj, int somearg) { ... } static const struct niceobj nice = { .comfuncptr = &comcom, .otherfunc = &otherother }; ... /* Use it */ a = nice.comcom(&nice); b = nice.otherfunc(&nice, 0); /* Or explicitly like this */ a = (*nice.comcom)(&nice); b = (*nice.otherfunc)(&nice, 0);
typedef
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ opaque-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΠΈΡΠ½ΠΎ (Π»ΡΡΡΠ΅ β ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ) ΡΠΎΠΊΡΡΡΠ° ΠΎΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΡΡΠΎΠ΅Π½ Π²Π½ΡΡΡΠΈ. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°:typedef struct unit_s { void *ptr; size_t size; } defunit_t; size_t defunit_getsize(defunit_t *unit); defunit_t *defunit_create(void *ptr, size_t size); ...
Π‘ΡΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π΄Π°ΠΆΠ΅ Ρ ΡΡΡΡΠΊΡΡΡΡ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΠΏΠΎΠΌ, Π΅ΡΡΡ ΠΈΠΌΡ (
typedef struct unit_s {...
Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΡΡΠΎtypedef struct {...
). ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ·Π±Π΅Π³Π°ΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ΠΎ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΡΡΠΊΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ (ΠΊΡΠΎΠΌΠ΅ ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ ΡΠ°Π½ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ).ΠΡΠΈΠΌΠ΅Ρ transparent-ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠΊΡΡΠ²Π°Π΅Ρ ΡΡΡΡΠΊΡΡΡΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ:
struct vecpoint { long long x; long long y; }; struct vecpoint to_vector(struct vecpoint *p1, struct vecpoint *p2) { struct vecpoint ret = { .x = p2->x - p1->x, .y = p2->y - p1->y }; return ret; }
Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΌΠ΅ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, ΡΠ°ΡΡΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠΊΡΡΡΠ° ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° ΡΠ°ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠΉ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎ Π² ΡΠ΄ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΡΡΠΊΡΡΡΡ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»Ρ. ΠΠ°Π»Π΅Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄
init()
, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅. Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π΅ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡtypedef
, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΡΠΎΠΊΡΡΡΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ mangling-ΡΡ Π΅ΠΌΠ° (ΠΊΠΎΠ³Π΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΈΠ»ΠΈ ΡΡΡΡΠΈΠΊΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π° ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΡΡΡ:\_
,\__
,pv_
, ...ΠΠ»Ρ Π²ΡΠ΅Ρ ΠΈΠΌΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΈΠ»Ρ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ lowercase_underscored_style, ΠΊΡΠΎΠΌΠ΅:
- ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΈ ΠΌΠ°ΠΊΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, Π΄Π»Ρ Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ UPPERCASE_UNDERSCORED_STYLE
- ΠΈΠΌΠ΅Π½ ΠΏΡΠ΅Π²ΠΎΠ΄ΠΎ-ΠΠΠ ΡΠΈΠΏΠΎΠ², Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ CamelCaseStyle
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠ΅Π²ΠΎΠ΄ΠΎ-ΠΠΠ:
/* Compiled with -fms-extensions */ typedef struct SomeAnimal_s { double kgweight; char *name; } SomeAnimal_t; /* Inherits Animal */ typedef struct HumanPerson_s { SomeAnimal; char *surname; } HumanPerson_t; /* ! NOTICE ! SomeAnimal is in CamelCase and is prefixed, so that all * methods belonging to it start with SomeAnimal_ * while the right part stays in lowercase_underscored_style */ void SomeAnimal_print(SomeAnimal_t *s) { printf("name: \"%s\", weight: %.2f\n", s->name, s->kgweight); } ... HumanPerson_t j = { .kgweight = 80.0, .name = "John", .surname = "Sins" }; SomeAnimal_t bee = { .kgweight = 0.25, .name = "Queen Bee" }; SomeAnimal_t *ptrs[] = {(SomeAnimal_t *)&j, (SomeAnimal_t *)&bee}; for (int i = 0; i < sizeof(ptrs)/sizeof(*ptrs); i++) { SomeAnimal_print(ptrs[i]); } /* Outputs * name: "John", weight: 55.00 * name: "Queen Bee", weight: 0.25 */
Π ΠΊΠΎΠ΄Π΅, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΊ Π½Π΅ΠΌΡ, Π½Π°Π·Π²Π°Π½ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ², ΠΊΡΠΎΠΌΠ΅ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π½ΡΠ»ΠΈΡΠ° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ:
ΡΡΡΠΎΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
struct lang lang_UA = { .exit_label = "ΠΠΈΠΉΡΠΈ"; .create_label = "Π‘ΡΠ²ΠΎΡΠΈΡΠΈ"; ... };
ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π°. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΡΠ°Π½ΡΠ»ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ·ΡΠΊΠ° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π ΠΊΠΎΠ΄Π΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄Π°ΡΡΠΈΠΊΠ° εΌΊε , ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½ ΠΊΠ°ΠΊ qiangquang_sensor
char β byte. Π ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π‘:
sizeof(short)
β€sizeof(int)
β€sizeof(long)
β€sizeof(long long)
char
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π²Π΅Π½ ΠΈΠ»ΠΈsigned char
ΠΈΠ»ΠΈunsigned char
, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΡΠΈΡΠΈΠ½Ρ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 8 Π±ΠΈΡ. ΠΡΠΈ ΡΡΠΎΠΌ Π΅Π³ΠΎ ΡΠΈΡΠΈΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅ΡΡΠΈΡΡ Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ· execution character setshort
ΠΈint
Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΈΡΠΈΠ½Ρ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 16 Π±ΠΈΡlong
Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΡΠΈΡΠΈΠ½Ρ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 32 Π±ΠΈΡΠ°long long
Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΡΠΈΡΠΈΠ½Ρ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 64 Π±ΠΈΡΠ°
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π²ΡΠ΅ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΡΠΈΡΠΈΠ½Ρ. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½Ρ Π±Π°ΠΉΡΡ, ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΠΏΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΈΡΠΈΠ½Ρ, ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ uint8_t, u8 ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ.
float
β ΡΠΈΠΏ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ 32-Π±ΠΈΡΠ½ΡΠΉ IEEE 754 single-precision ΡΠΎΡΠΌΠ°Ρ.ΠΠΈΡΠ΅ΡΠ°Π» Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
float
ΡΡΠΎF
ΠΈΠ»ΠΈf
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:3.14F
. Π’ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ3.14
ΡΡΠΎdouble
double
β ΡΠΈΠΏ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΡΠΎ 64-Π±ΠΈΡΠ½ΡΠΉ IEEE 754 double-precision ΡΠΎΡΠΌΠ°Ρ.long double
β ΡΠΈΠΏ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡΠΠΈΡΠ΅ΡΠ°Π» Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
long double
ΡΡΠΎL
ΠΈΠ»ΠΈl
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:3.14L
.
ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Π² Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠΈ ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ
somefunc(void)
, Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎsomefunc()
.somefunc()
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΎΠ± Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π°Ρ Π²ΡΠ΅ ΡΠ°ΠΊ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡsomefunc();
- Π‘ΡΡΠ΄Π΅Π½Ρ ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΊΠΎΠ΄ ΠΈ/ΠΈΠ»ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± Π°Π²ΡΠΎΡΡΡΠ²Π΅
- Π‘ΡΡΠ΄Π΅Π½Ρ ΠΎΠ±ΡΠ·Π°Π½ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΡΡΡΡΡ Π΅Π³ΠΎ Π½Π°ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
ΠΠΈΡΠ΅Π½Π·ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎ Π²ΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΡΡΡΠ΄Π΅Π½ΡΠ° Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ (Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅
LICENSE
Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π² ΠΊΠΎΡΠ΅Π½Ρ), Π»ΠΈΠ±ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΠ°Π±ΠΎΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ (Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅LICENSE
Π±ΡΠ΄Π΅Ρ Π»Π΅ΠΆΠ°ΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ). ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΄ΡΠΎΠΌ Linux ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π½Π΅ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΠΎΡΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ°. - ΠΠ°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΡΡΡ. Π IT Π²ΡΠ΅ ΠΊΡΡΡΠΈΡΡΡ Π²ΠΎΠΊΡΡΠ³ Code Reuse. ΠΠ΅Π·Π°ΡΠ΅ΠΌ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΠ΄Π°ΡΠ½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ, Ρ ΠΎΡΠΎΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ ΠΈ Π±ΡΠ» ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²
- ΠΠ°ΠΆΠ΄ΡΠΉ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π°: ΠΈΡΡΠΎΡΠ½ΠΈΠΊ, Π°Π²ΡΠΎΡΠ°, Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ΄Π΅ΠΉ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ
- ΠΠ°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π² ΡΠ»ΡΡΠ°ΡΡ
Π΅ΡΠ»ΠΈ:
- ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΉ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠ΅ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ (ΠΊΠΎΠ΄ ΠΈΠ·ΡΡΠ°Π΅ΡΡΡ, Π·Π°ΠΈΠΌΡΡΠ²ΡΠ΅ΡΡΡ ΠΈΠ΄Π΅Ρ, Ρ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΈΡΡΠΎΡΠ½ΠΈΠΊ, ΠΊΠΎΠ΄ ΠΏΠΈΡΠ΅ΡΡΡ Π·Π°Π½ΠΎΠ²ΠΎ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ);
- ΠΠ°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΏΠ°ΡΠ΅Π½ΡΠΎΠ²Π°Π½Π½ΡΠΌ;
- ΠΠ°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ (ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ°ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ);
- ΠΠ°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π½Π΅ Π΄Π°Π΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ "Π½Π°ΠΈΠ²Π½ΠΎΠΉ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ";
- ΠΠ° Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ» Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π° ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠ°Π²ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΡΡΡΠ°ΡΠ½ΡΡ
ΡΠ°Π½ΠΊΡΠΈΠΉ:
- Π£ΠΊΠ°Π·Π°ΡΡ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Pull Request;
- ΠΡΠ΅Π½ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π² 0 Π±Π°Π»Π»ΠΎΠ²;
- ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ -1 Π±Π°Π»Π» ΠΊ ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠΌΡ ΡΠ΅ΠΉΡΠΈΠ½Π³Ρ ΡΡΡΠ΄Π΅Π½ΡΠ° (Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π·Π° Π·Π° ΠΊΠ°ΠΆΠ΄ΡΡ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ, Π½Π°ΡΡΡΠ°ΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ).
Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ:
[+] Repository |----- .etc |--[+] dk71_ivanov | |----- LICENSE (ΡΠΌ. Π²ΡΡΠ΅) | |----- README.rst | |--[+] lab1_threaded_applications | | |----- LICENSE (ΡΠΌ. Π²ΡΡΠ΅) | | |----- README.rst | | |----- .gitignore | | |----- Makefile | | |--[+] src | | | |----- somefile.c | | | |----- ... | | | | | |--[+] inc | | | |----- somefile.h | | | |----- ... | | | | | |--[+] doc | | | |----- ... | | | | | |-- .... | | | |--[+] lab2_simple_kernel_module | | |-- .... | | | |--[+] rgr_you_chose_the_name | | |-- .... | |--[+] dk72_sidorov | |-- .... | |-- ....
ΠΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΈΠΌΠ΅ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ Π² Π½ΠΈΠΆΠ΅ΠΌ_ΠΊΠ΅ΠΉΡΠ΅_Ρ_ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡΠΌΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² Π² Π½Π°Π·Π²Π°Π½ΠΈΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ.
ΠΠ°Π·Π²Π°Π½ΠΈΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ ΡΡΡΠ΄Π΅Π½ΡΠ° ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ
groupname_surname
, Π³Π΄Π΅ surname β ΡΠ°ΠΌΠΈΠ»ΠΈΡ ΡΡΡΠ΄Π΅Π½ΡΠ°, ΠΊΠ°ΠΊ ΠΎΠ½Π° Π·Π°ΠΏΠΈΡΠ°Π½Π° Π² Π·Π°Π³ΡΠ°Π½ΠΈΡΠ½ΠΎΠΌ ΠΏΠ°ΡΡΠΏΠΎΡΡΠ΅ ΠΈΠ»ΠΈ Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΏΡΠ°Π²Π°Ρ , Π° Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ β Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΡΡΠ°Π½ΡΠ»ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ.ΠΠ°Π·Π²Π°Π½ΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ ΡΠ°Π±ΠΎΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ ΠΈ Π²ΡΠ΄Π°ΡΡΡΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Π΅ΠΌ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ. ΠΠ°Π·Π²Π°Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π±ΠΎΡ ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ
prefix_name
, Π³Π΄Π΅ name β Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌΠΎΠ΅ ΡΡΡΠ΄Π΅Π½ΡΠΎΠΌ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ:
README.rst
β ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΊ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ (Π»ΠΈΠ±ΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΠΊΠ° Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ Π²ΠΈΠ΄ΠΎΠ² ΡΠ°Π±ΠΎΡ);LICENSE
β Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ (ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎΠΉ) Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΡΡΡΠ΄Π΅Π½ΡΠ° ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΉ;Makefile
. ΠΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡΠ±ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠ±ΠΎΡΠΊΠΈ (ΠΊΡΠΎΠΌΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ°, ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ Kbuild). Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ±ΠΎΡΠΊΠΈ (ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊhelp
all
clean
tidy
ΠΈ Π΄ΡΡΠ³ΠΈΠ΅) Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΈΠ·-ΠΏΠΎΠ΄ make. ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ make ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ, Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅ΠΏΡΡ make ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. Π Makefile ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΠΉall
,clean
,install
(Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ) ΠΈ ΡΠ΅Π»ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅Π»ΠΈ
clean
, Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ (Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ, Π΅ΡΠ»ΠΈ ΡΠ΅Π»Ρtidy
ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ);.gitignore
Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠΎΠΏΡΡΠΊΠΈ commit Π²ΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, git Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Ρ Π²Π°ΡΡΠ²Π°ΡΡ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ Π±ΡΠ»ΠΎ Π΄ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ° ΠΎΡΠ½ΠΎΠ²Ρ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ gitignore ΠΎΡ GitHubΠΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ
src
(ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ),inc
(Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ) ΠΈdoc
(Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ) ΠΈΠΌΠ΅ΡΡ ΡΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡ ΡΠ°Π±ΠΎΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ (ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ Π² ΠΊΠΎΡΠ΅Π½Ρ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ)
Π Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ Π½Π°Π±ΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ, ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ. ΠΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ.
Pull Request, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ (ΠΊΡΠΎΠΌΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, firmware ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ) Π±ΡΠ΄ΡΡ ΠΎΡΠΊΠ»ΠΎΠ½ΡΡΡΡΡ Π±Π΅Π· ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ ΠΏΡΠΈΡΠΈΠ½. Π’ΠΎ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ Π² .pdf-ΡΠ°ΠΉΠ» ΠΈΠ· .rst, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ°ΠΌ .pdf
Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Pull Request Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠ΅ΡΠ²ΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π°ΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, Π° Π²ΡΠΎΡΠΎΠΉ β Π΄Π»Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠΉ (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡΡΡ).
ΠΡΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²Π΅ΡΠΊΡ, ΠΎΠ½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄Ρ Π²Π°ΡΠ΅Π½Ρ Π² Pull Request.
ΠΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² master-Π²Π΅ΡΠΊΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΈΡΡΠΎΠΉ ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ. ΠΡΠ»ΠΈ Π΄Π΅Π»Π°Π΅ΡΠ΅ fork, Π·Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π°Π΅ΡΠ΅ Pull Request, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π² ΠΈΡΠΎΠ³Π΅ Π² master-Π²Π΅ΡΠΊΡ ΠΏΠΎΠΏΠ°Π΄ΡΡ Π²ΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠ»Ρ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ squash merge Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ (ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π°Π²Π°ΡΡ Pull Request) ΠΈΠ»ΠΈ rebase.
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Pull Request
ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Pull Request
ΠΠ΅ΡΠ΅Π΄ ΠΏΠΎΠ΄Π°ΡΠ΅ΠΉ Pull Request Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²Π½ΠΎΡΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠ°ΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΠΈ Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ
Π ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ Pull Request ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠΌΠ΅ΡΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π²
README.rst
(Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠΎ README ΠΏΠΈΡΠ°ΡΡ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ PR). ΠΡΠ»ΠΈ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΆΠ΅ ΠΏΠΎΠ΄Π°Π²Π°Π»ΡΡ PR ΠΈ Π±ΡΠ» ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ, ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ PR Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅Π³ RE ΠΈ ΠΏΡΠΈΠ»ΠΈΠ½ΠΊΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ PR ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ (ΡΠ°ΠΊ ΡΡΠΎΠ±Ρ GitHub ΠΏΠΎΠ΄Ρ Π²Π°ΡΠΈΠ»).Π Reviewers ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π²Π°ΡΠΈΡ ΠΊΠΎΠ»Π»Π΅Π³, Ρ ΠΊΠ΅ΠΌ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈΡΡ.
ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅ Peer Review, ΠΏΠΈΡΠΈΡΠ΅ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° GitHub) Π²ΡΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΈΡ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ. ΠΠ²ΡΠΎΡ PR, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ³Π»Π°ΡΠΈΡΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠΈΡΡΡΡ, Π²ΡΡΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΡ ΡΠΎΡΠΊΡ Π·ΡΠ΅Π½ΠΈΡ ΠΈ Π² ΠΈΡΠΎΠ³Π΅ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΡ.
ΠΠΎΡΠ»Π΅ Peer Review, Π°Π²ΡΠΎΡ PR Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ Π² Reviewers. ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΡΠ΅Π²ΡΡΠ΅ΡΠΎΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π° ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ. Π ΠΈΡΠΎΠ³Π΅ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΈ ΡΡΡΠ΄Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡΡΡ).
ΠΠΎΡΠ»Π΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ Π² ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΡΠ°Π· ΡΠΌΠΎΡΡΠΈΡ Pull Request ΠΈ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ. ΠΡΠ»ΠΈ PR Π±ΡΠ» ΠΎΡΠΎΡΠΌΠ»Π΅Π½ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ (ΠΈΠΌΠ΅Π½Π½ΠΎ PR, Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΊΠΎΠ΄Π°), ΠΏΠΎΡΠ»Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°, ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ PR merge. Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΡΡΠ΄Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ Π·Π°ΡΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΡ. Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ {R Π±ΡΠ» ΠΎΡΠΎΡΠΌΠ»Π΅Π½ Π½Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΎΠ½ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Π΅ΠΌ, Π° ΡΡΡΠ΄Π΅Π½ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΎ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ (ΠΏΠΎ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅).
ΠΡΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΠΈ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅Π²ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ, ΡΠ΅Π²ΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π±ΠΎΠ½ΡΡΠ½ΡΠ΅ Π±Π°Π»Π»Ρ Π·Π° ΠΈΡ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅, Π° Π°Π²ΡΠΎΡ PR β Π·Π° ΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
ΠΠ°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΡΠ΅Π²ΡΡ, Π²Π΅Π΄Ρ Π² ΠΈΡΠΎΠ³Π΅ Π²ΡΠ΅ ΡΠΌΠΎΡΡΠΈΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ.