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

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). В создании курса принимали участие Дарья Баянова, Федор Слесаренко, Арсений Кельдышев, Светлана Кривенко.

Owner
Anton Bevzuk
Anton Bevzuk
Movie recommend community

README 0. 초록 1) 목적 사용자의 Needs를 기반으로 영화를 추천해주는 커뮤니티 서비스 구현 2) p!ck 서비스란? "pick your taste!" 취향대로 영화 플레이리스트(이하 서비스 내에서의 명칭인 '바스켓'이라 함)를 만들고, 비슷한 취향을 가진

2 Dec 08, 2021
A module to prevent invites and joins to Matrix rooms by checking the involved server(s)' domain.

Synapse Domain Rule Checker A module to prevent invites and joins to Matrix rooms by checking the involved server(s)' domain. Installation From the vi

matrix.org 4 Oct 24, 2022
A simplified python interface to COPASI.

BasiCO This project hosts a simplified python interface to COPASI. While all functionality from COPASI is exposed via automatically generated SWIG wra

COPASI 8 Dec 21, 2022
Hook and simulate global keyboard events on Windows and Linux.

keyboard Take full control of your keyboard with this small Python library. Hook global events, register hotkeys, simulate key presses and much more.

BoppreH 3.2k Jan 01, 2023
An AI-powered device to stop people from stealing my packages.

Package Theft Prevention Device An AI-powered device to stop people from stealing my packages. Installation To install on a raspberry pi, clone the re

rydercalmdown 157 Nov 24, 2022
Digitales Raumbuch

Helios Digitales Raumbuch Settings Moved to settings. Basic Commands Setting Up Your Users To create a normal user account, just go to Sign Up and fil

1 Nov 19, 2021
Uma moeda simples e segura!

SecCoin - Documentação A SecCoin foi criada com intuito de ser uma moeda segura, de fácil investimento e mineração. A Criptomoeda está na sua primeira

Sec-Coin Team 5 Dec 09, 2022
Nimbus - Open Source Cloud Computing Software - 100% Apache2 licensed

⚠️ The Nimbus infrastructure project is no longer under development. ⚠️ For more information, please read the news announcement. If you are interested

Nimbus 194 Jun 30, 2022
Canim1 - Simple python tool to search for packages without m1 wheels in poetry lockfiles

canim1 Usage Clone the repo. Run poetry install. Then you can use the tool: ❯ po

Korijn van Golen 1 Jan 25, 2022
Runtime inspection utilities for Python typing module

Typing Inspect The typing_inspect module defines experimental API for runtime inspection of types defined in the Python standard typing module. Works

Ivan Levkivskyi 284 Dec 29, 2022
Adds a Bake node to Blender's shader node system

Bake to Target This Blender Addon adds a new shader node type capable of reducing the texture-bake step to a single button press. Please note that thi

Thomas 8 Oct 04, 2022
Python Freecell Solver

freecell Python Freecell Solver Very early version right now. You can pick a board by changing the file path in freecell.py If you want to play a game

Ben Kaufman 1 Nov 26, 2021
Automation in socks label validation

This is a project for socks card label validation where the socks card is validated comparing with the correct socks card whose coordinates are stored in the database. When the test socks card is com

1 Jan 19, 2022
🌌A Python library to exhaustively enumerate a combinatorial space represented by a function

exhaust A Python library to exhaustively enumerate a combinatorial space represented by a function. The API is modelled after Python's random module a

Maik Riechert 1 Dec 05, 2021
Open slidebook .sldy files in Python

Work in progress slidebook-python Open slidebook .sldy files in Python To install slidebook-python requires Python = 3.9 pip install slidebook-python

The Institute of Cancer Research 2 May 04, 2022
Box CRUD API With Python

Box CRUD API: Consider a store which has an inventory of boxes which are all cuboid(which have length breadth and height). Each Cuboid has been added

Akhil Bhalerao 3 Feb 17, 2022
Module 2's katas from Launch X's python introduction course.

Module2Katas Module 2's katas from Launch X's python introduction course. Virtual environment creation process (on Windows): Create a folder in any de

Javier Méndez 1 Feb 10, 2022
TimeWizard - A script that generates every single Time Wizard EDOPRO lflist possible

EDOPRO F&L list generator This project is just a script that generates every sin

Diamond Dude 2 Sep 28, 2022
Automatic and platform-independent unpacker for Windows binaries based on emulation

_ _ __ _ __ _ | | | | / / (_) \ \ | | | | | |_ __ | | _ | | _ __ __ _ ___| | _____ _ __

514 Dec 21, 2022
Anki Cards for the HSK vocabulary Chinese-German

Anki-HanyuShuipingKaoshi Anki Cards for the HSK vocabulary Chinese-German Das Deck baut auf folgenden Quellen auf: China Endecken Wortschatz von wohok

1 Jan 07, 2022