10 курсов от СЕО «Хекслет» по JavaScript для опытных разработчиков
Глава школы программирования «Хекслет» Кирилл Мокевнин опубликовал в Twitter тред с подборкой полезных курсов по JavaScript для опытных разработчиков. Рассказываем, кому и зачем они пригодятся.
Подписка на курсы «Хекслет» обойдется в 3900 RUB (131 BYN) в месяц.
Содержание
Трек «Тестирование в JS»
«Два курса + проект по тому как тестировать код. Без привязки к фронту, просто общие концепции и смыслы. Цель курсов в обучении практикам бережливого тестирования. Плюс работа с эффектами, моки, стабы, файлы, асинхронность — вот это все».
Трек — это набор курсов по определенной теме для повышения квалификации и развития инженерного мышления. Треки подходят как для разработчиков с опытом, так и для новичков в качестве задания «со звёздочкой».
На занятиях вы изучите основы автоматизированного тестирования, познакомитесь с подходами и принципами написания тестов, напишете свои первые юнит и функциональные тесты, освоите работу с асинхронным кодом, таймерами и ошибками, а также настроите непрерывную интеграцию и измерите покрытие кода тестами.
Трек «СИКП на JS»
В основе трека лежит книга Харольда Абельсона и Джеральда Сассмана «Структура и интерпретация компьютерных программ», выпущенная издательством Массачусетского технологического института в далеком 1985 году. Программа включает 47 текстовых уроков, 70 упражнений в тренажере и 240 проверочных тестов.
Курс «JS: Разработка абстракций для асинхронности»
«Самый сок тут в заданиях. Вам придется писать свою собственную абстракцию для работы с асинхронностью (оборачиваем колбеки). Очень мозгодробительно и больно. Задачки вам будут сниться».
Асинхронное программирование — особенно на колбеках — это целое искусство. Но для упрощения кодинга существуют специальные библиотеки с полезными функциями — их вы сможете освоить в процессе работы над собственной абстракцией.
Курс «JS: Объектно-ориентированный дизайн»
«Курс по ключевым принципам организации кода в объектных языках (там где объекты + методы). Тут есть офигенная тема про связь замыканий с ООП. Немного паттернов builder, proxy, fluent interface. Все это придется реализовать самостоятельно».
На этом курсе вы рассмотрите базовые принципы дизайна ОО-кода и познакомитесь с популярными ООП-библиотеками. Кроме того, вы узнаете, как правильно писать и структурировать код в классовых языках, конфигурировать его в зависимости от задачи, а также создавать удобные интерфейсы объектов для своей предметной области.
Курс «JS: Полиморфизм»
«Как продолжение предыдущего курса. Единственный в своем роде курс по полиморфизму (подтипов в первую очередь). Динамическая диспетчеризация, инверсия зависимостей, композиция вместо наследования и многое другое».
Полиморфизм (подтипов) — главная отличительная черта современного ООП. Он помогает значительно уменьшить количество условных конструкций и сделать код расширяемым. Это большая и глубокая тема, требующая серьезной подготовки. Например, нужно разобраться в шаблонах проектирования и принципах SOLID, которые пригодятся каждому JavaScript-разработчику. Вы научитесь понимать разницу между разными видами полиморфизма, а также распознавать и применять шаблоны проектирования, такие как стратегия, фабрика, состояние, декоратор и нулл-объект.
Курс «JS: Погружаясь в классы»
«Ну и завершает тему ООП курс про глубокое погружение в смысл классов. Все про наследование, различные принципы (привет, Барбара!) и то, как правильно структурировать связи в коде».
Наследование — одна из самых сложных концепций в объектно-ориентированном программировании. Это не только новые синтаксические конструкции, но и особый способ структурирования кода. Говоря о наследовании, нужно понимать его ограничения и применять принцип там, где он наиболее уместен. Курс также разбирает абстрактные классы, принцип подстановки Лисков, паттерн «шаблонный метод» и многое другое.
Курс «JS: Обработка ошибок»
«Курс по обработке ошибок. Сквозь весь курс придется реализовывать свою собственную файловую систему работающую в памяти. Придется покрутить деревьями и сделать кучу рекурсивных ФВП. Задания для любителей поломать мозг».
Этот курс посвящён обработке ошибок в программах на JavaScript. Рассматриваются такие темы, как коды возврата и исключения. В течение курса идёт работа над собственной файловой системой в памяти.
Курс «JS: Архитектура фронтенда»
«Один из моих любимых курсов про ключевые принципы организации кода на фронте. MVC model 1, организация состояния, конечные автоматы, I18n, тестируемость. Все практики без фреймворков — все что вы учите тут, применяется абсолютно к любым толстым клиентам».
Несмотря на обилие различных фреймворков и способов разработки фронтенд приложений, существуют фундаментальные принципы, которые используются повсеместно и практически не меняются. Они касаются разбиения приложения на слои (например, MVC), выделения состояния и его организации, работы с текстами, контроля данных форм. Этот курс рассказывает о том, как строить архитектуру приложения без привязки к конкретным решениям и их особенностям.
На курсе вы научитесь, создавать модульные и легко расширяемые фронтенд-приложения, правильно разделять их на слои и структурировать, а еще использовать теорию автоматов для описания происходящих в коде процессов.
Курс «JS: Прототипы»
«Курс, где надо будет серьезно пожонглировать прототипами. Практика выносит мозг и заставляет потеть».
Этот курс посвящён реализации объектно-ориентированного программирования в JavaScript — прототипам. Он включает 10 уроков (видео и/или текст), 10 упражнений в тренажере и 35 проверочных тестов.
Курс «JS: Предметно-ориентированное проектирование»
«Ну и, наконец, DDD (Предметно-ориентированное программирование). Как проектировать домен, что такое репозитории, зачем нужны сервисы. На эти и многие другие вопросы отвечает этот курс. В практике создается система продажи билетов в кинотеатре».
Курс посвящен процессу создания программных абстракций — моделей предметных областей. На примере онлайн-системы для продажи билетов в кинотеатр вы рассмотрите выделение правильных сущностей и нахождение связей между ними, а также инверсии контроля, принципе инверсии зависимостей и конечных автоматах. А также научитесь использовать ПО-дизайн в своей повседневной практике и правильно строить архитектуру сложных бизнес-приложений, разделяя код на слои в соответствии с шаблоном Service Layer.
Ищем авторов полезных материалов об ИТ. Откликнись на вакансию
Читать на dev.by