Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ

ДокумСнтация ΠΊΠ°ΠΊ ΠΊΠΎΠ΄: ΡˆΠ΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, понятныС ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ

ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ

ДокумСнтация ΠΊΠ°ΠΊ ΠΊΠΎΠ΄: ΡˆΠ΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, понятныС ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ

РассказываСт Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ Π’ΠΎΠ»ΠΎΠΊΠΎΠ½Π½ΠΈΠΊΠΎΠ², бизнСс-Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ Π΄Π΅ΠΏΠ°Ρ€Ρ‚Π°ΠΌΠ΅Π½Ρ‚Π° ИВ-аутсорсинга ALP Group

Π‘ΠΎΠ»ΡŒΡˆΠ΅ пяти Π»Π΅Ρ‚ я занимаюсь бизнСс-процСссами. Π’ особСнности процСссами тСхничСской ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ коммСрчСским ΠΈ государствСнным компаниям. НапримСр, я слСТу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ качСства IT-обслуТивания соотвСтствовал ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΌ стандартам. Π― ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ β€” ΠΏΠΈΡˆΡƒ Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽ процСссы, Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽ инструкции.

Всё это врСмя я нСосознанно Β«ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°ΡŽΒ» ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ программирования Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΌΠ½Π΅ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ бСсполСзныС «спагСтти-простыни» ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ внятныС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ с ясной структурой, Π΄Π°ΠΆΠ΅ Ссли докумСнтация ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ±ΡŠΡ‘ΠΌΠ½Π°Ρ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° часто ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² соотвСтствии с измСнСниями Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈ всС Π΅Ρ‘ части Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ связаны Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ, Ρ‡Ρ‘Ρ‚ΠΊΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠΎΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΈ Π²Π°ΠΌ.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с тСкстом

DRY β€” Don’t repeat yourself. НС повторяйся

Если Π²Ρ‹ вставили ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π±Π»ΠΎΠΊ Π² 10 Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ мСняСтС Π² Π½Ρ‘ΠΌ, Ρ‚ΠΎ Ρƒ вас образуСтся 10 ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… мСст, ΠΊΡƒΠ΄Π° Π½ΡƒΠΆΠ½ΠΎ внСсти ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ измСнСния. Π’Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΎΠ± этом Ρ‚ΠΎΠΆΠ΅ растёт, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ бСссмСртным Β«Ctrl+CΒ» β€” Β«Ctrl+VΒ». ОсобСнно Π² послСднСй ΠΏΠ°Ρ€Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, классы, Π° Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ элСмСнты Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ Π΄Π°Π²Π°Ρ‚ΡŒ ссылки Π½Π° Π½ΠΈΡ….

KISS β€” Keep it simple, stupid. НС услоТняй

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π²ΠΎΠΊΡ€ΡƒΠ³: люди ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΠΊ простотС. Π˜Π½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятныС интСрфСйсы ΠΈ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ подсказки Π² прилоТСниях. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π² IT-обслуТивании. Π—Π°ΡΠΈΠ»ΡŒΠ΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… статСй ΠΈ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… Π²ΠΈΠ΄Π΅ΠΎ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Π’ΠΎΠΉ ΠΆΠ΅ простоты ΠΎΠ½ΠΈ ΠΆΠ΄ΡƒΡ‚ ΠΈ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

4 дСкабря, Онлайн, Π‘Π΅cΠΏΠ»Π°Ρ‚Π½ΠΎ

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ я ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΊΠ°ΠΊ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€. Если описаниС процСсса слишком слоТноС β€” Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ процСсс. Если инструкция ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ слишком замысловатая β€” Π½Π°Π΄ΠΎ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ дСшСвлС, Ρ‡Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, Π·Π°ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ сотрудника Π΅Ρ‘ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Π½Π΅ΠΉ. А вСдь ΠΏΠΎΡ‚ΠΎΠΌ Π΅Ρ‰Ρ‘ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.

YAGNI β€” You ain’t gonna need it. Π’Π΅Π±Π΅ это Π½Π΅ понадобится

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° KISS. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ я ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽ Π΅Π³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с Π·Π°Π΄Π΅Π»ΠΎΠΌ Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” само ΠΏΠΎ сСбС услоТнСниС. НС Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΎΠ½ΠΎ понадобится. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅Ρ‚ смысла ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²ΡΠ΅ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰Π΅Π΅ описаниС бизнСс-процСссов направлСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ развиваСтся. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ внСсёт ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹.

Но здСсь Π²Π°ΠΆΠ½ΠΎ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ вопросу. Π•ΡΡ‚ΡŒ Π²Π΅Ρ‰ΠΈ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΎΡ€ΠΎΠ³ΠΎ обходится. Π˜Ρ… ΠΊΠ°ΠΊ Ρ€Π°Π· Π½ΡƒΠΆΠ½ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ с Π·Π°Π΄Π΅Π»ΠΎΠΌ Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ эту Ρ€Π°Π±ΠΎΡ‚Ρƒ относят ΠΊ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ прилоТСния, Π° Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ просто сразу говорят: Β«Π­Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ понадобится». И Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ с Ρ‚Ρ€ΡƒΠ΄ΠΎΠΌ Π½Π°Π²Ρ‘Ρ€ΡΡ‚Ρ‹Π²Π°ΡŽΡ‚ ΡƒΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ΅.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со структурой

Π§Π΅ΠΌ ΠΎΠ±ΡŠΡ‘ΠΌΠ½Π΅Π΅ становится докумСнтация, Ρ‚Π΅ΠΌ слоТнСС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ИзмСнСниС ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π²Π»Π΅Ρ‡Ρ‘Ρ‚ Π·Π° собой каскадноС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…, логичСская Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ломаСтся, структура Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, для программирования это стандартная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈ Π·Π° ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΠ΅ дСсятилСтия Π²Ρ‹Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈΡΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ написания Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π§Π°ΡΡ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ.

