Coursera предлагает прекрасный курс по Scala, в котором мне
посчастливилось поучаствовать.
Курс длится 7 недель. Каждая неделя состоит с 1,5-часовых лекций и задания, на которое уходит от часа до пяти. Итак, поделюсь личным опытом…
Курс длится 7 недель. Каждая неделя состоит с 1,5-часовых лекций и задания, на которое уходит от часа до пяти. Итак, поделюсь личным опытом…
Стоило ли записываться на курс? Несомненно. Если вы не
являетесь профи в Scala и функциональном программировании, то обязательно
получите полезные навыки - в первую очередь глубокое понимание парадигмы
функционального программирования.
Я помню, как давным-давно начал изучать
объектно-ориентированное программирование и, как все новички, думал, что
разбираюсь в нем, если понимаю суть полиморфизма, наследования и инкапсуляции и
могу вспомнить названия нескольких шаблонов проектирования.
Прошло немало времени, пока я осознал разницу между хорошими
и плохими абстракциями и как на первый взгляд безвредные зависимости могут
существенно увеличить программную энтропию в проекте.
Подобным образом, многим может показаться, что
функциональное программирование - это функциональные литералы, функции второго
порядка, внутренние функции и замкнутые выражения.
Следует отметить, что этот курс делает акцент на важности
разумного использования рекурсии в ФП. Прежде я не слишком задумывался о данном
аспекте. Рекурсия играет решающую роль в ФП, потому что неизменяемое состояние
играет решающую роль в ФП.
Чему еще я научился?
- Ключевые термины - четкое различие между применением функции и типом функции.
- Левая ассоциация для применения функции и правая - для типа функции.
- Передавать функции анонимно - следует лишь изредка использовать оператор def для функций, которые передаются.
- Искусство DRY (“Не повторяйся”). Функции должны быть короткими.
- Решающая роль соответствия шаблону, особенно при использовании рекурсии.
- Потоки - ленивые списки и потенциал запоминания.
В общем, отличный курс.
Комментариев нет:
Отправить комментарий