Size: a a a

2019 March 31
DocOps
Технические задания как исполняемый код.

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

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

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

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

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

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

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

https://github.com/docops-hq/conf
источник
DocOps
Эволюция 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> основной язык разработки, и я где-то возле второй эпохи. А где ваша компания (или вы лично)?
источник
DocOps
В какой эпохе ваша разработка на Python?
Анонимный опрос
15%
1: Железо
26%
2. Железо + venv
57%
3. Контейнеры
2%
4. Бинарная сборка
Проголосовало: 89
источник
DocOps
Go против Python.

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

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

Не могу удержаться от ещё одного опроса.
источник
DocOps
Ваш любимый язык
Анонимный опрос
32%
Python
16%
Go
7%
Java и другие на JVM
6%
C# и другие на .NET
10%
JS, TypeScript и товарищи
5%
C & C++
7%
PHP
2%
Obj-C & Swift
4%
Ruby
12%
(другой)
Проголосовало: 276
источник
DocOps
Ещё CodeFest X.

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

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

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

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

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

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

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

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

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

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

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

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

Всё ли хорошо?
Анонимный опрос
16%
Да, похоже что всё хорошо.
84%
Нет, тесты же могут не работать.
Проголосовало: 147
источник
DocOps
Мутационное тестирование.

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

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

Вот сделаю мутацеонные тесты на документацыю — тоже расскажу об этом. 🙂
источник
2019 April 08
DocOps
​​Конфиги 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 и сделали свой, супербыстрый. Посмотрите на бенчмарки:
источник
2019 April 09
DocOps
​​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

А ниже график того, что происходило в моей голове, когда я слушал доклад. У кого так же?
источник
2019 April 11
DocOps
27 отборных докладов и мастер-классов про управление знаниями в IT.
источник
DocOps
Смотрите, в какое плотное расписание мы упаковали все доклады KnowledgeConf. Три потока по восемь докладов и один трек под специальные форматы – имеет смысл наметить маршрут по конференции заранее.
https://knowledgeconf.ru/2019/schedule.html
источник