SRP β€” Single Responsibility Principle. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ СдинствСнной отвСтствСнности

Π―Ρ€ΠΊΠΈΠΉ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° β€” Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… дСйствий. НапримСр, ΠΌΠ΅Ρ‚ΠΎΠ΄ класса ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ увСдомлСния ΠΎ Π½ΠΎΠ²ΠΎΠΌ Π·Π°ΠΊΠ°Π·Π΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅, Π½ΠΎ ΠΏΡ€ΠΈ этом Π΅Ρ‰Ρ‘ ΠΈ обновляСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ баланс ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Π’ΠΎ ΠΆΠ΅ самоС справСдливо ΠΈ для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. НапримСр, Π² Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚ рСгистрации обращСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΏΠΈΡ…ΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Β«Π·Π°ΠΎΠ΄Π½ΠΎΒ»: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Π²Π΅ΠΆΠ»ΠΈΠ²ΠΎΠ³ΠΎ общСния с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС self-service ΠΏΠΎΡ€Ρ‚Π°Π»Π° ΠΈ Ρ‚. Π΄.

НСльзя Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ такая информация Π±ΡƒΠ΄Π΅Ρ‚ усвоСна ΠΈΠ»ΠΈ сотрудники запомнят, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Ρ‘ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ. Π—Π°Ρ‚ΠΎ это Π·Π°ΠΏΡƒΡ‚Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π»ΠΈΡˆΠ°Π΅Ρ‚ структуру чёткости ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Если Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ вСТливости ΠΏΡ€ΠΈ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠΈ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ, Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π² Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚ ссылку Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ (вспомнитС ΠΎ DRY).

БоблюдСниС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΡ€ΠΎΡ‡Π΅. Π˜Ρ… Π½Π°Π·Π²Π°Π½ΠΈΠ΅ соотвСтствуСт Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ нСприятных ΡΡŽΡ€ΠΏΡ€ΠΈΠ·ΠΎΠ². Π˜Ρ… ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π·Π° Ρ€Π°Π·. И Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ, с Ρ‡Π΅Π³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ начинался.

SLAP β€” Single Level of Abstraction Principle. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ уровня абстракции

ЯвляСтся Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° СдинствСнной отвСтствСнности (SRP).

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² KISS ΠΈ SRP ΠΏΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ нСбольшиС, простыС ΠΈ понятныС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹. Но эти Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π² Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΈ ΠΏΠΎΠ½ΡΡ‚Π½ΡƒΡŽ структуру. Π—Π΄Π΅ΡΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ соблюдСниС ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ абстракций.

НапримСр, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ смысла ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΎΠ±ΡŠΡ‘ΠΌΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π²Ρ€ΠΎΠ΄Π΅ описания систСмы ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚Π° качСства. Намного Π»ΠΎΠ³ΠΈΡ‡Π½Π΅Π΅ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½ΠΈ абстракций ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ уровня Ρ€Π°Π·Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ β€” Π²Π΅Ρ€Ρ…Π½Π΅ΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ описаниС систСмы, описаниС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСсса ΠΈ Ρ‚. Π΄.

ΠŸΡ€ΠΈ этом Π²Π°ΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ уровня абстракций ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ ΡƒΡ€ΠΎΠ²Π½ΡŽ. Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π²Π΅Ρ€Ρ…Π½Π΅ΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ описаниС, Π½Π΅ Π½Π°Π΄ΠΎ Π²Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ процСсса. НС Ρ‚ΠΎΡ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ абстракции! ΠžΡΡ‚Π°Π²ΡŒΡ‚Π΅ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для описания процСсса. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ дополняСт SRP, заставляя Π°Π²Ρ‚ΠΎΡ€Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π½ΠΎ ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΎΠ½ находится.

LoD β€” Law of Demeter (Don’t talk to strangers). Π—Π°ΠΊΠΎΠ½ Π”Π΅ΠΌΠ΅Ρ‚Ρ€Ρ‹ (НС Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°ΠΉ с Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΡ†Π°ΠΌΠΈ)

Если ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π°ΠΊΠΎΠ½ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚:

НапримСр, процСсс управлСния IT-ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π°ΠΌΠΈ взаимодСйствуСт с процСссом управлСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π° с процСссом управлСния измСнСниями β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. Π’ΠΎΠ³Π΄Π° Π² описании управлСния ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° описаниС управлСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. А Π²ΠΎΡ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° описаниС управлСния измСнСниями Π½Π΅ Π½Π°Π΄ΠΎ.

Π˜Ρ‚ΠΎΠ³ΠΎ

Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ сильно ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΌΠ½Π΅ ΠΏΡ€ΠΈ написании Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ процСссам, Π² создании Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ инструкций. К соТалСнию, это лишь нСбольшая Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ качСством ΠΊΠΎΠ΄Π°, поэтому Π·Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Π²ΡˆΠΈΠΌΡΡ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π΅ΠΌΡƒ. Из Π½Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ. ΠŸΡ€ΠΈ этом Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ эти ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π·Π°ΠΊΠΎΠ½Π°ΠΌΠΈ. Π’ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ спорят ΠΎΠ± ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ использовании ΠΈ часто Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ ΠΈΠΌΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, поТалуйста, Π½Π΅ Π²ΠΏΠ°Π΄Π°ΠΉΡ‚Π΅ Π² крайности. И Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎ Π·Π΄Ρ€Π°Π²ΠΎΠΌ смыслС.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊ ΠΊΠΎΠ΄Ρƒ?

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ 3 коммСнтария

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ

Π•ΡΡ‚ΡŒ Π΄Π²Π΅ крайности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ:
1. красивая ΠΈ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π°Ρ докумСнтация Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠΎΠ»ΠΎΡΡΠ°Π»ΡŒΠ½Ρ‹Ρ… рСсурсов Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ
2. слоТно воспринимаСмый ΠΊΠΎΠ΄, Π±Π΅Π· ΠΌΠ°Π»Π΅ΠΉΡˆΠΈΡ… подсказок с Ρ‡Π΅Π³ΠΎ всС начинаСтся ΠΈ Ρ‡Π΅ΠΌ заканчиваСтся

ΠšΡΡ‚Π°Ρ‚ΠΈ, проСктная Ρ€Π°Π±ΠΎΡ‚Π°, это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ, это Π΅Ρ‰Π΅ ΠΈ свод ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволят Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Π½Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π·Ρ‚ΠΈΡΡŒ ΠΊΡ‚ΠΎ Π² лСс ΠΊΡ‚ΠΎ ΠΏΠΎ Π΄Ρ€ΠΎΠ²Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ сохранят стилистику написания ΠΊΠΎΠ΄Π° для Сдинообразия ΠΈ Π»Π΅Π³ΠΊΠΎΠΉ поддСрТиваСмости ΠΊΠΎΠ΄Π°.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ

Π”ΡƒΠΌΠ°ΡŽ, Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Π΅ ΠΏΡƒΠΊΠ½Ρ‚Ρ‹ Π½Π΅ вяТутся с JS, Ρ…ΠΎΡ‚ΡŒ ΠΈ прСкрасно Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… срСдах (php, java etc).

На JS Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‡Π΅Π½ΡŒ слоТно ΠΏΠΈΡΠ°Ρ‚ΡŒ «ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ» ΠΈ «Ρ…ΠΎΡ€ΠΎΡˆΠΎ»))

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ

БогласСн, JSDOC, ΡŽΠ½ΠΈΡ‚ тСсты ΠΈ автоматичСская докумСнтация прСкрасно Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² JS, Π½ΠΎ это, ΠΈΠΌΡ…ΠΎ, Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Ρ‚ΠΎΡ‚ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚Π°ΠΊΠΈΡ… прилоТСниях.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ

На счСт 2007-Π³ΠΎ, Π° Ρ€Π°Π·Π²Π΅ Π² JS ΡƒΠΆΠ΅ появилась статичСская типизация, интСрфСйсы, ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ свойства?))

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ

Π”Π° ΠΈ Π² сто Ρ€Π°Π· ΠΏΡ€ΠΎΡ‰Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ hhvm совмСстимый ΠΊΠΎΠ΄ Π½Π° PHP+Ρ„Ρ€Π΅ΠΉΠΌΠ΅ Π΅ΠΆΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ. Π’Ρ‹ΠΉΠ΄Π΅Ρ‚ ΠΈ быстрСС, ΠΈ ΠΏΡ€ΠΎΡ‰Π΅, ΠΈ Π»ΡƒΡ‡ΡˆΠ΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡΡ‚ΡŒ стратСгий докумСнтирования ΠΊΠΎΠ΄Π°

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрим ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ фактичСскому Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°. БущСствуСт нСсколько ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ писатСли ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹, ΠΌΡ‹ познакомимся с ΠΏΡΡ‚ΡŒΡŽ ΠΈΠ· Π½ΠΈΡ… с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ коммСнтариями.

ПослС прочтСния вступлСния ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ β€œΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ кода” ΠΎΠ΄Π½Π° ΠΈΠ· Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒΠ½ΠΈΡ† подСлилась своим ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ. Π’ΠΎΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° написала:

ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ располоТСниС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ мСсто Π±Ρ‹Ρ‚ΡŒ. МоТно Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ пояснСния Π½Π° Π΄Π²Π΅ основныС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ:

ПослС раздСлСния, пояснСния Как? Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 5-10 строк). ПояснСния ΠŸΠΎΡ‡Π΅ΠΌΡƒ? Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π²ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… Π΄ΠΎ ΠΈΠ»ΠΈ послС ΠΊΠΎΠ΄Π°. РазумССтся, Π² пояснСниях Как? ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠŸΠΎΡ‡Π΅ΠΌΡƒ? ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ…, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, поэтому Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ этих Π΄Π²ΡƒΡ… вопросов Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊΠΈΠΌ простым. Но такая общая Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ, скорСС всСго, Π²Π΅Ρ€Π½Π°.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ интСрСсСн Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π½Π°Π΄ вопросом ΠŸΠΎΡ‡Π΅ΠΌΡƒ?. ВСхничСским писатСлям, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΈΡˆΡƒΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅), Π½Π΅ всСгда получаСтся ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠŸΠΎΡ‡Π΅ΠΌΡƒ?.Иногда Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ вопросы ΠŸΠΎΡ‡Π΅ΠΌΡƒ? ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚. Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот класс вмСсто Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ? ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ, Π° Π½Π΅ Ρ‚Π°ΠΊ? Часто сущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… способов достиТСния Ρ†Π΅Π»ΠΈ, Ρ‚Π°ΠΊ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ ΠΈΠ΄Ρ‚ΠΈ ΠΏΠΎ этому ΠΏΡƒΡ‚ΠΈ, Π° Π½Π΅ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ?

Π’ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠΈ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΊΠΎΠ΄Π°, стоит Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ это вопрос: ΠŸΠΎΡ‡Π΅ΠΌΡƒ?

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ 2: сопоставлСниС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ (Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для докумСнтирования ΠΊΠΎΠ΄Π°) Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… инструкций рядом с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ затруднСния, Ρ‡Ρ‚ΠΎ Π² контСкстС докумСнтирования ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ встроСнных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΏΡ€ΠΎΠ½ΠΈΠ·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… вСсь ΠΊΠΎΠ΄. Но ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ΅Π½ большой ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ происходит Π² ΠΊΠΎΠ΄Π΅ (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π² ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ). Как ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ / ΠΏΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с ΠΊΠΎΠ΄ΠΎΠΌ?

Если ваш ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ большС ΠΊΠΎΠ΄Π°, Π΅ΡΡ‚ΡŒ риск ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ. Если Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄ΡƒΡ‚ Π·Π°Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎ ΠΈΠ»ΠΈ послС ΠΊΠΎΠ΄Π°, Π΅ΡΡ‚ΡŒ риск ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΠ°ΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ объяснСниСм ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π½Π°Ρ‚ΡŒ, ΠΊ ΠΊΠ°ΠΊΠΈΠΌ частям ΠΊΠΎΠ΄Π° относится объяснСниС.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ ДокумСнтация Twilio, с Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΎΠΉ для ΠΊΠΎΠ΄Π°

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ содСрТаниС ΠΈ шаги ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² срСднСй ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅, ΠΊΠΎΠ΄ справа, Π½Π° Ρ‚Π΅ΠΌΠ½ΠΎΠΌ Ρ„ΠΎΠ½Π΅ для создания Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ контраста.

НСкоторыС экраны Twilio фактичСски β€œΡ€Π°Π·ΠΌΡ‹Π²Π°ΡŽΡ‚β€ Π½Π΅Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, позволяя ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒ своС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° линиях, сформулированных Π² ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ области, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ Π Π°Π·ΠΌΡ‹Ρ‚ΠΈΠ΅ Π½Π΅Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°

Одной ΠΈΠ· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° являСтся пространство экрана. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ, Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π½ΡΡ‚ΡŒ вСсь экран Π±Π΅Π· ΠΏΠΎΠ»Π΅ΠΉ. (Π‘Ρ‚Ρ€Π°Π½Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² Twilio Π½Π΅Ρ‚ возмоТности ΡΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π»Π΅Π²ΡƒΡŽ панСль Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, освободив Ρ‚Π΅ΠΌ самым большС мСста для ΠΊΠΎΠ΄Π°.)

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ΄ Π²ΠΈΠ΄Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ частично. Код ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡ‚ΡΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π²ΠΏΡ€Π°Π²ΠΎ, Π½ΠΎ, нСсомнСнно, Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π°ΠΌ тяТСло дался ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΡƒ.

Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ, рСализация размытия фокуса области экрана с ΠΊΠΎΠ΄ΠΎΠΌ, Π½Π° описании ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ находится ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ тСхничСски слоТной ΠΈ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΠΉ.

Другая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ ΠΈ пояснСния ΠΊ Π½Π΅ΠΌΡƒ Ρ€Π΅Π΄ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всСго ΠΎΠ΄Π½Ρƒ строку, Π½ΠΎ описаниС этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Ρ€ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ объяснСния. К Ρ‚ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ достигаСт Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ объяснСния, ΠΊΠΎΠ΄ ΡƒΠΆΠ΅ Π½Π΅ Π²ΠΈΠ΄Π΅Π½. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ приходится ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡˆΠ½ΠΈΡ… манипуляций, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄. Π”ΠΈΠ·Π°ΠΉΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса для размСщСния всСх этих двиТущихся частСй Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ каТСтся слоТным, Π½ΠΎ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, связанная с Ρ‚Π°ΠΊΠΈΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ часто относится ΠΊ нСскольким Ρ„Π°ΠΉΠ»Π°ΠΌ. ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, отобраТаСтся Π»ΠΈ вСсь ΠΊΠΎΠ΄ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π΅ Java ΠΈΠ»ΠΈ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠΎΠ΄ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Java. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ Π² столбцС ΠΊΠΎΠ΄Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ слоТного Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π‘Π»ΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ синтаксиса Markdown.

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ 3: ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π›Π΅Π³ΠΎ

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² создании ΠΊΠΎΠ΄Π° с нуля, уровня Π·Π° ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ β€œΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ ЛСго”. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π›Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² eBay Shopping API Поиск ΠΏΠΎ ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†Ρƒ: ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†Π΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ Π›Π΅Π³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² API eBay Shopping

Π£ Π½ΠΈΡ… Π² руководствС всСго 5 шагов:

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ Π›Π΅Π³ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ тСхничСский ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ вряд Π»ΠΈ воссоздаст Π»ΠΎΠ³ΠΈΠΊΡƒ построСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ слСдовал Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ просто отправят Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ кусок ΠΊΠΎΠ΄Π° Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΈ Ρ‚ΠΎΠ³Π΄Π° придСтся ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ пояснСния ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎ ΠΊΠΎΠ΄Π΅, ΠΊΠ°ΠΊ описано Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄?, Π³Π΄Π΅ описаны основныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

НСсмотря Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ Π›Π΅Π³ΠΎ, Ссли Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ с простого ΠΈ ΠΈΠ΄Ρ‚ΠΈ шаг Π·Π° шагом ΠΎΡ‚ простого ΠΊ слоТному. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΎΡ‚ простого ΠΊ слоТному ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Ρ‹ наутилуса.

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ 4: ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Наутилус

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ Наутилус Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ Π›Π΅Π³ΠΎ, Π½ΠΎ вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ куски Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π² порядкС сборки, здСсь ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ основныС простыС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ. НачинаСтся с самого простого ΠΊΠΎΠ΄Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости, ΠΊΠ°ΠΊ растущая ΡΠΏΠΈΡ€Π°Π»ΡŒΠ½Π°Ρ структура ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ наутилуса.

Пол Густафсон, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉΡΡ тСхничСским обслуТиваниСм письма, Π² Bay Area, которая называСтся ЭкспСртная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°, прСдставляСт ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€ΠΎΠΉ Наутилуса, описанный здСсь. Пол Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ наутилус являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€ΠΎΠΉ для тСхничСской ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ наутилус прСдставляСт ΡΠΏΠΈΡ€Π°Π»ΡŒΠ½ΡƒΡŽ схСму (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ), которая Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ с ΠΌΠ°Π»ΠΎΠ³ΠΎ ΠΈ постСпСнно растСт ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости:

БлСдуя ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ Наутилус, ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с простых Π±Π°Π·ΠΎΠ²Ρ‹Ρ… шаблонов, Π° Π·Π°Ρ‚Π΅ΠΌ постСпСнно Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°Π΅ΠΌ объСм ΠΊΠΎΠ΄Π° Π²ΠΎΠΊΡ€ΡƒΠ³ Π½Π΅Π³ΠΎ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. ΠœΡ‹ Π½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с описания слоТной Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с самого Π½Π°Ρ‡Π°Π»Π°. ЗакончСнная Ρ€Π°Π±ΠΎΡ‚Π°, вСроятно, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя всС Π²ΠΈΠ΄Ρ‹ абстракций ΠΊΠΎΠ΄Π° ΠΈ пСрСстановки для чистого, Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ часто Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄, проводя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ‡Π΅Ρ€Π΅Π· всС ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°. Π£ нас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 500 строк ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΡ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Nautilus заставил Π±Ρ‹ нас ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² этого ΠΊΠΎΠ΄Π° (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, для Π½Π°Ρ‡Π°Π»Π°). Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, сущСствуСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ‚ΠΈΠΏΠ° A-ΠΏΡ€ΠΎΡ‚ΠΈΠ²-Z: ΠΌΡ‹ описываСм A (самый простой шаблон ядра), Π½ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ являСтся Z. Как ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΡ‹ добираСмся ΠΎΡ‚ A Π΄ΠΎ Z? Как ΠΌΡ‹ ΠΏΡ€ΠΈΠ΄Π΅ΠΌ ΠΎΡ‚ простых шаблонов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ 20 строк ΠΊΠΎΠ΄Π°, Π΄ΠΎ Ρ‡ΡƒΠ΄ΠΎΠ²ΠΈΡ‰Π½ΠΎ слоТного, Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 500 строк?

Для тСхничСского писатСля, смотрящСго Π½Π° ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π½Π΅Ρ‚ ясного понимания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠΏΠ°Π» Ρ‚ΡƒΠ΄Π°. ΠœΡ‹ часто Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°Ρ‡ΠΈΠ½Π°Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ Π΅Π³ΠΎ ΠΊ этой Π±ΠΎΠ»Π΅Π΅ слоТной Ρ†Π΅Π»ΠΈ. ВсС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, это этот слоТный ΠΊΠΎΠ½Π΅Ρ†. Как Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π°Ρ‡Π°Π»? Как ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π±Ρ‹Π»ΠΈ Π·Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ Π½Π°Ρ‡Π°Π»ΠΎ всСму процСссу? Если Π²Ρ‹ Π½Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈ ΠΊΠΎΠ΄ ΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ шаблон Наутилуса, стоящий Π·Π° ΠΊΠΎΠ΄ΠΎΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ Как Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс создания ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹?

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс создания Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅: Π½Π°Ρ‡Π°Ρ‚ΡŒ с Π²Π΅Ρ€Ρ…Π° ΠΈ ΠΈΠ΄Ρ‚ΠΈ ΠΊ Π½ΠΈΠ·Ρƒ? НСт, это Π±Ρ‹Π»ΠΎ Π±Ρ‹ смСшно. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π»ΡƒΡ‡ΡˆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с создания ΠΎΠ²Π°Π»Π° Π³ΠΎΠ»ΠΎΠ²Ρ‹. ΠŸΠΎΡ‚ΠΎΠΌ, нСсколько ΠΎΠ±Ρ‰ΠΈΡ… набросков для Π³Π»Π°Π· ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π½Π°Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ пСрспСктивы ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ структуру. Никто сразу Π½Π΅ приступаСт ΠΊ Ρ†Π²Π΅Ρ‚Π°ΠΌ, ΠΎΡΠ²Π΅Ρ‰Π΅Π½ΠΈΡŽ ΠΈ тСням, Π²Π΅Ρ€Π½ΠΎ? Π’ΠΎ ΠΆΠ΅ самоС с ΠΊΠΎΠ΄ΠΎΠΌ. НачинаСм с основы, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅ΠΌ ΠΏΡƒΡ‚ΡŒ ΠΊ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ количСству Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΡ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°. Автор курса Π½Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€, Π½ΠΎ Π΅ΠΌΡƒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Jekyll ΠΈ Ρ‚Π΅ΠΌΠ°ΠΌΠΈ, ΠΎΠ½ создал шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ экспорт ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΈΠ· инструмСнта для создания Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, JIRA) ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° Π²Π΅Π±-страницС.

