DocOps – Telegram
DocOps
4.52K subscribers
43 photos
1 file
384 links
Writing about work, Developer Relations and Developer Experience, mentorshiop, conferences, documentation, and everything that I work and live with.

Author: @nick_volynkin

Mentorship: https://getmentor.dev/mentor/nikolay-volynkin-186
Download Telegram
Через час (17 по Новосибирску, 13 по Москве) мы с Семёном Факторовичем и Татьяной Фокиной будем рассказывать про документацию и DocOps на радио ЦФТ. Трансляция тут: https://team.cft.ru/radio
Командный и персональный рост в продукте: уроки, навыки и процессы.

А вот и первый конспект с Кодфеста!

Анна Бояркина из Miro (ex-RealtimeBoard) рассказывает, что компания может расти экспоненциально, а сотрудники — только линейно, и как помочь сотрудникам успевать за быстрорастущей компанией.
​​Эволюция цифрового общения.

Виктор Иванов из ВК рассказывает, как 23 года назад появилось цифровое общение, как оно менялось и меняло весь мир коммуникаций.

https://github.com/plesk/codefest19/blob/master/source/digital-communication.md
Уже пару конспектов прервал на середине: трансляция не позволяет нормально досмотреть доклад.

К сожалению, на сегодня всё. Ждите продолжения конспектов на Highload.

Если вы сейчас на CodeFest — приходите в 17:00 на доклад Сергея Быстрых:«Как ускорить тесты в 10 раз и вернуть к ним доверие». Там реальная история оптимизации тестов, которую я наблюдал своими глазами в Plesk (хоть и со стороны).

https://2019.codefest.ru/lecture/1419
Технические задания как исполняемый код.

На обоих вчерашних квартирниках на CodeFest мы упоминали Gherkin. Это язык для формального описания требований, которые потом можно выполнять как автотесты.

Если вам это интересно — почитайте статью Никиты Соболева про то, как писать требования: Engineering guide to writing correct User Stories.
​​На честном слове и на одном ядре.
Генератор статических сайтов Jekyll — однопоточный. Даже если на машине прекрасные 8 или 16 ядер, Jekyll всё равно использует одно ядро для сборки доки. Поэтому у меня сейчас этап сборки на Jekyll длится по 15-20 минут.

Если у вас в документации тысячи страниц — берите сразу многопоточный генератор.
Jekyll → Hugo.

Читатель подсказывает, что с Jekyll надо переходить на Hugo, у которого всё хорошо со скоростью. Вот инструкция:Migrating from Jekyll+Github Pages to Hugo+Netlify.
Объединить конспекты всех конференций в один репозиторий или каждую писать в новом? Как вы считаете, что будет лучше?

Раньше писал в разных:
Highload 2018
TeamLeadConf 2018
CodeFest X

Аргументы за разные: проще структура, не смешивается в кучу.
Аргументы за один: всё в одном месте, легче сделать сайт.
Объединить конспекты разных конференций в один репозиторий на GitHub?
Anonymous Poll
80%
объединить в один репозиторий
20%
оставить в разных репозиториях
Спасибо за ответы, вы подтвердили мою точку зрения. Будет один репозиторий для всех конференций.

Репозиторий ждёт ваших звездочек, а я иду писать первый конспект. :)

https://github.com/docops-hq/conf
Эволюция Python в Яндексе.

А вот и первый конспект. Александр Кошелев из Яндекса рассказывает, как менялась разработка и эксплуатация приложений в большой компании. Выделяет четыре основных эпохи:

1. Приложения в deb-пакетах прямо на железном сервере
2. Приложения вместе с виртуальным окружением (venv), запакованные в deb-пакеты, точно так же на сервере.
3. Контейнеры в собственном Docker-совместимом облаке
4. Бинарная сборка.

https://github.com/docops-hq/conf/blob/master/moscowpython/19/yandex-python.md

Для меня Python — <del>язык, который я знаю наименее плохо</del> основной язык разработки, и я где-то возле второй эпохи. А где ваша компания (или вы лично)?
В какой эпохе ваша разработка на Python?
Anonymous Poll
17%
1: Железо
25%
2. Железо + venv
55%
3. Контейнеры
2%
4. Бинарная сборка
Go против Python.

