Technical Excellence 101
Курс про техническое совершенство для нетехнарей.
Этот курс представлят из себя серию воркшопов, при помощи которых можно объяснить смысл основных инженерных практик даже тем, кто в жизни не написал ни одной строчки кода. Это могут быть владельцы продукта, бизнес эксперты, скрам-мастера и любые другие участники команды, которые хотят лучше понимать что такое техническое совершенство и почему ему так много внимания уделяют разработчики. Код — это текст, поэтому мы будем объяснять материал на примере обыкновенного текста. Для прохождения курса не требуется никаких специальных знаний, кроме владения текстовым редактором.
Во время курса вы почувствуете себя разработчиком, столкнетесь с препятствиями, с которыми сталкивается каждый разработчик и поймете как инженерные практики помогают преодолеть эти препятствия.
Курс предлагает определенную последовательность модулей для изучения, которая кажется авторам логичной. Но вы можете изучать модули в любой последовательности.
Какие темы изучаются в курсе?
- Основные команды git
- Merge
- Trunk based development
- Pull request
- Unit testing (модульное тестирование)
- Test-driven development (разработка через тестирование)
- Code review
- Парное программирование
- Continuous Integration (непрерывная интеграция)
- Continuous Delivery (непрерывная поставка)
Подготовка
- Установите Visual Studio Code
- Установите git
- Проверьте, что git работает
- Откройте Terminal в MacOS или Git Bash в Windows
- Выполните команду
git --version
- Если вы увидели вывод
git version 2.23.0
, значит все в порядке, git установлен. Числа могут быть другими.
- Создайте папку, в которой вы будете работать, например
Projects
Windows:cd %USERPROFILE% mkdir Projects cd Projects
cd ~ mkdir Projects cd Projects
- Склонируйте репозиторий, выполнив команду
git clone https://github.com/bevzuk/technical-excellence-101.git
или (если у вас добавлен SSH сертификат)
git clone [email protected]:bevzuk/technical-excellence-101.git
или (если у вас установлен GitHub CLI)
gh repo clone bevzuk/technical-excellence-101
- Откройте локальный репозиторий в VS Code
Структура курса
Модуль 1. Git
- Что такое система управления исходным кодом и какие проблемы она решает
- Код = текст
- Зачем нужны ветки
- Что такое git, github, gitlab, bitbucket
- Интерфейс командной строки и VS Code
- git clone — клонировать удаленный репозиторий локально
- git status — посмотреть статус локального репозитория
- git add — добавить измененные файлы в снапшот
- git commit — закомитить снапшот
- Упражнение. Сохранение изменений в локальном репозитории
- git pull — получить изменения из удаленного репозитория в локальный
- git push — отправить изменения из локальног репозитория в удаленный
- Упражнение. Обмен данными между локальными и удаленным репозиториями
Модуль 2. Ветки, конфликты и TBD
- git branch — создать ветку в локальном репозитории
- git checkout — переключиться в локальную ветку
- Упражнение. Создание, просмотр, переключение веток
- Слияние веток
- Конфликты и способы их разрешения
- git merge — смержить ветку в текущую
- Упражнение. Смержить ветку и разрешить конфликты
- Trunk Based Development (TBD) — практика разработки в одной ветке
- Упражнение. Совместная работа над общим кодом, используя TBD
Модуль 3. Code Review
- Упражнение. Диктант
- Code Review — практика, помогающая давать обратную связь на код
- Правила хорошего Code Review
- Pull Request
- Упражнение. Создать Pull Request, дать и получить обратную связь, исправить замечания и запушить код в master
- Парное программирование как альтернатива Code Review
- Упражнение. Исправить диктант в паре
Модуль 4. Автотесты и Test Driven Development
- Автотесты
- Упражнение. Написать автотест на проверку текста
- Пирамида тестирования
- Test Driven Development
- Упражнение. Написать тест и исправить ошибку в заголовке главы или тексте
- Сдвиг влево
- Тестировщик vs QA
Модуль 5. Continuous Integration & Continuous Deployment (CI/CD)
- Что такое Continuous Integration
- Как распознать CI Theatre
- CI Do/Don't
- Упражнение. Исправить ошибку в заголовке
- Continous Delivery и Continuous Deployment
- Как устроен Deployment Pipeline
- Типичные ошибки построения пайплайна
Модуль 6. Мониторинг и Логирование
- Мониторинг
- Пример мониторинга
- Логирование
- Пример логирования
- Дебриф
Авторство
Идея курса принадлежит Антону Бевзюку (@bevzuk). В создании курса принимали участие Дарья Баянова, Федор Слесаренко, Арсений Кельдышев, Светлана Кривенко.