Если видео недоступно для просмотра, попробуйте выключить блокировщик рекламы.

Абстракция — основной способ борьбы со сложностью в программировании. Она позволяет уйти от деталей реализации и сосредоточиться на главном. Хороший пример абстракции — функция сортировки списка. Не важно, как она устроена, важно, что она делает то, что нам нужно.

Другой пример — функции высших порядков, такие как map и filter, позволяют обрабатывать коллекции без знания их внутреннего устройства. Причём коллекция не обязательно должна быть плоской: подобные функции можно написать для сколь угодно сложных структур, например, для деревьев. Абстракция с помощью функций помогает сосредоточиться на самой обработке, а не на процессе обхода данных.

С другой стороны, сами данные нередко имеют сложную структуру. Представление пользователя в не тривиальной системе может потребовать описания десятков и сотен различных параметров и данных связанных с ними. В этой ситуации полезно спрятать сложную структуру за набором функций. Такие функции скрывают внутреннюю сложность и упрощают поддержку кода. Подобное сокрытие деталей реализации и называется абстракция с помощью данных.

В данном курсе мы познакомимся с некоторыми базовыми принципами проектирования программ. С тем, как моделировать и представлять в программе объекты реального (и воображаемого) мира. Примером для проектирования послужит создание библиотеки для работы с графическими примитивами, такими как точки, отрезки, фигуры. Эта библиотека, с одной стороны, достаточно понятна (в том числе визуально) для всех, с другой — очень просто представляется в коде.

Основные темы этого курса:

  • Предметная область (Domain Model)
  • Онтология
  • Уровни проектирования (барьеры абстракции)
  • Инварианты
Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Node, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →