• Stars
    star
    303
  • Rank 133,641 (Top 3 %)
  • Language
    JavaScript
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Language agnostic patterns description

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования

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

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° рСпозитория устроСна Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅ content содСрТится список ΠΏΠ°ΠΏΠΎΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°ΠΌ. Π’Π½ΡƒΡ‚Ρ€ΠΈ README.md с ΠΎΠ±Ρ‰ΠΈΠΌ описаниСм шаблона ΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΠΎ языкам, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, javascript. Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΊΠΈ с языком снова ΠΏΠ°ΠΏΠΊΠΈ. КаТдая ΠΈΠ· Π½ΠΈΡ… - рСализация ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ситуации ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ способом.

Π’ Ρ‚Π΅Ρ… ситуациях, ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΎΠ±Ρ‰Π΅ΠΌ описании, ΠΎΠ½ приводится Π½Π° JavaScript.

Π›ΠΈΡ€ΠΈΠΊΠ°

Π¨Π°Π±Π»ΠΎΠ½ проСктирования (ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½) - ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ проСктирования.

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

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с шаблонами - Π½Π΅ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° для вашСго языка, Π° ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ появилось Π΄Π°Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ - это Π½Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, Π° слСдствиС. Классика ΠΊΡƒΠ»ΡŒΡ‚Π° ΠΊΠ°Ρ€Π³ΠΎ выглядит Ρ‚Π°ΠΊ: программист смотрит Π½Π° свой ΠΊΠΎΠ΄ ΠΈ Π΄ΡƒΠΌΠ°Π΅Ρ‚ "ΠΊΡƒΠ΄Π° ΠΌΠ½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²ΠΎΡ‚ этот ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½".

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования - Π½Π΅ Π·Π°ΠΊΠΎΠ½Ρ‹ Ρ„ΠΈΠ·ΠΈΠΊΠΈ, ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹Π΅ ΡƒΡ‡Ρ‘Π½Ρ‹ΠΌΠΈ Π² стСнах унивСрситСтов. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ шаблонов постоянно пСрСизобрСтаСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΡƒΠ³ΠΎΠ»ΠΊΠ°Ρ… свСта. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ Π½Π΅ всС ΠΈΠ· Π½ΠΈΡ… Π²ΠΎΠΎΠ±Ρ‰Π΅ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ словосочСтаниС "ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ программирования". ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² сущСствуСт ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΈ постоянно ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°ΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅. Они относятся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΊΠΎΠ΄Ρƒ. НапримСр, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, с распрСдСлёнными систСмами, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ спСцифичны для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… языков, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΠΎΡ‡Ρ‚ΠΈ для всСго (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, фасад).

МногиС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования (особСнно ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ GoF) с тСхничСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния сводятся ΠΊ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΡƒ ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠΎΠ². Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ сниТаСтся цикломатичСская ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠ½ становится ΠΏΡ€ΠΎΡ‰Π΅, Π½ΠΎ ΠΏΡ€ΠΈ этом часто многословнСС. РСализация ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ, ΠΈ Ρƒ программистов Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос, Π° ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°, Ссли ΠΊΠΎΠ΄ ΠΈ Ρ‚Π°ΠΌ ΠΈ Ρ‚Π°ΠΌ практичСски ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ (ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ)? ВсС Π΄Π΅Π»ΠΎ Π² сСмантикС (смыслС). Π—Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠΌ стоит смысл, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²Π°ΠΆΠ½Π΅Π΅, Ρ‡Π΅ΠΌ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ классов. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅Ρ… языков, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡ… Π΄Π΅Π»Π°Π»ΠΈ. Π’ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ΅ всё ΠΏΡ€ΠΎΡ‰Π΅.

БистСматизация ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, это общая тСрминология, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ коммуникациях. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ "ΡΡ‚ΠΎΡΡ‚ΡŒ Π½Π° ΠΏΠ»Π΅Ρ‡Π°Ρ… Π³ΠΈΠ³Π°Π½Ρ‚ΠΎΠ²", Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ колСсо. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Π½Π΅ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ колСсо Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ΠΎ.

ΠŸΠ»ΠΎΡ…Π°Ρ абстракция Ρ…ΡƒΠΆΠ΅ дублирования ΠΊΠΎΠ΄Π°

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚ бСсплатного сыра. О ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°Ρ… принято Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ± ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΡ‚ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½ΠΎ это Π½Π΅ Ρ‚Π°ΠΊ. Π›ΡŽΠ±ΠΎΠ΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ систСму Π³ΠΈΠ±ΠΊΠΎΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, Π½ΠΎ связываСт Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Пока Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈΠ΄Π΅Ρ‚ Π² сторону Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ направлСния, всё Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнятся трСбования, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ вашС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ годится. Π Π΅ΡˆΠ°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… поступлСния, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это ΠΌΠΈΡ„. Π’Π°ΡˆΠΈ Π³Π»Π°Π²Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ·ΡŒΡ: тСсты, рСфлСксия ΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ (нСбольшими шагами).

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Π₯отя Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ модуля Π·Π²ΡƒΡ‡ΠΈΡ‚ ΠΊΠ°ΠΊ "Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выдСляСтся Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ", ΠΎΠ½ΠΎ Π½Π΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ сути, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ΄ΠΌΠ΅Π½Π΅ понятий. Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Ρ‘ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ. ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ - это ΠΌΠ°Π»ΠΎΠ΅ количСство связСй ΠΌΠ΅ΠΆΠ΄Ρƒ модулями ΠΈ отсутствиС Ρ†ΠΈΠΊΠ»ΠΎΠ². Под цикличСскими связями понимаСтся ситуация, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ зависит Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ Π½Π΅ сущСствуСт модуля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ зависит ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹. Для Π΄Π²ΡƒΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ†ΠΈΠΊΠ» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ зависят Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСзависимо.

Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ извСстный Open-closed Principle Π½Π° самом Π΄Π΅Π»Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ нисколько Π½Π΅ спСцифичСн для ООП стиля Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Open-closed Principle

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

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ понятия

ΠšΠ»ΠΈΠ΅Π½Ρ‚

Π’ тСкстах Ρ‚Π΅Ρ€ΠΌΠΈΠ½ "ΠΊΠ»ΠΈΠ΅Π½Ρ‚" ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, систСму ΠΈΠ»ΠΈ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚ΠΎ, ΠΎ Ρ‡Ρ‘ΠΌ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ. НапримСр, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ - это ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ.

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки

More Repositories

1

ru-test-assignments

ВСстовыС задания для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния ΠΎΡ‚ Ρ€Π°Π·Π½Ρ‹Ρ… it ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ
5,628
star
2

hexlet-slack-archive

Архивы Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… бСсСд ΠΈΠ· Π‘Π»Π°ΠΊΠ° Π₯СкслСта
503
star
3

ru-local-communities

Бписок русскоязычных it-ΠΊΠΎΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ ΠΏΠΎ Π³ΠΎΡ€ΠΎΠ΄Π°ΠΌ
445
star
4

interactive-courses

420
star
5

hexletguides.github.io

Hexlet Guides
SCSS
257
star
6

webinars

Hexlet webinars
229
star
7

hexlet-sicp

Hexlet SICP
PHP
98
star
8

hexlet-cv

Stackoverflow for Resume
Ruby
91
star
9

RestApiTutorial.ru

https://restapitutorial.ru/
HTML
90
star
10

hexlet-friends

Python
61
star
11

ru-instructions

54
star
12

our-stories

ΠšΠΎΠ½ΠΊΡƒΡ€Ρ «Как я ΠΏΡ€ΠΈΡˆΡ‘Π» ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽΒ»
54
star
13

ru-awesome-opensource

Бписок опСнсорсных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ участиС
52
star
14

active_form_model

Ruby
48
star
15

programming-map

HTML
40
star
16

hexlet-correction

Typo Reporter
Java
40
star
17

hexlet-interview

Public Interviews
TypeScript
30
star
18

QF101

QF101 course
Mathematica
26
star
19

awesome-lsp-servers

24
star
20

hexlet-exercise-kit

Kit for Hexlet lesson creators
Makefile
23
star
21

hexlet-editor

Online Editor Form Embedding
JavaScript
20
star
22

hexlet-allorigins

JavaScript
17
star
23

hexlet-torrent

Π₯СкслСт ΠšΡƒΡ€ΡΡ‹ Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ БСсплатно
14
star
24

hexlet-comparator

JavaScript
13
star
25

hexlet-blogs

Бписок Π±Π»ΠΎΠ³ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π°Π²Ρ‚ΠΎΡ€Ρ‹ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ± ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π₯СкслСта
12
star
26

jsbrowser

Browser inside Browser! Why? Because we can
JavaScript
12
star
27

ru-proposals

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ Π₯СкслСта
10
star
28

code-reviews

10
star
29

osx-project-1

OS X Development Course, Project 1
10
star
30

multicode

Hexlet's Codebattle's Clojure code converter
Clojure
9
star
31

ru-manual-testing-questions-interview

9
star
32

phpstan-functional-programming

PHP
7
star
33

example_challenge

JavaScript
7
star
34

docs

Hexlet Knowledge Base
7
star
35

ru-awesome-underhood

7
star
36

hexlet-unblock

Как ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ доступ ΠΊ Π₯СкслСту Π² условии Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ
6
star
37

cli

Shell
6
star
38

runit

Online Editor Form Embedding
JavaScript
4
star
39

ru-projects-for-contributing

4
star
40

jest-supertest-matchers

JavaScript
4
star
41

react-flowbot-ui-kit

TypeScript
4
star
42

test-assignments

4
star
43

presentations

Makefile
3
star
44

suppressor

Go
3
star
45

documentation-style-guide

Руководство ΠΏΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ тСкстов Π½Π° Π₯СкслСт
3
star
46

hexlet-cli

Hexlet command line utility
Ruby
2
star
47

languagetool-cli

JavaScript
2
star
48

hexlet-analytics

Segment.io analytics.js script built for Hexlet.io
JavaScript
2
star
49

logos

1
star
50

hexlet-workshops

Makefile
1
star
51

dailybot

Python
1
star
52

course_boilerplate

Hexlet course boilerplate
1
star
53

internal-training

1
star
54

base_example_lesson

Hexlet sample lesson for reference
Python
1
star
55

osx-lectures

Source code from lecture 3
Objective-C
1
star
56

hexlet-asciinema

Docker images for recording asciinemas
Dockerfile
1
star