Π€ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ шаблон выглядит Ρ‚Π°ΠΊ:

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ выглядит ΠΊΠ°ΠΊ Π±Ρ€Π΅Π΄, ΠΏΡ€Π°Π²Π΄Π°. Π—Π΄Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ нСсколько инклюдов, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… абстрагирована Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ Π΅Π΅ ΠΈΠ· ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π² ΠΎΡ‚Ρ‡Π΅Ρ‚. Π—Π΄Π΅ΡΡŒ ΡƒΠ±Ρ€Π°Π½Ρ‹ скрипты ΠΈ стили, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π·Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π°ΡŽΡ‚ ΠΊΠΎΠ΄, поэтому ΠΎΠ½ΠΈ хранятся Π²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ….

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠΎΠ΄. Если Π±Ρ‹ Π²Ρ‹ Π½Π°Ρ‡Π°Π»ΠΈ свСрху ΠΈ дошли Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°, это Π±Ρ‹Π»ΠΎ Π±Ρ‹ настоящим бСспорядком. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ объяснСниС. Π’Π°ΠΊΠΎΠΉ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΊΠ»ΡƒΠ±ΠΎΠΊ. И ΠΎΠ½ Π½Π΅ распутаСтся, Ссли поспСшно ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ всС, Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°ΡΡΡŒ ΠΎ чистом, элСгантном Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ. НуТно Π±Ρ‹Π»ΠΎ быстро Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚, поэтому шаблон Π±Ρ‹Π» Π²Π·Π»ΠΎΠΌΠ°Π½ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠ΅ прилоТСния, часто Π²Π½Π΅Π΄Ρ€ΡΡŽΡ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ…Π°ΠΊΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ костыли, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ скотч ΠΈ WD-40, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ДТоэл Бпольски, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, поставлСнноС Π² срок.

Π”Π°ΠΆΠ΅ этот кусок сбиваСт с Ρ‚ΠΎΠ»ΠΊΡƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅ΡΡ‚ΡŒ странныС Π²Π΅Ρ‰ΠΈ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, вставлСнными Π² скобки Π² ссылках Π½Π° Ρ„Π°ΠΉΠ» YAML.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎ-настоящСму ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ с основной Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ с этого:

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½ΡƒΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. И ΠΏΡ€ΠΈ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠΈ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΅Π³ΠΎ язык ΠΈ объяснСния. Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ собствСнного ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ руководства с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ вопросами. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ:

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ 5: Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ основных шаблонов смСщаСт Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ руководства. Π‘ этим Ρ‚ΠΈΠΏΠΎΠΌ обучСния связан ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ дСйствиС сочСтаСтся с ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, выполняСмыС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ, ΠΈΠΌΠ΅ΡŽΡ‚ своСй Ρ†Π΅Π»ΡŒΡŽ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ сами ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ для сСбя ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ Кнопка Try it out Π² интСрфСйсС Swagger

