Программа курса [ Middle в Senior ]
1. Кто такой сеньер, отличия от middle и от lead

  • Технические навыки и качество
  • Способность к самостоятельной работе
  • Взаимодействие в команде
  • Организационные моменты курса

2. Понятия грязного, чистого кода, рефакторинга и архитектуры

  • Понятие компонента, абстракции и уровня абстракции
  • Понятие библиотеки, инструмента
  • Понятие архитектуры приложения
  • Понятие шаблонов проектирования
  • Пример грязного кода
  • Пример чистого кода
  • Понятие unit-тестов и рефакторинга

3. Основы ООП

  • Историческая справка: от мнемокодов к ООП.
  • Класс, поле, метод
  • Инкапсуляция
  • Наследование
  • Полиморфизм
  • Классы как компоненты

4. Процесс превращения кода в ПО

  • Написание кода
  • Что такое программное обеспечение
  • Создание компонент
  • Объединение компонент
  • Unit-тестирование
  • Совместная разработка, git и code review
    • Основы git
    • Pull Request и процесс code review
  • Использование сторонних библиотек
5. Взаимодействие разработчиков в команде

  • Особенности командной работы
  • Коммуникации в команде
  • Code review как способ коммуникаций
  • Ритуалы scrum
  • Распространенные ошибки middle в коммуникациях

6. Работа над проектами

  • Организационные моменты
  • Выбор проекта
    • Тестовый фреймворк
    • Приложение
  • Продумывание структуры проекта
  • Работа над кодом
  • Создаем ПО из кода

7. Принципы написания чистого кода

  • Структура кода
    • Классы как компоненты
    • приложение как набор компонент
  • KISS
  • DRY
  • YAGNI
  • SOLID на примерах
    • О принципах
    • Single Responsibility Principle
    • Open/Closed Principle
    • Liskov Substitution Principle
    • Interface Segregation Principle
    • Dependency Inversion Principle
  • Шаблоны GRASP на примерах
    1. О GRASP
      • Обобщенные
      • Без четких границ и структуры
      • Для чего
      • Обязанности и действия
    2. Creator
    3. Information Expert
    4. Low Coupling
    5. Controller
    6. High Cohesion
    7. Indirection
    8. Polymorphism
    9. Protected Variations
    10. Pure Fabrication
8. Как пользоваться шаблонами проектирования

  • Подход к решению с помощью шаблонов
  • Шаблоны как способ повторного использования решений

9. Порождающие шаблоны проектирования

  • Factory Method
  • Abstract Factory
  • Builder
  • Prototype
  • Singleton
  • Dependency Injection
  • Lazy Initialization
  • Object pool

10. Структурные шаблоны проектирования

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy
  • Aggregate
  • Extensibility
  • Marker
  • Pipes and filters
  • Opaque pointer

11. Поведенческие шаблоны проектирования

  • Chain of Responsibility
  • Command
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template method
  • Visitor
  • Blackboard
  • Interpreter
  • Null object
  • Protocol Stack
  • Scheduled task
  • Single-serving visitor
  • Specification
12. Что такое хорошая архитектура кода

  • Отличия хорошей и плохой архитектуры кода
  • Размывание архитектуры
  • Рефакторинг архитектуры
  • Проблемы поддержания архитектуры

13. Приемы рефакторинга

  • Организация данных
  • Изменение методов
  • Работа с условиями
  • Вывод методов
  • Обобщения и абстракци

15. Презентация проекта

  • Проверка и обсуждение проектов
    [ Записаться на курс ]
    Стоимость курса 2050 BYN / 800$
    (Оплата в белорусских рублях по курсу доллара США, на дату платежа)
    Все права защищены