0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Абстракция - основной способ борьбы со сложностью в программировании. Она позволяет уйти от деталей реализации и сосредоточиться на главном. Хороший пример абстракции - функция сортировки списка. Не важно, как она устроена, важно, что она делает то, что нам нужно.</p>
1
<p>Абстракция - основной способ борьбы со сложностью в программировании. Она позволяет уйти от деталей реализации и сосредоточиться на главном. Хороший пример абстракции - функция сортировки списка. Не важно, как она устроена, важно, что она делает то, что нам нужно.</p>
2
<p>Другой пример - функции высших порядков, такие как map и filter. С их помощью можно обрабатывать коллекции и не знать, как они устроены внутри. Причем коллекция необязательно должна быть плоской. Подобные функции можно написать для большого количества сложных структур, например, для деревьев.</p>
2
<p>Другой пример - функции высших порядков, такие как map и filter. С их помощью можно обрабатывать коллекции и не знать, как они устроены внутри. Причем коллекция необязательно должна быть плоской. Подобные функции можно написать для большого количества сложных структур, например, для деревьев.</p>
3
<p>Абстракция с помощью функций помогает сосредоточиться на самой обработке, а не на процессе обхода данных.</p>
3
<p>Абстракция с помощью функций помогает сосредоточиться на самой обработке, а не на процессе обхода данных.</p>
4
<p>Также у самих данных нередко бывает сложная структура. Чтобы представить пользователя в нетривиальной системе, может потребоваться описание десятков и сотен различных параметров и данных, которые связаны с ними. В этой ситуации полезно спрятать сложную структуру за набором функций. Такие функции скрывают внутреннюю сложность и упрощают поддержку кода. Подобное сокрытие деталей реализации и называется<strong>абстракцией с помощью данных</strong>.</p>
4
<p>Также у самих данных нередко бывает сложная структура. Чтобы представить пользователя в нетривиальной системе, может потребоваться описание десятков и сотен различных параметров и данных, которые связаны с ними. В этой ситуации полезно спрятать сложную структуру за набором функций. Такие функции скрывают внутреннюю сложность и упрощают поддержку кода. Подобное сокрытие деталей реализации и называется<strong>абстракцией с помощью данных</strong>.</p>
5
<p>В этом курсе мы познакомимся с базовыми принципами проектирования программ. Мы узнаем, как моделировать и представлять в программе объекты реального и воображаемого мира. Мы создадим библиотеку для работы с графическими примитивами: точками, отрезками, фигурами. Эта библиотека с визуальной стороны будет понятна всем, и просто представляется в коде.</p>
5
<p>В этом курсе мы познакомимся с базовыми принципами проектирования программ. Мы узнаем, как моделировать и представлять в программе объекты реального и воображаемого мира. Мы создадим библиотеку для работы с графическими примитивами: точками, отрезками, фигурами. Эта библиотека с визуальной стороны будет понятна всем, и просто представляется в коде.</p>
6
<h2>Какие темы будем изучать</h2>
6
<h2>Какие темы будем изучать</h2>
7
<p>На этом курсе мы изучим следующие темы:</p>
7
<p>На этом курсе мы изучим следующие темы:</p>
8
<ul><li>Предметная область - Domain Model</li>
8
<ul><li>Предметная область - Domain Model</li>
9
<li>Онтология</li>
9
<li>Онтология</li>
10
<li>Уровни проектирования - барьеры абстракции</li>
10
<li>Уровни проектирования - барьеры абстракции</li>
11
<li>Инвариант</li>
11
<li>Инвариант</li>
12
</ul>
12
</ul>