Современная веб-разработка
Египетский рынок разработки программного обеспечения страдает от нехватки талантливых специалистов по сравнению с международным рынком. В этом курсе мы рассмотрим новейшие практики разработки стабильного программного обеспечения, архитектуру проектов, шаблоны проектирования и технологии в области веб-разработки.
Этот курс предназначен для тех, кто намерен продолжить карьеру в области разработки программного обеспечения или хочет создать недорогой MVP для стартапа. После этого курса вы должны быть знакомы с текущим состоянием техники и способны принимать обоснованные решения относительно вашего стека разработки.
Структура этого курса во многом мотивирована тем, что начинающий разработчик начинает с внедрения фреймворков и использования библиотек, не задумываясь критически о том, подходит ли этот инструмент для работы.
Ход курса
- Этот курс будет состоять из 13 занятий.
- Каждое занятие будет состоять из двух частей: упражнений и обсуждения.
- Во время занятий вы будете решать курсовое задание.
- В ходе обсуждения мы обсудим следующее задание.
- Все обсуждаемые концепции зафиксированы в заданиях.
- Я буду объяснять непонятные понятия.
- После каждого занятия я буду обновлять материал курса в зависимости от нашего прогресса.
- Каждое задание стоит 10%, потому что мне нужно за что-то вас поставить.
- Оценки выставляются по завершении (я считаю его завершенным).
- Задания оцениваются во время занятий.
- Оценки могут быть частичными в зависимости от уровня завершения.
- Рассматриваются 10 лучших заданий
- Желательно прочитать или начать решать задание перед занятием.
- Если вы не в состоянии выполнить задание, вам может быть предоставлено разрешение выполнить его до следующего интервала упражнений.
- Первая сессия представляет собой только дискуссионную сессию.
- Последний сеанс предназначен только для выполнения заданий.
- Мы все должны съесть пиццу в конце курса.
Вам понадобится
- Ноутбук с оболочкой bash (ОС на базе Unix или Windows 10 с терминалом Ubuntu)
- Современный браузер, например последняя версия Google Chrome.
- Интернет
- NodeJS
- Гит
- Текстовый редактор, например Atom
Сессии курса
В этом курсе мы познакомим
1. История веб-приложений
На этом занятии мы поговорим о существующем ландшафте того, чему может научиться разработчик, и о том, что мы рассмотрим в ходе этого курса.
- Установление ожиданий от курса.
- Проблемы, которые мы будем решать.
- История веб-приложения.
- Настройка проекта ES6 с помощью Babel и узла
- Веб-пакет
Задание на следующий раз
- Создайте простое веб-приложение без каких-либо библиотек.
- Основные проблемы, с которыми мы сталкиваемся
- Разбить код на отдельные файлы
- ООССС и БЭМ
2. Жизнь современного приложения: данные отображают представление
На этом занятии мы начнем с обзора основных функций Javascript и рассмотрим концепции функционального программирования.
- Флексбокс
- Строки шаблона функций es6
- компоненты, отображающие данные в html
Задание на следующий раз
- Полный код рендеринга в HTML
3. Жизнь современного приложения: действия по обновлению данных
- DOM-события
- Обзор нашего кода
- Программирование на основе событий с использованием шаблона наблюдателя
Задание на следующий раз
- Архитектура Flux (данные вниз, действие вверх)
4. Жизнь современного приложения: тестирование
- Модульное тестирование HTML-рендеринга
- Чистые функции
- Государственный магазин
- Моки и заглушки
- Внедрение зависимостей
Задание на следующий раз
- Тестирование наших функций рендеринга
- Тестируем наши диспетчеры действий
- Тестируем наши действия по мутации магазина
5. Жизнь современного приложения: представления вызывают события
- NodeJS: модули
- инструменты сборки: gulp
- рендеринг виртуального дома
- запускаем наше тестовое задание
- просмотреть в браузере
Задание на следующий раз
- Разработайте новый вид задачи, называемый счетчиком.
- элементы задач теперь можно редактировать
6. Жизнь современного приложения: асинхронный код
- Цикл событий Javascript
- Обещания с извлечением
- Создание простого REST-сервера с помощью Express
- Розетки
- Асинхронный
- Реактивное программирование
7. Непрерывная интеграция и развертывание
- Интерфейс со страницами Git * Сопротивление Git * Развертывание вашего кода на GitHub с помощью CI * SSH с Nginx и давайте зашифруем
- Бэкэнд с Capistrano (полет узла) * Развертывание на сервере с помощью ssh * Автоматизация с помощью CI принятия нашего запроса на извлечение git * Использование плана полета для развертывания
8. Все, что нужно для MVP
- Огневая база * *
- Тестирование с помощью Firebase * *
8. Архитектура для крупных приложений: проблемы
- Реагировать * *
- Прогрессивные веб-приложения * *
9. Архитектура для крупных приложений: фреймворки
- Реагировать * *
- ГрафQL * *
10. Реагировать на собственный скрипт
- Настраивать * *
- Push-уведомление *
11. Экстра за потерянное время
- Электрон * *
12. Экстра за потерянное время
Примечания
- Используйте список часто задаваемых вопросов
#Курс