HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>ООП - тяжело формализуемое понятие, у которого очень много аспектов. В разные времена под ООП понимали и до сих пор понимают разные вещи. Существует как минимум два вида ООП: первый сформулирован Аланом Кеем, создателем языка SmallTalk, и второй - тот, что про полиморфизм, наследование и инкапсуляцию (Гради Буч). В современном мире обычно под ООП имеют в виду второй, хотя первый вид живет и здравствует во многих языках. Но даже когда мы говорим про второй вид ООП, все равно разные языки делают акцент на разные возможности. То, что в одних языках считается признаком настоящего ООП, в других неприемлемо.</p>
1 <p>ООП - тяжело формализуемое понятие, у которого очень много аспектов. В разные времена под ООП понимали и до сих пор понимают разные вещи. Существует как минимум два вида ООП: первый сформулирован Аланом Кеем, создателем языка SmallTalk, и второй - тот, что про полиморфизм, наследование и инкапсуляцию (Гради Буч). В современном мире обычно под ООП имеют в виду второй, хотя первый вид живет и здравствует во многих языках. Но даже когда мы говорим про второй вид ООП, все равно разные языки делают акцент на разные возможности. То, что в одних языках считается признаком настоящего ООП, в других неприемлемо.</p>
2 <p>Если попытаться как-то обобщить и найти самое фундаментальное - то, чем обладают все ООП-языки (по Бучу), то скорее всего общей точкой соприкосновения окажется полиморфизм подтипов.</p>
2 <p>Если попытаться как-то обобщить и найти самое фундаментальное - то, чем обладают все ООП-языки (по Бучу), то скорее всего общей точкой соприкосновения окажется полиморфизм подтипов.</p>
3 <blockquote><p><em>Полиморфизм подтипов, пожалуй, самая важная отличительная черта современного объектно-ориентированного программирования</em>. Бенджамин Пирс. Автор книги "Теория типов в языках программирования"</p>
3 <blockquote><p><em>Полиморфизм подтипов, пожалуй, самая важная отличительная черта современного объектно-ориентированного программирования</em>. Бенджамин Пирс. Автор книги "Теория типов в языках программирования"</p>
4 </blockquote><p>В этом курсе мы подробно рассмотрим полиморфизм, механизмы его реализации и, самое главное, научимся правильно его применять. Основные темы данного курса:</p>
4 </blockquote><p>В этом курсе мы подробно рассмотрим полиморфизм, механизмы его реализации и, самое главное, научимся правильно его применять. Основные темы данного курса:</p>
5 <ul><li>Виды полиморфизма: подтипов и параметрический</li>
5 <ul><li>Виды полиморфизма: подтипов и параметрический</li>
6 <li>Диспетчеризация и ее виды</li>
6 <li>Диспетчеризация и ее виды</li>
7 <li>Инверсия зависимостей, а с ней и инъекция</li>
7 <li>Инверсия зависимостей, а с ней и инъекция</li>
8 <li>DI-контейнер</li>
8 <li>DI-контейнер</li>
9 <li><a>SOLID</a>(SRP, OCP, LSP, ISR, DIP)</li>
9 <li><a>SOLID</a>(SRP, OCP, LSP, ISR, DIP)</li>
10 </ul><p>Кроме того, мы познакомимся с понятием "шаблоны проектирования". Разберем их влияние на структуру кода и познакомимся с некоторыми популярными:</p>
10 </ul><p>Кроме того, мы познакомимся с понятием "шаблоны проектирования". Разберем их влияние на структуру кода и познакомимся с некоторыми популярными:</p>
11 <ul><li>Null Object</li>
11 <ul><li>Null Object</li>
12 <li>Strategy</li>
12 <li>Strategy</li>
13 <li>Factory</li>
13 <li>Factory</li>
14 </ul><p>Поговорим о том, когда полиморфизм необходим, а когда он не нужен или даже вреден. Познакомимся с несколькими техниками, позволяющими получить полиморфное поведение без использования объектов. Для этого рассмотрим различные виды диспетчеризации.</p>
14 </ul><p>Поговорим о том, когда полиморфизм необходим, а когда он не нужен или даже вреден. Познакомимся с несколькими техниками, позволяющими получить полиморфное поведение без использования объектов. Для этого рассмотрим различные виды диспетчеризации.</p>
15 <h2>Как подготовиться к этому курсу</h2>
15 <h2>Как подготовиться к этому курсу</h2>
16 <p>Этот курс предполагает, что студент уже уверенно владеет синтаксисом и методами работы с функциями и объектами, а также имеет базовое представление об ООП в JS. Если у вас возникнут сложности с этими темами, рекомендуем пройти эти курсы на Хекслете:</p>
16 <p>Этот курс предполагает, что студент уже уверенно владеет синтаксисом и методами работы с функциями и объектами, а также имеет базовое представление об ООП в JS. Если у вас возникнут сложности с этими темами, рекомендуем пройти эти курсы на Хекслете:</p>
17 <ul><li><a>Язык программирования JavaScript</a></li>
17 <ul><li><a>Язык программирования JavaScript</a></li>
18 <li><a>JS: Объекты</a></li>
18 <li><a>JS: Объекты</a></li>
19 <li><a>JS: Функции</a></li>
19 <li><a>JS: Функции</a></li>
20 <li><a>JS: Введение в ООП</a></li>
20 <li><a>JS: Введение в ООП</a></li>
21 </ul>
21 </ul>