Курс про техническое совершенство для нетехнарей

Overview

Technical Excellence 101

Курс про техническое совершенство для нетехнарей.

Этот курс представлят из себя серию воркшопов, при помощи которых можно объяснить смысл основных инженерных практик даже тем, кто в жизни не написал ни одной строчки кода. Это могут быть владельцы продукта, бизнес эксперты, скрам-мастера и любые другие участники команды, которые хотят лучше понимать что такое техническое совершенство и почему ему так много внимания уделяют разработчики. Код — это текст, поэтому мы будем объяснять материал на примере обыкновенного текста. Для прохождения курса не требуется никаких специальных знаний, кроме владения текстовым редактором.

Во время курса вы почувствуете себя разработчиком, столкнетесь с препятствиями, с которыми сталкивается каждый разработчик и поймете как инженерные практики помогают преодолеть эти препятствия.

Курс предлагает определенную последовательность модулей для изучения, которая кажется авторам логичной. Но вы можете изучать модули в любой последовательности.

Какие темы изучаются в курсе?

  • Основные команды git
  • Merge
  • Trunk based development
  • Pull request
  • Unit testing (модульное тестирование)
  • Test-driven development (разработка через тестирование)
  • Code review
  • Парное программирование
  • Continuous Integration (непрерывная интеграция)
  • Continuous Delivery (непрерывная поставка)

Подготовка

  1. Установите Visual Studio Code
  2. Установите git
  3. Проверьте, что git работает
    • Откройте Terminal в MacOS или Git Bash в Windows
    • Выполните команду git --version
    • Если вы увидели вывод git version 2.23.0, значит все в порядке, git установлен. Числа могут быть другими.
  4. Создайте папку, в которой вы будете работать, например Projects
    Windows:
    cd %USERPROFILE%
    mkdir Projects
    cd Projects
    
    MacOS:
    cd ~
    mkdir Projects
    cd Projects
    
  5. Склонируйте репозиторий, выполнив команду
    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
  6. Откройте локальный репозиторий в VS Code
    • Запустите VS Code
    • Откройте папку Projects/technical-excellence-101
      • Меню File -> Open Folder ... или
      • Open ... на главном экране
      • Выберите папку Projects/technical-excellence-101
      • Нажмите Open
    • В левой панельке Explorer вы должны увидеть структуру проекта

Структура курса

Модуль 1. Git

  1. Что такое система управления исходным кодом и какие проблемы она решает
  2. Код = текст
  3. Зачем нужны ветки
  4. Что такое git, github, gitlab, bitbucket
  5. Интерфейс командной строки и VS Code
  6. git clone — клонировать удаленный репозиторий локально
  7. git status — посмотреть статус локального репозитория
  8. git add — добавить измененные файлы в снапшот
  9. git commit — закомитить снапшот
  10. Упражнение. Сохранение изменений в локальном репозитории
  11. git pull — получить изменения из удаленного репозитория в локальный
  12. git push — отправить изменения из локальног репозитория в удаленный
  13. Упражнение. Обмен данными между локальными и удаленным репозиториями

Модуль 2. Ветки, конфликты и TBD

  1. git branch — создать ветку в локальном репозитории
  2. git checkout — переключиться в локальную ветку
  3. Упражнение. Создание, просмотр, переключение веток
  4. Слияние веток
  5. Конфликты и способы их разрешения
  6. git merge — смержить ветку в текущую
  7. Упражнение. Смержить ветку и разрешить конфликты
  8. Trunk Based Development (TBD) — практика разработки в одной ветке
  9. Упражнение. Совместная работа над общим кодом, используя TBD

Модуль 3. Code Review

  1. Упражнение. Диктант
  2. Code Review — практика, помогающая давать обратную связь на код
  3. Правила хорошего Code Review
  4. Pull Request
  5. Упражнение. Создать Pull Request, дать и получить обратную связь, исправить замечания и запушить код в master
  6. Парное программирование как альтернатива Code Review
  7. Упражнение. Исправить диктант в паре

Модуль 4. Автотесты и Test Driven Development

  1. Автотесты
  2. Упражнение. Написать автотест на проверку текста
  3. Пирамида тестирования
  4. Test Driven Development
  5. Упражнение. Написать тест и исправить ошибку в заголовке главы или тексте
  6. Сдвиг влево
  7. Тестировщик vs QA

