Следующий шаг после освоения основ программирования это изучение идеи составных данных. Этот курс посвящён изучению концепций, позволяющих из простых типов данных составлять более сложные данные, необходимые для решения конкретной задачи и для реализации конкретной программы. На примере разработки простой графической библиотеки мы изучим как «подняться» от уровня простых чисел до уровня двумерных объектов и рисунков.
Чему вы научитесь:
- Создавать код, который легко читать и понимать что он делает
- Научиться создавать удобные абстракции и скрывать внутреннюю реализацию данных
- Определять границу между слоями приложения так, чтобы поддерживать высокий уровень модульности (независимости разных частей) кода
Уроки курса
-
4
Моделирование
Познакомиться с понятием «Моделирование предметной области». -
5
Барьеры абстракции
Познакомиться с понятием барьеров абстракции и лучше понять цель разделения на уровни абстракции и повышения уровня абстракции. -
7
Рациональные числа
Рассмотреть рациональные числа как новый пример абстракции на основе пар чисел.
Испытания
Это практические задания, которые мы советуем выполнить после завершения курса. Задания помогут вам получить дополнительный опыт в программировании и закрепить полученные навыки.
# | Задание | % завершений |
---|---|---|
1 | Пары без функций | 82% |
2 | Тройка | 95% |
3 | Пары на строках | 91% |
Автор
Сооснователь и CEO образовательного проекта Хекслет. Программирую с 2007 года. За это время прошёл путь от разработчика до технического директора и управляющего отдельным подразделением (филиалом). Управлял командами, в которых больше 50 разработчиков.
- Программирую на языках: Elixir, Clojure, JavaScript, PHP, Ruby.
- Соорганизатор конференции Nastachku.ru.
- Вимер.
- Топлю за DevOps и автоматизированные тесты.
Впечатления
Офигенное упражнение! На других ресурсах с первого урока дают массивы и объекты, здесь же треть курса позади и только пары начались, круто :)
Отличное задание. Огромный респект составителям.
OMG. Это гениально и запредельно просто (оказалось после неск. часов). Стоило только час поломать голову, сходить потренироваться, поломать еще час голову и 5 минут ругать себя за невнимательность, ведь всё очевидно. Маленькую подсказку дам в конце топика. Но, друзья, будьте честны с собой, пролистайте ссылку на пройденный когда-то урок (ссылка в списке).
- Благодарность авторам курса за упражнения. Только сейчас я осознал, что такое это всё вот это вот:). Это одно из лучших упражнений, которое встречалось мне на этом курсе. Вот за него просто мегареспект, поскольку оно также и на внимательность.
- Благодарность Voltaire Aurelio за отсылку к пройденному (похоже, пройденному мимо) уроку про объекты первого класса. Когда всплыла в памяти теория, тогда меня и осенило.
Небольшая подсказка: Суть - в начале модуля:
const cons = (x, y) => f => f(x, y);
//Просто напишем это как
const cons = (x, y) => (f) => f(x, y);
Даже не сомневался, что у учителя функция containsTheOrigin будет решена в несколько строк, респект учителям, которые учат, смотря на сложные вещи, видеть простые решения!😜
Согласен. Интересный курс. Как и все на Hexlet. Мне кажется, в последнем упражнении уже можно позволить самим создать cons, car и сdr для закрепления. Хотя, я так понимаю, в дальнейшем мы еще не раз будем это делать...