Skip to content

HowProgrammingWorks/Dictionary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ-индСкс понятий со ссылками

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Бсылки Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Π΅ΠΌΠ΅ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

ОглавлСниС:

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ понятия

  • Абстракция / Abstraction это ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅, ΠΎΡ‚Π²Π»Π΅Ρ‡Π΅Π½Π½ΠΎΠ΅ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚ΠΈΠΊΠΈ с Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ сущСствСнных ΠΈ отсСчСниСм нСсущСствСнных свойств ΠΈ связСй. АбстрагированиС - построСниС абстракций ΠΈΠ»ΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ структур Π΄Π°Π½Π½Ρ‹Ρ….
    • Абстракция - ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ), подходящСС для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ ΠΊΡ€ΡƒΠ³Π° Π·Π°Π΄Π°Ρ‡;
    • Абстракция - модСль Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (мноТСства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²), ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ мноТСства, ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, достаточноС для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ;
    • Абстракция - мноТСство свойств ΠΈ связСй ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, относящССся ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Π΅Π³ΠΎ аспСкту, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΌΡƒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ;
    • Π‘Π»ΠΎΠΈ абстракций / Abstraction Layer
  • ΠŸΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° программирования / Programming Paradigm
    • ΠŸΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° Π·Π°Π΄Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΈΠ΄Π΅ΠΉ ΠΈ понятий, Π΄ΠΎΠΏΡƒΡ‰Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ², постулатов, ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ программирования для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ Π½Π° Π­Π’Πœ;
    • ΠŸΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ модСль Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ, ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… ΠΈ ΠΏΠ»ΠΎΡ…ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ) примСняСмых для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°;
  • Бинтаксис / Syntax - ΠΏΡ€Π°Π²ΠΈΠ»Π° построСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ· символов, Π½ΠΎ Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΡΠΌΡ‹ΡΠ»ΠΎΠ²ΡƒΡŽ (ΡΠ΅ΠΌΠ°Π½Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ) Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΊΠΎΠ΄Π°. Бинтаксис опрСдСляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ структуру ΠΊΠΎΠ΄Π°.
  • Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ / Value - Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°, записанная Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ мСсто памяти Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.
  • Π’ΠΈΠΏ / Type - мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π°Π΄ этими значСниями. НапримСр, Π² JavaScript Ρ‚ΠΈΠΏ Boolean ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π΄Π²Π° значСния true ΠΈ false ΠΈ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ, Ρ‚ΠΈΠΏ Null ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null, Π° Ρ‚ΠΈΠΏ Number мноТСство Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… чисСл с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ограничСниями Π½Π° минимальноС ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ограничСния Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ + - * ** / % ++ -- > < >= <= & | ~ ^ << >>.
  • Π›ΠΈΡ‚Π΅Ρ€Π°Π» / Literal - запись значСния Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НапримСр: Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ чисСл, логичСских Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, null ΠΈ undefined, строк, массивов, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΉ синтаксис, ΠΎΡ‚ ΠΎΡ‡Π΅Π½ΡŒ простого, для записи чисСл, Π΄ΠΎ слоТных синтаксичСских конструкций, для записи ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
  • Бкаляр / Scalar / Primitive / Atomic value - Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Бкаляр копируСтся ΠΏΡ€ΠΈ присвоСнии ΠΈ пСрСдаСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.
  • Бсылка / Reference ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ссылочного Ρ‚ΠΈΠΏΠ°, Ρ‚.Π΅. Π½Π΅ скалярноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, для JavaScript это ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΡ‹ Object, Function, Array.
  • Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ / Identifier - ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, констант, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², классов, ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅.
  • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ / Variable - имСнованная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€), ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, адрСс ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ константы (Π° для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языков ΠΈ Ρ‚ΠΈΠΏ): let cityName = 'Beijing';
  • ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ / Assignment - связывания значСния ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ). ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ присвоСния Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языках Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ присваиваСмоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ выраТСния).
  • ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° / Constant - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ связано нСизмСняСмоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚ΠΈΠΏ: const WATCH_TIMEOUT = 5000;
  • Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ / Composed types - ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈΠ»ΠΈ структуры состоят ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… скалярных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ± Π½Π°Π΄ этим ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, массив, мноТСство, ΠΊΠΎΡ€Ρ‚Π΅ΠΆ.
  • ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΡ‹ / Enumerated types
  • Π€Π»Π°Π³ / Flag - ЛогичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ состояниС Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ закрытия соСдинСния, ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ поиска ΠΏΠΎ структурС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚.Π΄. НапримСр: let flagName = false; Иногда Ρ„Π»Π°Π³Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ логичСскиС, Π° пСрСчислимыС Ρ‚ΠΈΠΏΡ‹.
  • Алгоритм / Algorithm - это Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ описаниС порядка вычислСний для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ класса Π·Π°Π΄Π°Ρ‡ Π·Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ врСмя (ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ для любого мноТСства Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…).
  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° / Program - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ Π² ΠΎΠ΄Π½ΠΎ Ρ†Π΅Π»ΠΎΠ΅ для вычислСния ΠΈ управлСния Π­Π’Πœ.
  • Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ / Engineering - ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ практичСской ΠΏΠΎΠ»ΡŒΠ·Ρ‹ ΠΈΠ· ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ рСсурсов ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π½Π°ΡƒΠΊΠΈ, Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊ, ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ структуры, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² ΠΈ Π·Π½Π°Π½ΠΈΠΉ.
  • Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния / Software engineering - ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ ΠΊ индустрии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, исслСдованиС, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, тСстированиС, Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ПО.
  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ / Programming - это искусство ΠΈ инТСнСрия Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ.
  • ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ / Coding - написаниС исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ синтаксиса (языка), стиля ΠΈ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ ΠΏΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΌΡƒ Π’Π—.
  • Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния / Software development - это соСдинСниС программирования ΠΈ кодирования Π½Π° всСх этапов ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ПО: проСктирования, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, тСстирования, ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, сопровоТдСния ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ / Instruction - ΠΎΠ΄ΠΈΠ½ шаг Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° вычислСний, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ инструкция процСссора исполняСтся CPU.
  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ / Statement - наимСньшая синтаксичСская Ρ‡Π°ΡΡ‚ΡŒ языка программирования, исполняСмая ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ, срСдой ΠΈΠ»ΠΈ компилируСмая Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.
  • Команда / Command - атомарная Π·Π°Π΄Π°Ρ‡Π° для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ процСссора.
  • Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ / Expression - синтаксичСская конструкция языка программирования прСдназначСнная для выполнСния вычислСний. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ состоит ΠΈΠ· ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: (len - 1) * f(x, INTERVAL)
  • Π‘Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° / Block - логичСски связанная Π³Ρ€ΡƒΠΏΠΏΠ° инструкций ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π‘Π»ΠΎΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости. Π‘Π»ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: {}, (+ a b), begin end, отступы Π² Python.
  • ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° / Procedure or Subroutine - логичСски связанная Π³Ρ€ΡƒΠΏΠΏΠ° инструкций ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ имя. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° способствуСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ использованию ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… частСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π· ΠΈ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках (Π½ΠΎ Π½Π΅ Π² JavaScript) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языках ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° описываСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ синтаксиса Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΈΠΏΠ° void).
  • Ѐункция / Function - абстракция прСобразования Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Ѐункция ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Ѐункция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π° Π±Π»ΠΎΠΊΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Ѐункция ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Ѐункция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ. Ѐункция способствуСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ использованию ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… частСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π· ΠΈ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. Π’ JavaScript функция описываСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ function ΠΈΠ»ΠΈ синтаксиса стрСлок (лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ).
  • Π‘ΠΈΠ³Π½Π°Ρ‚ΡƒΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ / Function signature - имя (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€), количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΈΡ… Ρ‚ΠΈΠΏΡ‹ (Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ ΠΈΠΌΠ΅Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²), Ρ‚ΠΈΠΏ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.
  • ΠœΠ΅Ρ‚ΠΎΠ΄ / Method
    • функция ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, связанная с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ контСкстом ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ интСрфСйсом;
    • { a: 10, b: 10, sum() { return this.a + this.b; } }
  • Π¦ΠΈΠΊΠ» / Loop
    • ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ исполнСниС Π±Π»ΠΎΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²
  • УсловиС / Conditional statements
    • синтаксичСская конструкция, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ дСйствия ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ Ρ€Π°Π·Π½Ρ‹Π΅ значСния (Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€) Π² зависимости ΠΎΡ‚ логичСского выраТСния (Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎ true ΠΈΠ»ΠΈ false)
  • РСкурсия / Recursion - Π·Π°Π΄Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° вычислСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² Π΅Π΅ самой (прямой ΠΈΠ»ΠΈ нСпрямой) ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π΅ саму.
    • КосвСнная (нСпрямая) рСкурсия - ΠΊΠΎΠ³Π΄Π° функция ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΈΠ»ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сСбя Π½Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π° Ρ‡Π΅Ρ€Π΅Π· Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈΠ»ΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ;
    • Π₯востовая - частный случай, ΠΊΠΎΠ³Π΄Π° рСкурсивный Π²Ρ‹Π·ΠΎΠ² являСтся послСднСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠ΅Ρ€Π΅Π΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ значСния, Ρ‡Ρ‚ΠΎ всСгда ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ Π² Ρ†ΠΈΠΊΠ», Π΄Π°ΠΆΠ΅ автоматичСским способом. НС хвостовая Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π° Π² Ρ†ΠΈΠΊΠ» ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТным способом, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° / String
    • ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов (Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ языков ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ символу ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· синтаксис доступа ΠΊ элСмСнтам массива, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки).
  • ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ / Collection - структура Π΄Π°Π½Π½Ρ‹Ρ…, слуТащая для хранСния Π½Π°Π±ΠΎΡ€Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ доступ ΠΊ Π½ΠΈΠΌ ΠΏΠΎ индСксам ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌ.
  • Массив / Array - коллСкция элСмСнтов, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ осущСствляСтся ΠΏΠΎ индСксам. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: const cities = ['Tehran', 'Yalta', 'Potsdam'];
  • ΠžΡ‚Π»Π°Π΄ΠΊΠ° / Debug - процСсс обнаруТСния ΠΈ устранСния ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° сообщСний ΠΈΠ»ΠΈ инструмСнтов: ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°, дСкомпилятора, систСм ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° рСсурсов ΠΈ логирования, систСм Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ тСстирования.
  • ЦП / CPU - Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ процСссор / central processing unit - устройство, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ инструкции.
  • АЛУ / ALU - Π±Π»ΠΎΠΊ ЦП, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ арифмСтичСскиС ΠΈ логичСскиС прСобразования Π½Π°Π΄ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌΠΈ словами, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ Ρ†Π΅Π»Ρ‹Π΅ числа, числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, адрСсами памяти, строками, логичСскими Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ.
  • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ / Component - нСсколько ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, классов, ΠΌΠΎΠ½Π°Π΄, Ρ‚ΠΈΠΏΠΎΠ²) ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΡƒ.
  • ΠœΠΎΠ΄ΡƒΠ»ΡŒ / Module - цСлостный, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π½Ρ‹ΠΉ, нСзависимый ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмы ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ имя, интСрфСйс, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.
  • ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ / Modularity
    • ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡƒ ΠΈ тСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎ частям;
    • ограничСния: ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ классы/ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹/Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ языка программирования, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ/ΠΈΠ»ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°; ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ слабо связаны, Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· внСшнСС API (ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) ΠΈΠ»ΠΈ ΡˆΠΈΠ½Ρƒ событий (Ссли систСма построСна Π½Π° событийной ΠΌΠΎΠ΄Π΅Π»ΠΈ, подпискС).
  • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° / Library - сборник ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, классов, ΠΌΠΎΠ½Π°Π΄, Ρ‚ΠΈΠΏΠΎΠ²) ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования (часто ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ). Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° это Π±ΠΎΠ»Π΅Π΅ крупная логичСская Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, Ρ‡Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Иногда Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ синоним модуля, Π° ΠΈΠ½ΠΎΠ³Π΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.
  • Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ / Complexity
    • Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ / Computational complexity
    • ΠšΠΎΠ»ΠΌΠΎΠ³ΠΎΡ€ΠΎΠ²ΡΠΊΠ°Ρ (ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ) ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ / Kolmogorov (descriptive) complexity
    • Если Π½Π΅Ρ‚ Ρ†ΠΈΠΊΠ»ΠΎΠ², Ρ‚ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΊΠΎΡ€Ρ€Π΅Π»ΠΈΡ€ΡƒΠ΅Ρ‚ с Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия

  • ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ ЭкзСмпляр / Object or Instance - структура Π΄Π°Π½Π½Ρ‹Ρ…, содСрТащая состояниС ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, связанныС с этим состояниСм. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создан ΠΊΠ°ΠΊ Π»ΠΈΡ‚Π΅Ρ€Π°Π» {} ΠΈΠ»ΠΈ экзСмпляр класса new ClassName() ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ экзСмпляр ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° new PrototypeConstructor() ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ ΠΈΠ· Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ.
    • const person = { name: 'Marcus', city: 'Roma', born: 121 };
    • const person = new Person('Marcus', 'Roma', 121);
  • Класс / Class - программная абстракция, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π°Ρ состояниС ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹) своих экзСмпляров (инстансов).
    • class Point { constructor(x, y) { this.x = x; this.y = y; } }
    • class Rect { move(x, y) { this.x += x; this.y += y; } }
    • class Square extends Rect { constructor(x, y, m) { super(x, y, m, m); } }
    • class Point { static from(point) { return new Point(this.x, this.y); } }
  • ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ / Prototype - ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π΅Π³ΠΎ экзСмпляры ΠΈ наслСдники. Бвойства ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° становятся Π²ΠΈΠ΄Π½Ρ‹ Ρƒ наслСдников, Ссли эти свойства Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρƒ наслСдников. ЀормируСтся Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ², ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ происходит ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ поиск свойств, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ достигнут ΠΊΠΎΠ½Π΅Ρ† Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ наслСдования. Иногда ΠΏΠΎΠ΄ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠΌ понимаСтся шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ клонируСтся Π²ΠΎ врСмя инстанциирования (Π½Π΅ для JavaScript).
  • Π˜Π½ΡΡ‚Π°Π½Ρ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ / Instantiation - созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (экзСмпляра) ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти для структуры Π΄Π°Π½Π½Ρ‹Ρ….
    • const rect = new Rectangle(-50, -50, 100, 150);
    • const rect = { a: { x: -50, y: -50 }, b: { x: 100, y: 150 } };
    • const cities = new Array(1000);
    • const cities = ['Tehran', 'Kiev', 'Yalta', 'Beijing', 'Potsdam', 'London'];
  • ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости / Scope - Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ "Π²ΠΈΠ΄Π΅Π½" ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€.
  • ЛСксичСский контСкст / Lexical environment - Π½Π°Π±ΠΎΡ€ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², связанных с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ значСниями Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° (Π² Ρ‚ΠΎΠΌ числС Π±Π»ΠΎΠΊΠΎΠ² Ρ†ΠΈΠΊΠ»ΠΎΠ², условий ΠΈ Ρ‚.Π΄.).
  • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ контСкст Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, связанный со слуТСбным ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ this. ВсС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ стрСлочных, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ связаны с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ контСкстом. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ связан с this Ссли функция являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ссли функция привязана ΠΊ Π½Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· bind ΠΈΠ»ΠΈ Π²Ρ‹Π·Π²Π°Π½Π° Ρ‡Π΅Ρ€Π΅Π· apply ΠΈ call.
  • Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ контСкст / Global context - Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-справочник. Если ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π΅ находится Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… лСксичСских контСкстов, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π΅Π³ΠΎ поиск Π² глобальном контСкстС (global, window, sandbox).
  • ОбъявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ / Function definition - способ объявлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΈΠ΄Π΅Π½ ΠΈΠ· любого мСста Π² лСксичСском контСкстС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ объявлСна функция, ΠΏΡ€ΠΈΠΌΠ΅Ρ€: function sum(a, b) { return a + b; }
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ / Function expression - связываниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ присвоСния, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ доступно Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π΅ Π²ΠΎ всСм лСксичСском контСкстС, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС мСста присвоСния. Π˜ΠΌΠ΅Π΅Ρ‚ нСсколько синтаксичСских Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²:
    • Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ / Named function expression
      • const max = function max(a, b) { return a + b; };
    • Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ / Anonymous function expression
      • const max = function(a, b) { return a + b; };
    • лямбда-функция / Lambda function
      • const max = (a, b) => { return a + b; };
    • лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ѐункция-стрСлка / Lambda expression, Arrow function
      • const max = (a, b) => (a + b);
  • Чистая функция / Pure Function
    • функция, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰Π°Ρ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° основС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ состояния ΠΈ Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°ΡΡΡ ΠΊ опСрациям Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°
    • функция, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всСгда Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, Ρ‚.Π΅. для любого Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
    • функция, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов (см. ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ эффСкт)
  • Π—Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅ / Closure
    • Ссли Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ g ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f, Ρ‚ΠΎ g Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ контСкст Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f, Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ свои Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹;
    • Ссли f Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ g, Ρ‚ΠΎ говорят, Ρ‡Ρ‚ΠΎ экзСмпляр g Π·Π°ΠΌΠΊΠ½ΡƒΠ» контСкст f;
    • способ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с контСкстом (с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ контСкста);
    • Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅ являСтся Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ свойств Π² ООП, Ρ‚ΠΎΠΆΠ΅ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ свойства с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΠΎ сути ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ООП сам являСтся контСкстом связывания;
    • ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ замыкания ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ наслСдованиС;
    • const add = a => b => a + b;
    • const hash = (data = {}) => (key, value) => (data[key] = value, data);
  • БупСрпозиция / Superposition
    • объСдинСниС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² выраТСния Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ΄Π½ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ становится Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ;
    • const expr2 = add(pow(mul(5, 8), 2), div(inc(sqrt(20)), log(2, 7)));
  • ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ / Composition
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ / Instruction - ΠΎΠ΄ΠΈΠ½ шаг Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° вычислСний, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ инструкция процСссора исполняСтся CPU.
  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ / Statement - наимСньшая синтаксичСская Ρ‡Π°ΡΡ‚ΡŒ языка программирования, исполняСмая ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ, срСдой ΠΈΠ»ΠΈ компилируСмая Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.
  • Команда / Command - атомарная Π·Π°Π΄Π°Ρ‡Π° для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ процСссора.
  • Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ / Expression - синтаксичСская конструкция языка программирования прСдназначСнная для выполнСния вычислСний. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ состоит ΠΈΠ· ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:Β (len - 1) * f(x, INTERVAL)
  • Π‘Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° / Block - логичСски связанная Π³Ρ€ΡƒΠΏΠΏΠ° инструкций ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π‘Π»ΠΎΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости. Π‘Π»ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:Β {},Β (+ a b),Β begin end, отступы Π² Python.
  • ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° / Procedure or Subroutine - логичСски связанная Π³Ρ€ΡƒΠΏΠΏΠ° инструкций ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ имя. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° способствуСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ использованию ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… частСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π· ΠΈ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках (Π½ΠΎ Π½Π΅ Π² JavaScript) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языках ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° описываСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ синтаксиса Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΈΠΏΠ° void).
  • Ѐункция / Function - абстракция прСобразования Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Ѐункция ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Ѐункция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π° Π±Π»ΠΎΠΊΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Ѐункция ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Ѐункция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ. Ѐункция способствуСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ использованию ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… частСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π· ΠΈ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. Π’ JavaScript функция описываСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ function ΠΈΠ»ΠΈ синтаксиса стрСлок (лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ). Π‘ΠΈΠ³Π½Π°Ρ‚ΡƒΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ / Function signature - имя (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€), количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΈΡ… Ρ‚ΠΈΠΏΡ‹ (Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ ΠΈΠΌΠ΅Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²), Ρ‚ΠΈΠΏ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.
  • ΠœΠ΅Ρ‚ΠΎΠ΄ / Method функция ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, связанная с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ контСкстом ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ интСрфСйсом; { a: 10, b: 10, sum() { return this.a + this.b; } }
  • Π¦ΠΈΠΊΠ» / Loop - ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ исполнСниС Π±Π»ΠΎΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²
  • УсловиС / Conditional statements - синтаксичСская конструкция, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ дСйствия ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ Ρ€Π°Π·Π½Ρ‹Π΅ значСния (Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€) Π² зависимости ΠΎΡ‚ логичСского выраТСния (Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎ true ΠΈΠ»ΠΈ false)
  • РСкурсия / RecursionΒ - Π·Π°Π΄Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° вычислСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² Π΅Π΅ самой (прямой ΠΈΠ»ΠΈ нСпрямой) ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π΅ саму.
  • КосвСнная (нСпрямая) рСкурсия - ΠΊΠΎΠ³Π΄Π° функция ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΈΠ»ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сСбя Π½Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π° Ρ‡Π΅Ρ€Π΅Π· Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈΠ»ΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ;
  • Π₯востовая - частный случай, ΠΊΠΎΠ³Π΄Π° рСкурсивный Π²Ρ‹Π·ΠΎΠ² являСтся послСднСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠ΅Ρ€Π΅Π΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ значСния, Ρ‡Ρ‚ΠΎ всСгда ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ Π² Ρ†ΠΈΠΊΠ», Π΄Π°ΠΆΠ΅ автоматичСским способом. НС хвостовая Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π° Π² Ρ†ΠΈΠΊΠ» ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТным способом, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° / String - ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов (Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ языков ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ символу ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· синтаксис доступа ΠΊ элСмСнтам массива, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки).
  • ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ / CollectionΒ - структура Π΄Π°Π½Π½Ρ‹Ρ…, слуТащая для хранСния Π½Π°Π±ΠΎΡ€Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ доступ ΠΊ Π½ΠΈΠΌ ΠΏΠΎ индСксам ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌ.
  • Массив / Array - коллСкция элСмСнтов, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ осущСствляСтся ΠΏΠΎ индСксам. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:Β const cities = ['Tehran', 'Yalta', 'Potsdam'];
  • ΠžΡ‚Π»Π°Π΄ΠΊΠ° / Debug - процСсс обнаруТСния ΠΈ устранСния ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° сообщСний ΠΈΠ»ΠΈ инструмСнтов: ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°, дСкомпилятора, систСм ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° рСсурсов ΠΈ логирования, систСм Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ тСстирования.
  • ЦП / CPU - Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ процСссор / central processing unit - устройство, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ инструкции.
  • АЛУ / ALU - Π±Π»ΠΎΠΊ ЦП, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ арифмСтичСскиС ΠΈ логичСскиС прСобразования Π½Π°Π΄ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌΠΈ словами, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ Ρ†Π΅Π»Ρ‹Π΅ числа, числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, адрСсами памяти, строками, логичСскими Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ.
  • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ / Component - нСсколько ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, классов, ΠΌΠΎΠ½Π°Π΄, Ρ‚ΠΈΠΏΠΎΠ²) ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΡƒ.
  • ΠœΠΎΠ΄ΡƒΠ»ΡŒ / Module - цСлостный, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π½Ρ‹ΠΉ, нСзависимый ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмы ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ имя, интСрфСйс, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.)
    • const compose = (f1, f2) => x => f2(f1(x));
    • const compose = (...funcs) => (...args) => (funcs.reduce((args, fn) => [fn(...args)], args));
  • ЧастичноС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ / Partial application
    • const partial = (fn, x) => (...args) => fn(x, ...args);
  • ΠšΠ°Ρ€Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ / Currying
    • const result = curry((a, b, c) => (a + b + c))(1, 2)(3);
  • ΠŸΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты / Side effects
  • Ѐункция Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка / Higher-order Function
    • Ссли функция Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…, Ρ‚ΠΎ это ΠΊΠΎΠ»Π±Π΅ΠΊ;
    • Ссли функция Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Ρ‚ΠΎ это Ρ„Π°Π±Ρ€ΠΈΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° замыканиях;
    • Ссли возвращаСмая функция ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ смысл, Ρ‡Ρ‚ΠΎ ΠΈ получаСмая Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… (+ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅), Ρ‚ΠΎ это ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°;
    • ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅Π΄ΠΊΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ возвращаСмая функция Π½Π΅ связана с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈΠ· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² (Π½ΠΎ ΠΏΠΎΠΊΠ° Π½ΠΈ ΠΊΡ‚ΠΎ Π½Π΅ нашСл Π²Ρ€Π°Π·ΡƒΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π³Π΄Π΅ это Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ);
    • Ссли Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ класс ΠΈΠ»ΠΈ функция-конструктор, Ρ‚ΠΎ это Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ классов ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² соотвСтствСнно;
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ наслСдованиС / Functional Inheritance - ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠΉ, частичного примСнСния, каррирования, Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… лямбд.
  • ΠžΠ±Π΅Ρ€Ρ‚ΠΊΠ° / Wrapper
    • функция, которая ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ (ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, интСрфСйс ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚), добавляя Π΅ΠΌΡƒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅;
    • ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΉ API интСрфСйс ΠΈ Π΄Π°ΠΆΠ΅ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ вмСстС с ΠΊΠΎΠ»Π±Π΅ΠΊΠ°ΠΌΠΈ (Ссли извСстСн ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚);
  • Π”ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ / Generics
    • ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ - ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ…, Π°Π±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΡƒΡΡΡŒ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².
  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ / Interface
    • Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ) ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ контСкстом ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊ структурам Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области Ρ‚.Π΅. смыслом (API);
    • способ опрСдСлСния (спСцификации) ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ связаны ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹;
    • Набор ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с ΠΈΡ… ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс / Application Interface, API
    • интСрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, слоСв абстракции, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ;
  • Π‘ΠΈΠ½Π³Π»Ρ‚ΠΎΠ½ / Singleton
    • шаблон проСктирования, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ пространствС ΠΈΠΌΠ΅Π½ (процСссС, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…) Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ экзСмпляр класса (ΠΈΠ»ΠΈ просто ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚) ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ (извСстному) ΠΈΠΌΠ΅Π½ΠΈ;
  • Ѐункция ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°, ΠΊΠΎΠ»Π±Π΅ΠΊ / Callback
    • функция пСрСдаваСмая Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ (ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄) для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠΉ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° значСния, ошибки ΠΈΠ»ΠΈ увСдомлСния;
    • Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΡ‹:
  • Π˜Ρ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ / Iteration - ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°Π΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ: элСмСнтами массивов, мноТСств, списков, ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ значСниями ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ»Π°.
  • Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ / Iterator - интСрфСйс доступа ΠΊ элСмСнтам ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ: массива, мноТСства, списка;
  • Π€Π°ΠΉΠ» / File
  • ΠŸΠΎΡ‚ΠΎΠΊ, Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ / Stream, File Stream
  • Π‘ΠΎΠΊΠ΅Ρ‚ / Socket - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс (ΠΈΠ»ΠΈ абстракция) для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами.
  • ДСскриптор / Handle - ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Ρ‡Π°Ρ‰Π΅ всСго ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы): Ρ„Π°ΠΉΠ»Π°, сокСта, ΠΎΠΊΠ½Π°, Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°, соСдинСния ΠΈ Ρ‚.Π΄.
  • БостояниС / State - ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ структур Π΄Π°Π½Π½Ρ‹Ρ…), ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π½ΠΈΠΌ.
  • Кэш / Cache - мСсто Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ хранСния Π΄Π°Π½Π½Ρ‹Ρ… (Π±ΡƒΡ„Π΅Ρ€, коллСкция, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти) для быстрого доступа ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния, вычислСний, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи (ΠΊΠΎΠ³Π΄Π° запись Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° достаточно быстро) ΠΈΠ»ΠΈ ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π² Π±ΡƒΡ„Π΅Ρ€ (ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Ρ‹ с наибольшСй Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ).
  • Π₯ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ / Hashing - ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ (Π±ΡƒΡ„Π΅Ρ€Π°, массива, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ…) Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΠΈΡ‚ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ (Ρ…Π΅Ρˆ) ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ…Π΅Ρˆ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ…ΠΎΡ‚ΡŒ 1 Π±ΠΈΡ‚Π° Π² Π΄Π°Π½Π½Ρ‹Ρ… Ρ…Π΅Ρˆ мСняСтся сущСствСнно).
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½, ΠΊΠ°ΠΊ функция ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.
  • Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€ / Functor - это Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π΅Ρ‰Π΅ ΠΈ рСкурсивным Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅ΠΌ. Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠΈ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ map).
  • Аппликативный Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€ - Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ apply.
  • Монада / Monad - Π°ΠΏΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ chain.
  • ΠœΠ΅ΠΌΠΎΠΈΠ·Π°Ρ†ΠΈΡ / Memoization - ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°, ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‰Π°Ρ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для прСдотвращСния ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… вычислСний.
  • ΠŸΡ€ΠΈΠΌΠ΅ΡΡŒ / Mixin - Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ свойств, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ»ΠΈ повСдСния ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ послС Π΅Π³ΠΎ инстанциирования. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Object.assign(target, { field1, field2 }, { field3 });
  • Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ / Decorator - шаблон оборачивания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для добавлСния Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π΅Π· наслСдования ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ синтаксиса.
  • НаслСдованиС / Inheritance
  • ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС / Multiple Inheritance
  • НСпрямоС наслСдованиС / Indirect Inheritance
  • Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ / Generator
  • Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ / Iterable and Iterator
  • Π’Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ / I/O, Input-output
    • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, выходящиС Π·Π° Ρ€Π°ΠΌΠΊΠΈ CPU ΠΈ RAM (Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΎ-логичСского устройства ΠΈ памяти), Ρ‚.Π΅. ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с устройствами Π²Π²ΠΎΠ΄Π° Π²Ρ‹Π²ΠΎΠ΄Π°: ΡΠ΅Ρ‚ΡŒ, диск, ΠΏΠΎΡ€Ρ‚Ρ‹, консоль (ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΈ экран), Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ устройства (взаимодСйствиС с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π° порядки ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² АЛУ ΠΈ памяти);
  • EventEmitter
    • ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ абстракция для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с событиями Ρ‡Π΅Ρ€Π΅Π· подписку (subscription: addListener, on, once) ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ (emit)
  • Π§Π΅ΠΈΠ½ΠΈΠ½Π³ / Chaining
    • Ρ†Π΅ΠΏΠΎΡ‡Π½Ρ‹ΠΉ синтаксис Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ total(april)(may)(july) ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² array.filter(f1).reduce(f2)
  • БСриализация / Serialization - ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… (Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠΉ Π² памяти) Π² Π±ΠΈΡ‚ΠΎΠ²ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Π°ΠΉΡ‚ΠΎΠ² (бинарная сСриализация) ΠΈΠ»ΠΈ Π² строку (тСкстовая сСриализация).
  • ДСсСриализация / Deserialization - опСрация, обратная сСриализации, Ρ‚.Π΅. восстановлСниС структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΠΈΡ‚ΠΎΠ² (Ρ‡Π°Ρ‰Π΅ Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈΠ»ΠΈ строки).
  • ΠŸΠ°Ρ€ΡΠΈΠ½Π³ / Parsing - синтаксичСский Π°Π½Π°Π»ΠΈΠ· тСкста, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ:
    • для Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ - AST-Π΄Π΅Ρ€Π΅Π²ΠΎ;
    • для слабоструктурированного Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° - структура Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ Ρ‡Π΅Ρ‚ΠΊΡƒΡŽ структуру, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ частично пСрСнСсСны Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· слабой структуры;
    • для Π΄Ρ€ΡƒΠ³ΠΈΡ… СстСствСнных ΠΈΠ»ΠΈ искусствСнных языков - ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅;
  • РСгулярныС выраТСния / Regular Expressions - синтаксичСская конструкция, ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½, Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ порядок парсинга Π΄Ρ€ΡƒΠ³ΠΎΠΉ синтаксичСской конструкции.
  • Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ / Dependency - ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (зависимый) "Π·Π½Π°Π΅Ρ‚" Π΄Ρ€ΡƒΠ³ΠΎΠΉ; это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (рСализация ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ содСрТится Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ) ΠΈΠ»ΠΈ ΠΎΠ½ ΡΠ»ΡƒΡˆΠ°Π΅Ρ‚ событиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΠ½ "Π·Π½Π°Π΅Ρ‚" структуры Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.
  • ДСкомпозиция / Decomposition - Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π° части ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€ΠΈ этом, каТдая Ρ‡Π°ΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈ появится Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, которая опрСдСляСт порядок связи всСх частСй (ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ).
  • Π›Π΅Π½ΠΈΠ²ΠΎΡΡ‚ΡŒ / Lazy
  • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок / Error handling
  • Π€Π°Π±Ρ€ΠΈΠΊΠ° / Factory - функция ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ для инстациирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… абстракций, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, экзСмпляров класса Π² ΠΎΠ±Ρ…ΠΎΠ΄ конструктора ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
  • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠŸΡƒΠ» / Object Pool - ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ инстанциированных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (ΠΈΠ»ΠΈ массивов, сокСтов, Π±ΡƒΡ„Π΅Ρ€ΠΎΠ², структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… абстракций) ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡ… Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ экзСмпляры (вмСсто инстанциирования Π½ΠΎΠ²Ρ‹Ρ…) ΠΈ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… послС использования.
  • Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹ / Timers
  • АдаптСр / Adapter - ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ достиТСния совмСстимости, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ класс, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с нСсовмСстимым ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½.
  • БтратСгия (Strategy) - ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· совмСстимых ΠΈ взаимозамСняСмых классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ), Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±Ρ‰ΠΈΠΉ интСрфСйс. АктуалСн ΠΈ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования.
  • Ѐасад / Facade - ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ для скрытия слоТности. Ѐасад скрываСт нСсколько инстансов Ρ€Π°Π·Π½Ρ‹Ρ… классов Π² своих свойствах (ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ…, Π½ΠΎ для JS этого ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚) ΠΈ прСдоставляСт ΠΎΠ±Ρ‰ΠΈΠΉ (фасадный) интСрфСйс для управлСния ΠΈΠΌΠΈ. Для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π°Π½Π°Π»ΠΎΠ³ фасада - функция ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°, ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ инстансы Π² своСм контСкстС ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ доступ ΠΊ Π½ΠΈΠΌ Ρ‡Π΅Ρ€Π΅Π· Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (с Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅ΠΌ) ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ инстанса (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚ΠΎΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ скрываСмым инстансам Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅).

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹

  • Π›ΠΈΠ½Ρ‚Π΅Ρ€ / Linter - статичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° (Π±Π΅Π· запуска), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ стилистичСскиС, грамматичСскиС ΠΈΠ»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ просто Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ (Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ автоматичСски).
  • БистСма контроля вСрсий
  • ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²
  • НСпрСрывная интСграция
  • ВСстированиС

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

  • Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ»ΠΈ структура / Struct or Record
  • Массив / Array
  • Бписок / List
    • ΠžΠ΄Π½ΠΎΡΠ²ΡΠ·Π½Ρ‹ΠΉ, двусвязный, ΠΊΠΎΠ»ΡŒΡ†Π΅Π²ΠΎΠΉ, Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ список (список массивов)
    • РСализация Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…, массивах ΠΈ замыканиях
    • РСализация Π½Π° синтаксисС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ², классов ΠΈ Ρ„Π°Π±Ρ€ΠΈΠΊ
    • РСализация Π½Π° замыканиях ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…
    • РСализация Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Π΄Π²ΡƒΡ… катСгориях (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ·Π΅Π» ΠΈΠ»ΠΈ список ΠΈ ΡƒΠ·Π΅Π»)
  • Π‘Ρ‚Π΅ΠΊ, ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π΄Π΅ΠΊ
    • Π‘Ρ‚Π΅ΠΊ / Stack - список, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ LIFO;
    • ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ / Queue - список, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ FIFO;
    • Π”Π΅ΠΊ / Dequeue - двухсторонний список, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ стСк ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ;
  • Π”Π΅Ρ€Π΅Π²ΠΎ
  • Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ, поисковоС Π΄Π΅Ρ€Π΅Π²ΠΎ, красно-Ρ‡Π΅Ρ€Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ.
  • ΠšΡƒΡ‡Π° / Heap - дрСвовидная структура Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти для динамичСского распрСдСлСния ΠΏΠΎΠ΄ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….
  • Π“Ρ€Π°Ρ„ / Graph
  • Π‘ΡƒΡ„Π΅Ρ€ / Buffer - ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти для хранСния Π΄Π°Π½Π½Ρ‹Ρ… (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°).
  • Π’ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ массивы
  • ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ / Collection - структура Π΄Π°Π½Π½Ρ‹Ρ…, слуТащая для хранСния Π½Π°Π±ΠΎΡ€Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ доступ ΠΊ Π½ΠΈΠΌ ΠΏΠΎ индСксам ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌ.
  • ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ / Set
    • структура Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π°Ρ матСматичСскоС "мноТСство";
    • структура Π΄Π°Π½Π½Ρ‹Ρ…, слуТащая для хранСния ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ индСксов ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (Π½ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ порядок, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, индСкс Π² массивС, ΠΎΠ΄Π½Π°ΠΊΠΎ, мноТСство абстрагируСт нас ΠΎΡ‚ этой особСнности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ).
  • ΠšΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π₯Сшмап / Map, Key-value

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ понятия

АсинхронноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

  • АсинхронноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ / Asynchronous Programming
  • ΠΠ΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π°Ρ опСрация / Non-blocking I/O
  • АсинхронноС ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ / Asynchronous Iterable
  • Асинхронный ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… / Asynchronous data collector
  • ΠŸΡ€ΠΎΠΌΠΈΡ / Promise
  • Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ / Generator Function
  • Асинхронный Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ / Asynchronous Generator Function
  • Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ / Iterator
  • Асинхронный ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ / Asynchronous Iterator
  • Π˜Ρ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ / Iterable
  • Асинхронная композиция Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ / Asynchronous Function Composition
  • Thenable
  • async/await
  • Асинхронная ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ / Asynchronous Queue
  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ конструктор / Revealing Constructor
  • Π€ΡŒΡŽΡ‡Π΅Ρ€ / Future
  • Π”ΠΈΡ„Π΅Ρ€ / Deferred
  • МодСль Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² / Actor Model
  • ΠΠ°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»ΡŒ / Observer
  • ΠŸΠΎΡ‚ΠΎΠΊ событий / Event stream

ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

  • БостояниС Π³ΠΎΠ½ΠΊΠΈ / Race Condition - состояниС Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмС, ΠΊΠΎΠ³Π΄Π° нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² исполнСния конкурируя Π·Π° ΠΎΠ±Ρ‰ΠΈΠΉ рСсурс портят Π΄Π°Π½Π½Ρ‹Π΅, приводят ΠΊ нСпрСдусмотрСнному порядку исполнСния, Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΈ Ρ‚.Π΄., Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ΅ рСсурсов, нСпрСдсказуСмому ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ повСдСнию, уязвимостям, Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹.
  • Взаимная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° / Deadlock - состояниС Π² многопроцСссовой (распрСдСлСнной) систСмС, ΠΊΠΎΠ³Π΄Π° нСсколько процСссов Π·Π°Ρ…Π²Π°Ρ‚ΠΈΠ»ΠΈ рСсурсы, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°, Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π², Ρ‚Π΅ΠΌ самым Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ.
  • Livelock - зациклСнная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°, бСсконСчно ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π°Ρ состояниС, Π½ΠΎ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.
  • РСсурсный Π³ΠΎΠ»ΠΎΠ΄ / Resource starvation - состояниС Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмС (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ), ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° постоянно Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ доступ ΠΊ рСсурсам (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ раздСляСмым), ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ.
  • ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ сСкция / Critical section - участок исполняСмого ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ производится ΡΠΊΡΠΊΠ»ΡŽΠ·ΠΈΠ²Π½Ρ‹ΠΉ доступ ΠΊ раздСляСмому рСсурсу.
  • ΠŸΠΎΡ‚ΠΎΠΊΠΈ / Threads
    • SharedArrayBuffer
    • worker_threads Π² Node.js
  • АтомарныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ / Atomics
  • Π‘Π΅ΠΌΠ°Ρ„ΠΎΡ€ / Semaphore
  • ΠœΡŒΡŽΡ‚Π΅ΠΊΡ / Mutex

ΠŸΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ программирования