Модуль 5. Continuous Integration & Continuous Deployment (CI/CD)

  1. Что такое Continuous Integration
  2. Как распознать CI Theatre
  3. CI Do/Don't
  4. Упражнение. Исправить ошибку в заголовке
  5. Continous Delivery и Continuous Deployment
  6. Как устроен Deployment Pipeline
  7. Типичные ошибки построения пайплайна

Модуль 6. Мониторинг и Логирование

  1. Мониторинг
  2. Пример мониторинга
  3. Логирование
  4. Пример логирования
  5. Дебриф

Авторство

Идея курса принадлежит Антону Бевзюку (@bevzuk). В создании курса принимали участие Дарья Баянова, Федор Слесаренко, Арсений Кельдышев, Светлана Кривенко.

You might also like...
Бот - Гуль для твоего телеграм аккаунта
Бот - Гуль для твоего телеграм аккаунта

Я - Гуль (бот), теперь работает в чатах Отблагодарить автора за проделанную работу можно здесь Помощь с установкой тут Установка на Андроид После уста

Inline Телеграм бот для отправки GIF-изображений из ВКонтакте

VK GIFS Bot VKGIFSBot - удобный бот для отправки GIF-изображений из ВКонтакте в Телеграмe. Работает это очень просто: бот получает токен ВКонтакте API

Решения, подсказки, тесты и утилиты для тренировки по алгоритмам от Яндекса.

Решения и подсказки к тренировке по алгоритмам от Яндекса Что есть внутри Решения с подсказками и комментариями; рекомендую сначала смотреть md файл п

Asynchronous wrapper для Gismeteo.ru.

aiopygismeteo Асинхронная обёртка для Gismeteo.ru. Синхронная версия здесь. Установка python -m pip install -U aiopygismeteo Документация https://aiop

Скрипт позволяет выгрузить участников чатов/каналов(по чату для комментариев) и сообщения в различные форматы файлов.

