Slide 1

Slide 1 text

Как мы пишем нормальный код в аутсорсе Фёдор Борщёв «Федя и Самат» fedorandsamat.com t.me/pmdaily

Slide 2

Slide 2 text

аутсорс поднимите руку, если это вы Посмотрим, кто здесь собрался

Slide 3

Slide 3 text

аутсорс инхаус поднимите руку, если это вы Посмотрим, кто здесь собрался

Slide 4

Slide 4 text

Аутсорсеры делают

Slide 5

Slide 5 text

набрать джунов и продать их по часам Аутсорсеры делают ?

Slide 6

Slide 6 text

максимально эффективный отдел разработки набрать джунов и продать их по часам

Slide 7

Slide 7 text

Фёдор Борщёв Федя и Самат

Slide 8

Slide 8 text

Как настроить хороший аутсорс? правила и принципы переиспользовать 1

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

как обычно переиспользовать 1 на новом проекте библиотека не работает!

Slide 11

Slide 11 text

как обычно переиспользовать: не бизнес-логика, а технические части 1 копируем бизнес-логику как надо автоматизируем процессы разработки технические части

Slide 12

Slide 12 text

технические части каркасы проектов переиспользовать: не бизнес-логика, а технические части 1

Slide 13

Slide 13 text

технические части каркасы проектов сервисы (imgproxy, pg_datanymizer) переиспользовать: не бизнес-логика, а технические части 1

Slide 14

Slide 14 text

технические части каркасы проектов сервисы (imgproxy, pg_datanymizer) devops-пайплайны переиспользовать: не бизнес-логика, а технические части 1

Slide 15

Slide 15 text

технические части каркасы проектов сервисы (imgproxy, pg_datanymizer) devops-пайплайны DX переиспользуемость: не бизнес-логика, а технические части 1

Slide 16

Slide 16 text

DX 2 недели разбираемся начинаем работать инхаус

Slide 17

Slide 17 text

DX 2 недели разбираемся начинаем работать 2 недели никто не платит начинают платить инхаус аутсорс

Slide 18

Slide 18 text

DX не платят начинают платить аутсорс make/invoke на все сценарии использования

Slide 19

Slide 19 text

DX не платят начинают платить аутсорс make/invoke на все сценарии использования docker compose up: стейджинг в один шаг

Slide 20

Slide 20 text

DX не платят начинают платить аутсорс make/invoke на все сценарии использования docker compose up: стейджинг в один шаг CI, который это проверяет

Slide 21

Slide 21 text

Как настроить хороший аутсорс? правила и принципы переиспользовать, но не бизнес-логику, а технические части + DX 1

Slide 22

Slide 22 text

Как настроить хороший аутсорс? правила и принципы переиспользовать, но не бизнес-логику, а технические части + DX 1 стандарты 2

Slide 23

Slide 23 text

200 кб документ со стандартами кодирования инхаус

Slide 24

Slide 24 text

200 кб документ со стандартами кодирования инхаус аутсорс забьют или потеряют

Slide 25

Slide 25 text

забьют или потеряют все стандарты регламентируем в коде Расстановка запятых, кавычки, переносы строк — black, autoflake

Slide 26

Slide 26 text

забьют или потеряют все стандарты регламентируем в коде Расстановка запятых, кавычки, переносы строк — black, autoflake mypy (не забыть сделать жёстким)

Slide 27

Slide 27 text

забьют или потеряют все стандарты регламентируем в коде Расстановка запятых, кавычки, переносы строк — black, autoflake mypy (не забыть сделать жёстким) Более сложные требования к коду — flake8/ruff plugins

Slide 28

Slide 28 text

забьют или потеряют все стандарты регламентируем в коде Расстановка запятых, кавычки, переносы строк — black, autoflake mypy (не забыть сделать жёстким) Более сложные требования к коду — flake8/ruff plugins Требования к тестам — flake8-pytest, flake8-aaa, pytest-randomly, pytest-deadfixtures

Slide 29

Slide 29 text

забьют или потеряют все стандарты регламентируем в коде Расстановка запятых, кавычки, переносы строк — black, autoflake mypy (не забыть сделать жёстким) Более сложные требования к коду — flake8/ruff plugins Требования к тестам — flake8-pytest, flake8-aaa, pytest-randomly, pytest-deadfixtures wemake.services: styleguide, django-template

Slide 30

Slide 30 text

Как настроить хороший аутсорс? правила и принципы переиспользовать, но не бизнес-логику, а технические части + DX 1 жёсткие стандарты 2

Slide 31

Slide 31 text

Как настроить хороший аутсорс? правила и принципы переиспользовать, но не бизнес-логику, а технические части + DX 1 жёсткие стандарты 2 взаимодействие с основной командой 3

Slide 32

Slide 32 text

инхаус аутсорс давайте договоримся

Slide 33

Slide 33 text

инхаус аутсорс давайте договоримся вы нам не нравитесь

Slide 34

Slide 34 text

взаимодействие с основной командой: не встраиваться, а правильно изолировать 3

Slide 35

Slide 35 text

взаимодействие с основной командой: не встраиваться, а правильно изолироваться 3 наш код – отдельный сервис

Slide 36

Slide 36 text

взаимодействие с основной командой: event driven architecture 3 наш код – отдельный сервис взаимодействие через RabbitMQ

Slide 37

Slide 37 text

взаимодействие с основной командой: event driven architecture 3 наш код – отдельный сервис взаимодействие через RabbitMQ Если сложно делать события — CDC

Slide 38

Slide 38 text

взаимодействие с основной командой: event driven architecture 3 границы сервисов – бизнес, а не технологии

Slide 39

Slide 39 text

переиспользовать, но не бизнес-логику, а технические части + DX 1 жёсткие стандарты 2 Не пытаться встроиться в чужую команду 3

Slide 40

Slide 40 text

Как мы пишем нормальный код в аутсорсе Фёдор Борщёв «Федя и Самат» fedorandsamat.com t.me/pmdaily