HTML Diff
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>