TG-Parser Парсер участников и сообщений из ТГ-Чатов и чатов для комментариев в ТГ-Каналах Возможности Выгрузка участников групп/каналов(по чату для ко

Программа для практической работы №12 по дисциплине

Информатика: программа для практической работы №12 Код и блок-схема программы для практической работы №12 по дисциплине "Информатика" (I семестр). Сут

Набор утилит для Discord с использованием языка программирования Python.

Discord Tools v0.1 Functions: WebHook spamer Spotify account generator (What?) QR Code Token stealer Token generator Discord nitro gen/check Discor to

Генератор отчетов на Python с использованием библиотеки docx для работы с word-файлами и запросов к сервису
Генератор отчетов на Python с использованием библиотеки docx для работы с word-файлами и запросов к сервису

Генератор отчетов на Python с использованием библиотеки docx для работы с word-файлами и запросов к сервису

Заглушки .NET библиотек для IronPython

Код репозитория основан на ironpython-stubs. Выражаю gtalarico бесконечную благодарность за вклад в развитие сообщества разработчиков скриптов и плаги

Бот Telegram для Школы в Капотне (ЦО № 1858)
Бот Telegram для Школы в Капотне (ЦО № 1858)

co1858 Telegram Bot Активно разрабатывался в 2015-2016 году как учебный проект, с целью научиться создавать ботов для Telegram. Бот автоматически парс

Актуальный сборник шаблонов для создания проектов и приложений на Django

О чем этот проект Этот репозиторий с шаблонами для быстрого создания Django проекта. В шаблоне проекта настроены следующий технологий: Django gunicorn

Простенький ботик для троллинга с интерфейсом #Yakima_Visus

Bot-Trolling-Vk Простенький ботик для троллинга с интерфейсом #Yakima_Visus Установка pip install vk_api pip install requests если там еще чото будет

CuraMultiplyByGrid - Cura Плагин для размножения детали сеткой на весь стол автоматически без поворота

CuraMultiplyByGrid Cura Плагин для размножения детали сеткой на весь стол автоматически без поворота. Размножение в куре настолько ужасно реализовано,

Mmr image postbot - Бот для создания изображений с новыми релизами в сообщество ВК MMR Aggregator

Mmr image postbot - Бот для создания изображений с новыми релизами в сообщество ВК MMR Aggregator

Бот для скачивания треков с Deezer используя ISRC и UPC коды

deez_robot Запуск Установите необходимые библиотеки pip install -r requirements.txt Создайте файл config.py и поместите туда токен бота и ARL-токен De

Comments
  • Rectify initial setup steps

    Rectify initial setup steps

    • Выровнял шаги в Windows + Git Bash и MacOS + Terminal
    • Оставил только выкачивание через https (для новичков должно быть достаточно, но в Win адская процедура логина - может, сразу переезжать на SSH?)
    • Добавил отличающееся название кнопки выбора папки в VS Code в Win
    opened by sergeyleonov 0
  • Added a couple of fun pics

    Added a couple of fun pics

    • Думала добавить ещё график cost of defect - сколько стоит исправить дефект на каком этапе, но не уверена какие картинки можно добавлять с какими авторскими правами
    opened by skrivenko 0
  • Ошибка в failure rate в таблице DORA metrics

    Ошибка в failure rate в таблице DORA metrics

    В таблице https://github.com/bevzuk/technical-excellence-101/blob/master/Unit%205.%20CICD/Images/DORA%20metrics.png ошибка в строке change failure rate. Предположу, что там должна была быть прогрессия 0-15%, 16-30%, 31-45%, 46-60%

    opened by daldunin 3
  • Более точная ссылка на инструкции

    Более точная ссылка на инструкции

    Перед занятием вы должны устаносить VS Code, git и склонировать репозиторий. Инструкция тут.

    Предлагаю заменить на более точную ссылку: https://github.com/bevzuk/technical-excellence-101/blob/master/README.md#%D0%BF%D0%BE%D0%B4%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BA%D0%B0

    opened by alxndr-bnd 0
Owner
Anton Bevzuk
Anton Bevzuk
Программа для практической работы №12 по дисциплине

Информатика: программа для практической работы №12 Код и блок-схема программы для практической работы №12 по дисциплине "Информатика" (I семестр). Сут

Vladislav 1 Dec 7, 2021
Генератор отчетов на Python с использованием библиотеки docx для работы с word-файлами и запросов к сервису

Генератор отчетов на Python с использованием библиотеки docx для работы с word-файлами и запросов к сервису

Semyon Esaev 2 Jun 24, 2022
Заглушки .NET библиотек для IronPython

Код репозитория основан на ironpython-stubs. Выражаю gtalarico бесконечную благодарность за вклад в развитие сообщества разработчиков скриптов и плаги

null 12 Nov 23, 2022
Простенький ботик для троллинга с интерфейсом #Yakima_Visus

Bot-Trolling-Vk Простенький ботик для троллинга с интерфейсом #Yakima_Visus Установка pip install vk_api pip install requests если там еще чото будет

Yakima Visus 4 Oct 11, 2022
CuraMultiplyByGrid - Cura Плагин для размножения детали сеткой на весь стол автоматически без поворота

CuraMultiplyByGrid Cura Плагин для размножения детали сеткой на весь стол автоматически без поворота. Размножение в куре настолько ужасно реализовано,

null 3 Dec 2, 2022
Mmr image postbot - Бот для создания изображений с новыми релизами в сообщество ВК MMR Aggregator

Mmr image postbot - Бот для создания изображений с новыми релизами в сообщество ВК MMR Aggregator

Max 3 Jan 7, 2022
Модуль для создания скриптов для ВКонтакте | vk.com API wrapper

vk_api vk_api – Python модуль для создания скриптов для ВКонтакте (vk.com API wrapper) Документация Примеры Чат в Telegram Документация по методам API

Kirill 1.2k Jan 4, 2023
Обертка для мини-игры "рабы" на python

Slaves API Библиотека для игры Рабы на Python. Большая просьба Поставьте звездочку на репозиторий. Это много для меня значит. Версии Т.к. разработчики

Zdorov Philipp 13 Mar 31, 2021
Бот для мини-игры "Рабы" ("Рабство") ВКонтакте.

vk-slaves-bot Бот для мини-игры "Рабы" ("Рабство") ВК Группа в ВК, в ней публикуются новости и другая полезная информация. У группы есть беседа, в кот

Almaz 80 Dec 17, 2022
ВКонтакте бот для управления Sugar кошельком

Sugarchain VK ВКонтакте бот для управления Sugar кошельком Установка Установить зависимости можно командой: pip install -r requirements.txt Запуск (из

Vladimir 4 Jun 6, 2021