Swagger ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ сочСтаниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ с Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ взаимодСйствиСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ API (читая ΠΈ выполняя). Но Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ API REST ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ довольно простоС. Π‘ΠΎΠ»Π΅Π΅ интСнсивныС руководства ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ Π±ΡƒΠ΄Π΅Ρ‚ слоТнСС ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Β«NotebooksΒ» (ΠΊΠ°ΠΊ ΠΈΡ… часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π² частности Jupyter Notebooks. ОписаниС Jupyter:

Π£ Google Π΅ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π° для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ TensorFlow, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π° Π²Π΅Π±-страницах. На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ Run code now :

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° ΠΎΡ‚ TensorFlow

Клик Π½Π° Run code now ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Π·Π°ΠΏΠΈΡΠ½ΡƒΡŽ ΠΊΠ½ΠΈΠΆΠΊΡƒ Google, которая фактичСски запускаСт ΠΊΠΎΠ΄ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ докумСнтация ΠΊ ΠΊΠΎΠ΄Ρƒ Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚ Google позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

Π₯отя ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ записныС ΠΊΠ½ΠΈΠΆΠΊΠΈ выглядят ΠΊΡ€ΡƒΡ‚ΠΎ, ΠΎΠ½ΠΈ каТутся ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ для Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ достигнуто с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ€Π°Π·Ρ†Π° прилоТСния. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Python ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ язык Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ просто Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ локально, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свои собствСнныС инструмСнты компиляции ΠΈ настройки?

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрСли 5 ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² докумСнтирования ΠΊΠΎΠ΄Π°:

Π›ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ знания для создания собствСнного ΠΊΠΎΠ΄Π°.

👨‍💻 ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ занятиС: сравниваСм Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ΄Π° с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ²

Π˜Ρ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π» с руководством ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· сайтов Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ. Или посмотритС Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· сайтов Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ API Π² этом постС ΠΎΡ‚ Nordic APIs: 5 ΠŸΡ€ΠΈΠΌΠ΅Ρ€jd ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ API (ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Ρ‚Π°ΠΊ Π΄ΡƒΠΌΠ°Π΅ΠΌ). Π’ этом постС пСрСчислСны ΠΏΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ API: Stripe, Twilio, Dropbox, GitHub ΠΈ Twitter.

И ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ Π»ΡƒΡ‡ΡˆΠ΅ всСго соотвСтствуСт докумСнтация ΠΊΠΎΠ΄Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°

Doxygen β€” это систСма Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π’ Π”Ρ€ΡƒΠΏΠ°Π»Π΅, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, классов, констант ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². ДокумСнтация извлСкаСтся прямо ΠΈΠ· исходного ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ вмСстС с исходным ΠΊΠΎΠ΄ΠΎΠΌ. На сайтС Doxygen находится Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ руководство ΠΏΠΎ этой систСмС. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с Doxygen Π² Π”Ρ€ΡƒΠΏΠ°Π»Π΅.

ΠžΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°

Π­Ρ‚ΠΈ стандартны ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΊ внутристрочным, Ρ‚Π°ΠΊ ΠΈ ΠΊ вынСсСнным коммСнтариям:

ВнутристрочноС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ΡΡ использованиС внутристрочных ΠΈ нСвынСсСнных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π°. ΠžΠ±Ρ‰Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈΡ… использования: Ссли Π²Ρ‹ смотритС Π½Π° ΠΊΠΎΠ΄ ΠΈ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎ сСбя «Ого! Π― Π΄Π°ΠΆΠ΅ Π½Π΅ Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ это ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒΒ», β€” Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ это ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ Π·Π°Π±Ρ‹Π»ΠΈ ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ΄Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ строкой ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΎΠΌ ΠΊΠΎΠ΄Π° ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΎΡ‚ Π½Π΅Π³ΠΎ пустой строкой, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’ случаС, Ссли ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ трСбуСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки ΠΊΠΎΠ΄Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ внутристрочныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, для ΠΈΡ… выравнивания ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ β€” это ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² стилС C (/* */) ΠΈΠ»ΠΈ Π² стилС C++ (//). ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² стилС Perl/shell (#) Π½Π΅ привСтствуСтся.

ΠžΠ±Ρ‰ΠΈΠΉ синтаксис надстрочных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, класса, ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, константу ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

Doxygen ΠΏΠΎΠΉΠΌΡ‘Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ располоТСнныС Π² Ρ‚Π°ΠΊΠΎΠΌ Π±Π»ΠΎΠΊΠ΅. Π’Π°Ρˆ ΡΡ‚ΠΈΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎ возмоТности ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ стандартныС для Doxygen, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ сохраняСм источник Ρ€Π°Π·Π±ΠΎΡ€Ρ‡ΠΈΠ²Ρ‹ΠΌ. Π›ΡŽΠ±Ρ‹Π΅ упоминания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ автоматичСски создадут ссылки Π½Π° Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ. Π‘Π»ΠΎΠΊ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ΄Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ описываСмым ΠΊΠΎΠ΄ΠΎΠΌ, Π±Π΅Π· пустых строк ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π»ΠΎΠΊΠΎΠΌ ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Doxygen β€” ΠΎΠ±Ρ‰ΠΈΠ΅ замСчания

Бписки

Π’ Doxygen, списки ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. ΠŸΠ°Ρ€ΡΠ΅Ρ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ строгого слСдования синтаксису, Ρ‡Ρ‚ΠΎΠ±Ρ‹ тСкст ΠΌΠΎΠ³ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Π½ Π² HTML-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅:

БСкция Β«Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅Β»

The @see directive may be used to link to (existing) functions, files, classes, methods, constants, groups/topics, URLs, etc. @see directives should always be placed on their own line, and generally at the bottom of the documentation header. Use the same format in @see that you would for automatic links (see below, or see examples above). In addition, you can link to a group/topic using the internal name of the group (what follows the @defgroup in its definition).

Бсылки

The @link. @endlink directive may be used to output a HTML link in line with the text. Some notes:

АвтоматичСскиС ссылки

Any function, file, constant, class, etc. in the documentation will automatically be linked to the page where that item is documented (assuming that item has a doxygen header). For functions and methods, you must include () after the function/method name to get the link. For files, just put the file name in (not the path to the file). Groups will not be automatically linked; use @see or @link.

ΠžΠ±Ρ€Π°Π·Ρ†Ρ‹ ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ встроСны Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Doxygen с использованиСм Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² @code ΠΈ @endcode. Π›ΡŽΠ±ΠΎΠΉ ΠΊΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρƒ этими Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ.

ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ измСнСния

To document known issues and development tasks in code, @todo statements may be used. Notes:

@todo statements in inline comments follow the same rules as above, especially regarding indentation of subsequent comments, but you don’t need to leave a blank line between other comments and the @todo line.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с коммСнтария, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСт Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Note that a blank line should follow a @file documentation block.

Π‘Ρ‚Ρ€ΠΎΠΊΠ°, которая ΠΈΠ΄Ρ‘Ρ‚ сразу Π·Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ @file, это описаниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ показываСтся Π½Π° страницС со списком всСх Ρ„Π°ΠΉΠ»ΠΎΠ². Если строка начинаСтся с Π³Π»Π°Π³ΠΎΠ»Π°, Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π² настоящСм Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ²Β». ОписаниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½Π° страницу со списком всСх Ρ„Π°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠ΄Ρ‚ΠΈ послС пустой строки.

Π’ΠΎΠΎΠ±Ρ‰Π΅, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° @file Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ описания, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ @defgroup. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ смогут ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ (смотритС список Ρ‚Π΅ΠΌ/Π³Ρ€ΡƒΠΏΠΏ API ядра Π½Π° страницС http://api.drupal.org/api/drupal/groups).

Для Ρ„Π°ΠΉΠ»ΠΎΠ² содСрТащих ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ шаблон:

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

ВсС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹. Π‘Π»ΠΎΠΊ коммСнтирования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΅ΠΉ нСпосрСдствСнно ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΊ синтаксису докумСнтирования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

If there is no return value, omit the @return directive entirely. ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ Ρ„ΠΎΡ€ΠΌΠ° Functions that are easily described in one line may use the function summary only, for example:

If the abbreviated syntax is used, the parameters and return value must be described within the one-line summary. Data types on param/return Note: This section of the standard was adopted as of Drupal 8. In previous versions, data type specification was recommended in the case of non-obvious types or specific classes/interfaces only.

The data type of a parameter or return value MUST be specified in @param or @return directives, if it is not obvious or of a specific class or interface type.

The data type MAY be specified (as in: recommended) for other @param or @return directives, including those with primitive data types, arrays, and generic objects (stdClass).

This line should indicate which PHP or Drupal function directly takes this callback as an argument, and also which Drupal API function calls that function. If multiple API functions call it, format as a list.

Note that there are also specific standards for some functions that might be considered callbacks, such as hook implementations, menu callbacks, and form callbacks.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Ρ…ΡƒΠΊΠΎΠ²

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ опрСдСлСния Ρ…ΡƒΠΊΠ° слСдуСт Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (смотритС Π²Ρ‹ΡˆΠ΅) Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π³Π»Π°Π³ΠΎΠ» Π² ΠΏΠΎΠ²Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π½Π°ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, приводится ΠΏΡ€ΠΈΠΌΠ΅Ρ€ содСрТания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠ· Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ…ΡƒΠΊΠ° Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ядра. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΎΡ‚ΠΊΡƒΠ΄Π° вызываСтся Ρ…ΡƒΠΊ.

Documenting hook implementations and theme preprocess functions

If the implementation of a hook is rather standard and does not require more explanation than the hook reference provides, a shorthand documentation form may be used in place of the full function documentation block described above:

This generates a link to the hook reference, reminds the developer that this is a hook implementation, and avoids having to document parameters and return values that are the same for every implementation of the hook.

In the case of hooks that have variables in the names, such as hook_form_FORM_ID_alter(), a slightly expanded syntax should be used:

This generates a link to the hook reference, as well as to the particular form that is being altered. Again, optionally you can add more information in a separate paragraph to describe the particular quirks of your hook implementation.

Theme preprocess functions work the same as hook_form_FORM_ID_alter(). Example:

For hook_update_N() implementations, there is a different standard, because the documentation’s first line is displayed to tell people what will happen (or did happen) when update.php is run. So they are documented as follows:

Note that the first line should start with an imperative verb, so it will make sense to people running update.php.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΠΎΡ€ΠΌΡ‹

/**
* Form validation handler for user_login_form().
*
* @see user_login_form_submit()
*/
function user_login_form_validate($form, &$form_state) <
.
>

/**
* Form submission handler for user_login_form().
*
* @see user_login_form_validate()
*/
function user_login_form_submit($form, &$form_state) <
.
>

If the form generates a page (i.e., in a hook_menu() implementation, the page callback is ‘drupal_get_form’ and the page argument is this form), include an @see reference to the hook_menu() implementation that uses it.

Documenting Render API callbacks

The Render API uses various callbacks functions, which you can assign to a render element when setting up a render array (or a form). Document them as follows:

Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ для Π”Ρ€ΡƒΠΏΠ°Π»Π° 8.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

In order to provide a quick reference for themers, we tag all themeable functions so that Doxygen can group them together. A themeable function is defined as any function meant to be called via theme(), and you can indicate that a function is themeable by adding an @ingroup themeable directive. It is also beneficial to use @see directives to link the theme function with its preprocessing functions.

In the rare case that your theme function returns some other type of formatted output other than HTML, you should add a @return directive with a description of what the function generates and returns.

See also the hook implementations section for how to document preprocess functions.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ шаблонов Ρ‚Π΅ΠΌ

If a template file (themeablename.tpl.php) and a preprocess function is used instead of a theming function, both the template file and the preprocessing function need to be documented. The template file should be documented with a @file directive, should have @ingroup themeable in the file documentation header, and should contain a list of the variables that the template_preprocess_HOOK has prepared for it. If any of these variables contain data that is unsafe to output for XSS reasons, that should be documented; otherwise it can be assumed that variables available have already been appropriately filtered. Anything not listed should not be assumed to be safe to output. It should also contain a @see directive to link back to the preprocessing function.

See also the hook implementations section for how to document preprocess functions.

Documenting hook_menu() callbacks

(This standard was adopted for Drupal version 8.x.) The page, access, title, and other callbacks that are registered in hook_menu() are documented as follows:

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ констант ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Constants, global variables, and member variables of classes should have documentation blocks. As usual, the documentation block should start with a one-line description, and any additional needed documentation should be separated from the summary line by a blank line (though usually only one line is needed).

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ классов ΠΈ интСрфСйсов

Each class and interface should have a doxygen documentation block, and each member variable, constant, and function/method within the class or interface should also have its own documentation block. Example:

/**
* Defines a common interface for a prepared statement.
*/
interface DatabaseStatementInterface extends Traversable <

/**
* Represents a prepared statement.
*
* Default implementation of DatabaseStatementInterface.
*/
class DatabaseStatementBase extends PDOStatement implements DatabaseStatementInterface <

/**
* Returns the foo information.
*
* @return object
* The foo information as an object.
*
* @throws MyFooUndefinedException
*/
public function getFoo () <
// Function body here.
>

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏ/Ρ‚Π΅ΠΌ

You can make «Topics» pages by defining a «group», also known as a «module» in Doxygen terminology. We use topic/group pages to group functions that form an API that is meant to be used by multiple modules. Do not define a topic/group for functions that are internal to a particular file or module. See http://api.drupal.org/api/drupal/groups for a list of existing API topics/groups in Drupal Core.

Here is the basic syntax for defining a group:

The @defgroup line gives the name of the group that will be used in the URL, and then the name that will be used as the page title and in the Topics listing. Any text within the @defgroup’s own doxygen header appears as text on the topic page.

If you put the group definition immediately before one or more functions that belong in the group, you can automatically add functions to the group by using this syntax:

/**
* @defgroup group_identifier Name of the group for Topics page
* @<
* One line, one sentence description of the topic/group.
*
* One or more additional paragraphs of information, which will appear
* on the topic page.
*/

// Functions here are automatically added to the group.

/**
* @> End of «defgroup group_identifier».
*/

If you have functions that need to be added to a group whose definition is not right above the functions, there are two ways to do it:

before the functions, and

after the group of functions.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΠΈ совСты

Drupal’s Doxygen processing module, API module, currently only supports a small subset of all Doxygen commands and makes some assumptions about the formatting of the source. Code to be processed by api.module is advised to stick to these conventions.

The API module currently supports only one of Doxygen’s three grouping mechanisms: Modules (@defgroup, @ingroup, @addtogroup, @<, @>). See groups section above for more information on how we use modules/groups.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *