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