Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Наедине с техдолгом

Наедине с техдолгом

Общий код без мейнтейнеров, обновление древних зависимостей, новые инструменты разработчика, как получить хэдкаунт на техно, 1000 и 1 встреча со стейкхолдерами. И как выйти победителем из этой ситуации.

Sergei Iakhnitskii

April 13, 2024
Tweet

Other Decks in Programming

Transcript

  1. Обо мне • Сергей Яхницкий @serjflint • 6 лет пишу

    на Python • В Яндекс Такси с 2021 года • Катаю для души (только CI) • Люблю погоду в Питере • Пью ваши слёзы под Reach – The Law 2
  2. О работе › Группа разработки инструментов мотивации › 10+ сервисов

    › Делаем различные платформы с админками › Мотивируем водителей и операторов call-центров › 42,3+ млн пользователей в месяц 6
  3. Роль Python в компании Ключевые направления разработки в компании на

    Python: › Бэкенд › Аналитика и DWH › Машинное обучение › Инструменты, скрипты, автоматизация Важно: если нужно вернуться на предыдущий способ выделения, нужно нажать на клавишу Меньший отступ Как выделить ключевую мысль и сделать списки Выдели текст, зайди на вкладку Главная и нажми клавишу Больший отступ: 1. Один раз, чтобы выделить ключевую мысль Важно: чтобы жёлтая линия не разрывалась, поставь курсор в конце строки и нажми Enter. 2. Два раза, чтобы создать маркированный список в виде стрелочки 3. Три раза, чтобы создать нумерованный список Разрешённые языки программирования 7
  4. Польза монорепы › общий код = простые модификации смежниками ›

    переиспользование уже созданных фич › глобальный рефакторинг › унификация кода › отсутствие экзотики › уменьшение велосипедостроения › больше времени писать уникальные фичи 9
  5. Зло монотыквы › общий код = размытие ответственности › поиск

    уже созданных фич › глобальная поломка тестов › засилье устаревшего кода › долгое обновление зависимостей › уменьшение sanity › больше времени копипастить 10
  6. Варианты • Отнести в DevTools • Нет лишних рук •

    Завал в дежурствах • Полугодовое планирование • Только для Tier 0 16
  7. Варианты • Отнести в DevTools ❌ • Сделай сам •

    Пробовал • Больно • Непонятно • Некому отнести на ревью • Только в личное время 17
  8. Варианты • Отнести в DevTools ❌ • Сделай сам ❌

    • Навести суету ❌ • Собрать свой Team 19
  9. Решение – «Python Core Team» Важно: если нужно вернуться на

    предыдущий способ выделения, нужно нажать на клавишу Меньший отступ Как выделить ключевую мысль и сделать списки Выдели текст, зайди на вкладку Главная и нажми клавишу Больший отступ: 1. Один раз, чтобы выделить ключевую мысль Важно: чтобы жёлтая линия не разрывалась, поставь курсор в конце строки и нажми Enter. 2. Два раза, чтобы создать маркированный список в виде стрелочки 3. Три раза, чтобы создать нумерованный список Целеполагание - разблокировка разработчикам пути в использовании существующих инструментов Организация Часть DevTools Ответственность комитет Python Техлид Сергей Яхницкий Команда 1-2 HC от каждого CTO Срок достижения результатов 6 месяцев 20
  10. Решение – «Python Core Team» Важно: если нужно вернуться на

    предыдущий способ выделения, нужно нажать на клавишу Меньший отступ Как выделить ключевую мысль и сделать списки Выдели текст, зайди на вкладку Главная и нажми клавишу Больший отступ: 1. Один раз, чтобы выделить ключевую мысль Важно: чтобы жёлтая линия не разрывалась, поставь курсор в конце строки и нажми Enter. 2. Два раза, чтобы создать маркированный список в виде стрелочки 3. Три раза, чтобы создать нумерованный список Целеполагание - разблокировка разработчикам пути в использовании существующих инструментов Организация Часть DevTools Ответственность комитет Python Техлид Сергей Яхницкий Команда 1-2 HC от каждого CTO Срок достижения результатов 6 месяцев Быстро договориться с 10+ людьми нереально 21
  11. Историческая справка 1. 1991г. - Бог создал Perl Python 2.

    02.08.2022 • Технохурал • Пилим сами • Оптимизации в backend-py3 • Пиарим taxi-python-community 24
  12. Историческая справка 1. 1991г. - Бог создал Python 2. 02.08.2022

    - Технохурал - Оптимизации 3. 28.12.2022 • Хакатон Такси • Пилим с друзьями • Python 3.11 • 1-е место 25
  13. Историческая справка 1. 1991г. - Бог создал Python 2. 02.08.2022

    - Технохурал – Оптимизации 3. 28.12.2022 - Хакатон Такси 4. 03.04.2023 • Релиз в прод • Первый успех 26
  14. Историческая справка 1. 1991г. - Бог создал Python 2. 02.08.2022

    - Технохурал - Оптимизации 3. 28.12.2022 - Хакатон Такси 4. 03.04.2023 - Релиз в прод 5. 13.06.2023 • Оффлайн Технохурал • Дисскуссия про языки • СТО Такси объявляет freeze 27
  15. Историческая справка - продолжение 1. 06.07.2023 - Отмена фриза 2.

    24.08.2023 - Обращение в комитет 1. Пришёл в комитет 2. Стал его частью 28
  16. Историческая справка - продолжение 1. 06.07.2023 - Отмена фриза 2.

    24.08.2023 - Обращение в комитет 3. 04.09.2023 - Новый СТО Ridetech 4. 22.09.2023 - Аппрув от Python комитета 5. 01.11.2023 - Получили ОК от СТО БГ Ecom & Ridetech 29
  17. Историческая справка - продолжение 1. 06.07.2023 - Отмена фриза 2.

    24.08.2023 - Обращение в комитет 3. 04.09.2023 - Новый СТО Ridetech 4. 22.09.2023 - Аппрув от Python комитета 5. 01.11.2023 - Получили ОК от СТО БГ Ecom & Ridetech 6. 11.12.2023 - Приступаем к проекту 30
  18. О команде • Андрей Корсун @korsunandrei • 2 года активно

    пишу на Python • ранее писал на C++ 6 лет • В Яндекс Еде с 2022 года • Перекладываю JSON'ы (а кто не перекладывает?) • Павел Соломатин @hyberlet • Поднимаю Python в Райдтехе с колен • Люблю причинять добро и наносить пользу • Перекладываю ya.make 32
  19. О главном › Сборка в монобинарь Важно: если нужно вернуться

    на предыдущий способ выделения, нужно нажать на клавишу Меньший отступ Как выделить ключевую мысль и сделать списки 33
  20. Пока нет › Зато есть свежий Python 3.12 › 55

    из 385 сервисов › Переезд в 1 строчку Важно: если нужно вернуться на предыдущий способ выделения, нужно нажать на клавишу Меньший отступ Как выделить ключевую мысль и сделать списки 34
  21. Нужно больше золота Rust’a › ruff • format vs black

    • check vs flake8 › complexipy › uv › orjson › pydantic 2 Важно: если нужно вернуться на предыдущий способ выделения, нужно нажать на клавишу Меньший отступ Как выделить ключевую мысль и сделать списки 35
  22. Автоматика обновления зависимостей • Обновили Arcadia CI • Закопали TeamCity

    • Сборка в 1 проход • Обновили базовые образы • Тесты за 1 час вместо 6+ Важно: если нужно вернуться на предыдущий способ выделения, нужно нажать на клавишу Меньший отступ Как выделить ключевую мысль и сделать списки 36
  23. Статическая типизация › Компилятор дома: mypy • 0.770 -> 1.4.1

    • Crowdfunding › more typing? • pyright • pyre • pytype • pylyzer Важно: если нужно вернуться на предыдущий способ выделения, нужно нажать на клавишу Меньший отступ Как выделить ключевую мысль и сделать списки 37
  24. Приятные мелочи › memray › pyinstrument › pytz – привет

    Казахстан › asyncpg › Своя квота › Параллельные тесты Как выделить ключевую мысль и сделать списки 38
  25. Рецепты копателя техно › Монорепа – хорошо, монотыква – плохо

    › Ускоряем Feedback Loop › Блокируем новые поломки › Делаем удобные инструменты для переезда › Пишем скрипты на Python + Bash › … › Profit Как выделить ключевую мысль и сделать списки 40