Очередной конспект с #MoscowPythonConf2019. Виталий Левченко мастерски набрасывает на Python, буквально на все больные точки надавил.

https://github.com/docops-hq/conf/blob/master/moscowpython/19/go-vs-python.md

Не могу удержаться от ещё одного опроса.
Ещё CodeFest X.

Тем временем, моя коллега из Плеска Надя Мануйлова закинула пуллреквест с ещё 4 конспектами CodeFest:

Додо в LeSS: как не заблудиться
Основные ошибки при проведении экспериментов
Moneyball. Как построить команду продактов, когда на рынке их нет
Сколько нужно энергии для работы Scrum Master, Product Owner и Agile Coach?

И там ещё конспекты добавятся. А потом будет второй, секретный этап. Я вам про него позже расскажу. А пока что спасибо Наде!
Непрерывная локализация.

Слышали про принцип «сдвига влево» (shift left)? Непрерывная локализация (continuous localization) реализует этот принцип для перевода документации, интерфейса и других текстов.

Раньше было так: сначала разработка, потом пишем тексты, потом их переводим и наконец можем выпустить релиз. А теперь мы пишем тексты на этапе проектирования, а робот забирает их и отдаёт переводчикам. А готовые переводы сам коммитит обратно в ветку разработки. Тексты и переводы перестают блокировать релиз, и это уменьшает time to market всего продукта. Угадайте, как это влияет на прибыль и риски компании?

Техписатели из Xsolla рассказали на Хабре, как у них выстроен процесс непрерывной локализации. Они там переводят 20 проектов на 20 языков, сроки сжатые, всё автоматизировано. Xsolla крутые, спасибо им за статьи.

— 20 проектов, 20 языков, срок вчера
20 проектов, 20 языков, срок вчера. Часть 2
Что делать, если ваш код на Python тормозит.

Если вы загрустили от прошлого доклада про сравнение Python и Go, срочно примите противоядие. Григорий Бакунов из Яндекса рассказывает, как ускорить работу Python с помощью трёх подходов:
— разумно оптимизировать код,
— использовать другой интерпретатор: PyPy или Cython,
— переписать критичные куски на другом языке, прямо в коде на Python.

https://github.com/docops-hq/conf/blob/master/moscowpython/19/accelerate-python.md
​​Рефакторинг: договариваемся, планируем, внедряем!

Как вы уже поняли, астрологи объявили неделю конспектов. Теперь снова с Кодфеста. Алексей Катаев рассказывает про рефакторинг: как продать руководству, как организовать, где лежат грабли.

Спасибо Эмилю Янгирову за пуллреквест!

https://github.com/plesk/codefest19/blob/master/source/skyeng-refactoring.md
Представьте, что в вашем проекте есть линтеры, проверка типов, юнит- и интеграционные тесты, property-based тесты и даже тесты на документацию. И стопроцентное покрытие во всех смыслах. И все тесты проходят.

Всё ли хорошо?
Anonymous Poll
17%
Да, похоже что всё хорошо.
83%
Нет, тесты же могут не работать.
Мутационное тестирование.

А вы хороши, большинство не верит тестам слепо и безоговорочно. Действительно, в тестах бывают баги, так что их тоже надо тестировать. Никита Соболев рассказал на #MoscowPythonConf2019 о том, как готовить мутационное тестирование и писать реально работающие тесты.

Держите конспект: https://github.com/docops-hq/conf/blob/master/moscowpython/19/kill-mutants.md

Вот сделаю мутацеонные тесты на документацыю — тоже расскажу об этом. 🙂
​​Конфиги nginx на JavaScript.

Идея писать конфиги nginx на тьюринг-полном языке программирования не нова. Но тут сами разработчики nginx сделали такой модуль. Уже можно писать код на JS и байндиться к нему из конфига с помощью специальных директив. А скоро (обещают в 2019) станет можно и прямо в конфиге nginx писать нa JS.

Про это рассказал на #SaintHighLoad2019 Дмитрий Волынцев из nginx. Держите конспект: https://github.com/docops-hq/conf/blob/master/highload/19/spb/njs-nginx.md

А ещё они, конечно, перепробовали все интерпретаторы JS и сделали свой, супербыстрый. Посмотрите на бенчмарки: