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
​​На честном слове и на одном ядре.
Генератор статических сайтов 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 и сделали свой, супербыстрый. Посмотрите на бенчмарки:
DocOps pinned «​​Программа KnowledgeConf готова! Программа конференции по управлению знаниями KnowledgeConf готова. Мы выбрали 24 лучших доклада из 83 заявок. Прямо сейчас докладчики активно работают над своими докладами, а мы будем вам о них рассказывать. Лана Новикова…»
​​UDP против TCP, или Будущее сетевого стека.

Александр Тоболь из Одноклассников рассказывает на #SaintHighLoad2019, почему в мире беспроводных сетей ненадёжный UDP может быть надёжнее, чем надёжный TCP. Конечно, не чистый UDP, а реализованный поверх него собственный протокол: self-made UDP. Александр отлично объясняет всё, что нужно понимать, если вы работаете с доставкой контента.

Информации в докладе много, очень много. Я конспектировал его два с половиной часа и ещё не дошёл до конца. Трансляция позволяет перемотать непонятный фрагмент и послушать его ещё раз. И потом ещё раз. Что это вам напоминает? Мне — TCP. Мой мозг умеет принимать информацию примерно втрое медленнее, чем Александр умеет её отправлять. Да, а если бы я сидел в зале, был бы UDP. 🙂

Вот первая часть конспекта: https://github.com/docops-hq/conf/blob/master/highload/19/spb/tcp-vs-udp.md

А ниже график того, что происходило в моей голове, когда я слушал доклад. У кого так же?
27 отборных докладов и мастер-классов про управление знаниями в IT.
Forwarded from Knowledge Conf Channel
Смотрите, в какое плотное расписание мы упаковали все доклады KnowledgeConf. Три потока по восемь докладов и один трек под специальные форматы – имеет смысл наметить маршрут по конференции заранее.
https://knowledgeconf.ru/2019/schedule.html
Forwarded from Knowledge Conf Channel
Мы обещали вам подробно рассказать о том, что еще будет на KnowledgeConf кроме докладов, и держим слово. А будет интересное — будем экспериментировать и мечтать. И обязательно посмотрите на идеи из непринятых докладов и напишите в комментариях, что нужно обсудить в будущем.
https://habr.com/ru/company/oleg-bunin/blog/445040/