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>