Актуальные Возможности JavaScript
Мы рассмотрим основные возможности современного и традиционного JavaScript, стандарт EcmaScript 6+, Templates, асинхронные паттерны Promise, Async Await, переменные, замыкания, функции, наследование и классы. Разберем особенности браузерного API и спецификаций Web Components на примере библиотеки Lit-HTML. Обсудим главные принципы и возможности Node.js, а также NPM для управления зависимостями и автоматизации задач. Мы научимся использовать Test-Driven Development при решении практических задач
Тема 1: Введение в курс: знакомство с программой, командой курса
Тема 2: Новинки стандарта
Тема 3: Асинхронные паттерны
Тема 4: Введение в Node.js и NPM
Тема 5: Функциональное программирование
Тема 6: Работа с браузером
Тема 7: Web Components
Тема 8: Bulid tools: Vite, Webpack, Rollup
Node.js
Этот модуль о серверной среде JavaScript. Мы разберем ключевые особенности Node.js - EventLoop, модули и потоки. Мы научимся строить API, используя фреймворк Express, подходы REST и GraphQL. Поговорим о WebAssembly и общих практиках при работе с процессами и ошибками. В конце мы подведем резюме стэка технологий Node.js
Тема 1: Основные концепции Node - Modules
Тема 2: Стандартная библиотека Node - EventLoop - Timers
Тема 3: Работка с потоками - Streams
Тема 4: HTTP Server
Тема 5: Web-сервер с Express
Тема 6: Построение Rest API с Express
Тема 7: Введение в TypeScript
Тема 8: Особенности TypeScript
Тема 9: Web-сервер с Nest.js
Тема 10: Введение в язык SQL, PostgreSQL
Тема 11: Работа с PostgreSQL и TypeORM
Тема 12: Node.js и Docker
Тема 13: Сборка и деплой проекта, CI/CD
Vue.js
В этом модуле мы сосредоточимся на Vue - современном и популярном FrontEnd фреймворке. Мы рассмотрим особенности шаблонизации и создания динамических приложений на Vue. Разберем возможности и жизненный цикл компонент, хранения состояния. Изучим инструменты Vuex и Vue CLI. Будем настраивать и оптимизировать сборку приложений с Server-Side Rendering.
Тема 1: Основы Vue3
Тема 2: Компоненты и шаблоны
Тема 3: Управление компонентами
Тема 4: Состояние приложения - Vuex и Pinia
Тема 5: Routing
Тема 6: Advanced Vue
Angular
Подробно изучим язык TypeScript и преимущества его использования. Разберем паттерн проектирования Observable на базе библиотеки RxJS. Научимся работать с фреймворком Angular - создавать компоненты и формы, управлять Routing, использовать Dependency Injection для сервисов, а также тестировать и собирать приложения с помощью Webpack
Тема 1: Введение в Angular
Тема 2: Компоненты и директивы
Тема 3: Создание и управление формами в Angular
Тема 4: Observables - RxJS
Тема 5: Сервисы и состояние приложения
Тема 6: Routing, тестирование и сборка в Angular
React.js
Мы подробно изучим стэк технологий React. Рассмотрим особенности синтаксической шаблонизации JSX, особенности передачи данных и хранения состояния с помощью state и props. Разберем свойства компонентного подхода для декомпозиции React приложений, жизненный цикл и типы компонент, например, High-Order Components. Изучим шаблон проектирования Flux и его реализацию на примере библиотеки Redux. Будем настраивать и оптимизировать приложения с Server-Side Rendering
Тема 1: Обзор React
Тема 2: Hooks в React
Тема 3: Higher-Order Components, Custom Hooks и другие паттерны React
Тема 4: Состояние приложения с Redux и Mobx
Тема 5: Routing в React - Оптимизация приложения
Аспекты архитектуры FrontEnd приложений
В этом блоке мы рассматриваем паттерны разработки и архитектуры FrontEnd приложений. Обсудим технологии входящие в Progressive Web Apps; преимущества и недостатки, и практические аспекты сервер сайд рендеринга. Поговорим о Svelte как альтернативе стандартным FrontEnd фреймворкам.
Тема 1: Инструменты и технологии JS тестирования, BDD (Behavior-Driven Development)
Тема 2: Service Workers и PWA
Тема 3: Архитектура фронтенд приложений - микрофронтенды
Тема 4: Современные рендеринг фреймворки и аспекты SSR
Тема 5: Альтернатива большим фреймворкам - Обзор SvelteJS
Проектная работа
Заключительный месяц курса посвящен проектной работе. Это то, чем интересно заниматься студенту на базе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей. Проект должен стать примером кода, который можно показывать потенциальным работодателям.
Тема 1: Вводное занятие по проектной работе. Обзор пройденных фреймворков и технологий
Тема 2: Карьерная консультация
Тема 3: Защита проектных работ