Уже пару конспектов прервал на середине: трансляция не позволяет нормально досмотреть доклад.
К сожалению, на сегодня всё. Ждите продолжения конспектов на Highload.
Если вы сейчас на CodeFest — приходите в 17:00 на доклад Сергея Быстрых:«Как ускорить тесты в 10 раз и вернуть к ним доверие». Там реальная история оптимизации тестов, которую я наблюдал своими глазами в Plesk (хоть и со стороны).
https://2019.codefest.ru/lecture/1419
К сожалению, на сегодня всё. Ждите продолжения конспектов на Highload.
Если вы сейчас на CodeFest — приходите в 17:00 на доклад Сергея Быстрых:«Как ускорить тесты в 10 раз и вернуть к ним доверие». Там реальная история оптимизации тестов, которую я наблюдал своими глазами в Plesk (хоть и со стороны).
https://2019.codefest.ru/lecture/1419
Технические задания как исполняемый код.
На обоих вчерашних квартирниках на CodeFest мы упоминали Gherkin. Это язык для формального описания требований, которые потом можно выполнять как автотесты.
Если вам это интересно — почитайте статью Никиты Соболева про то, как писать требования: Engineering guide to writing correct User Stories.
На обоих вчерашних квартирниках на CodeFest мы упоминали Gherkin. Это язык для формального описания требований, которые потом можно выполнять как автотесты.
Если вам это интересно — почитайте статью Никиты Соболева про то, как писать требования: Engineering guide to writing correct User Stories.
На честном слове и на одном ядре.
Генератор статических сайтов Jekyll — однопоточный. Даже если на машине прекрасные 8 или 16 ядер, Jekyll всё равно использует одно ядро для сборки доки. Поэтому у меня сейчас этап сборки на Jekyll длится по 15-20 минут.
Если у вас в документации тысячи страниц — берите сразу многопоточный генератор.
Генератор статических сайтов Jekyll — однопоточный. Даже если на машине прекрасные 8 или 16 ядер, Jekyll всё равно использует одно ядро для сборки доки. Поэтому у меня сейчас этап сборки на Jekyll длится по 15-20 минут.
Если у вас в документации тысячи страниц — берите сразу многопоточный генератор.
Jekyll → Hugo.
Читатель подсказывает, что с Jekyll надо переходить на Hugo, у которого всё хорошо со скоростью. Вот инструкция:Migrating from Jekyll+Github Pages to Hugo+Netlify.
Читатель подсказывает, что с Jekyll надо переходить на Hugo, у которого всё хорошо со скоростью. Вот инструкция:Migrating from Jekyll+Github Pages to Hugo+Netlify.
Sara Soueidan
Migrating from Jekyll+Github Pages to Hugo+Netlify
– The personal website of Sara Soueidan, inclusive design engineer
Объединить конспекты всех конференций в один репозиторий или каждую писать в новом? Как вы считаете, что будет лучше?
Раньше писал в разных:
— Highload 2018
— TeamLeadConf 2018
— CodeFest X
Аргументы за разные: проще структура, не смешивается в кучу.
Аргументы за один: всё в одном месте, легче сделать сайт.
Раньше писал в разных:
— Highload 2018
— TeamLeadConf 2018
— CodeFest X
Аргументы за разные: проще структура, не смешивается в кучу.
Аргументы за один: всё в одном месте, легче сделать сайт.
Объединить конспекты разных конференций в один репозиторий на GitHub?
Anonymous Poll
80%
объединить в один репозиторий
20%
оставить в разных репозиториях
Спасибо за ответы, вы подтвердили мою точку зрения. Будет один репозиторий для всех конференций.
Репозиторий ждёт ваших звездочек, а я иду писать первый конспект. :)
https://github.com/docops-hq/conf
Репозиторий ждёт ваших звездочек, а я иду писать первый конспект. :)
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> основной язык разработки, и я где-то возле второй эпохи. А где ваша компания (или вы лично)?
А вот и первый конспект. Александр Кошелев из Яндекса рассказывает, как менялась разработка и эксплуатация приложений в большой компании. Выделяет четыре основных эпохи:
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
16%
1: Железо
25%
2. Железо + venv
56%
3. Контейнеры
2%
4. Бинарная сборка
Go против Python.
Очередной конспект с #MoscowPythonConf2019. Виталий Левченко мастерски набрасывает на Python, буквально на все больные точки надавил.
https://github.com/docops-hq/conf/blob/master/moscowpython/19/go-vs-python.md
Не могу удержаться от ещё одного опроса.
Очередной конспект с #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?
И там ещё конспекты добавятся. А потом будет второй, секретный этап. Я вам про него позже расскажу. А пока что спасибо Наде!
Тем временем, моя коллега из Плеска Надя Мануйлова закинула пуллреквест с ещё 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
Слышали про принцип «сдвига влево» (shift left)? Непрерывная локализация (continuous localization) реализует этот принцип для перевода документации, интерфейса и других текстов.
Раньше было так: сначала разработка, потом пишем тексты, потом их переводим и наконец можем выпустить релиз. А теперь мы пишем тексты на этапе проектирования, а робот забирает их и отдаёт переводчикам. А готовые переводы сам коммитит обратно в ветку разработки. Тексты и переводы перестают блокировать релиз, и это уменьшает time to market всего продукта. Угадайте, как это влияет на прибыль и риски компании?
Техписатели из Xsolla рассказали на Хабре, как у них выстроен процесс непрерывной локализации. Они там переводят 20 проектов на 20 языков, сроки сжатые, всё автоматизировано. Xsolla крутые, спасибо им за статьи.
— 20 проектов, 20 языков, срок вчера
— 20 проектов, 20 языков, срок вчера. Часть 2
Хабр
20 проектов, 20 языков, срок вчера
Представьте: у вас есть 7 команд разработчиков общей численностью более 100 человек. Они одновременно пилят 13 приложений. Работа ведется в 20 репозиториях. Вс...
Что делать, если ваш код на Python тормозит.
Если вы загрустили от прошлого доклада про сравнение Python и Go, срочно примите противоядие. Григорий Бакунов из Яндекса рассказывает, как ускорить работу Python с помощью трёх подходов:
— разумно оптимизировать код,
— использовать другой интерпретатор: PyPy или Cython,
— переписать критичные куски на другом языке, прямо в коде на Python.
https://github.com/docops-hq/conf/blob/master/moscowpython/19/accelerate-python.md
Если вы загрустили от прошлого доклада про сравнение 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
Как вы уже поняли, астрологи объявили неделю конспектов. Теперь снова с Кодфеста. Алексей Катаев рассказывает про рефакторинг: как продать руководству, как организовать, где лежат грабли.
Спасибо Эмилю Янгирову за пуллреквест!
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
Вот сделаю мутацеонные тесты на документацыю — тоже расскажу об этом. 🙂
А вы хороши, большинство не верит тестам слепо и безоговорочно. Действительно, в тестах бывают баги, так что их тоже надо тестировать. Никита Соболев рассказал на #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 и сделали свой, супербыстрый. Посмотрите на бенчмарки:
Идея писать конфиги nginx на тьюринг-полном языке программирования не нова. Но тут сами разработчики nginx сделали такой модуль. Уже можно писать код на JS и байндиться к нему из конфига с помощью специальных директив. А скоро (обещают в 2019) станет можно и прямо в конфиге nginx писать нa JS.
Про это рассказал на #SaintHighLoad2019 Дмитрий Волынцев из nginx. Держите конспект: https://github.com/docops-hq/conf/blob/master/highload/19/spb/njs-nginx.md
А ещё они, конечно, перепробовали все интерпретаторы JS и сделали свой, супербыстрый. Посмотрите на бенчмарки:
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
А ниже график того, что происходило в моей голове, когда я слушал доклад. У кого так же?
Александр Тоболь из Одноклассников рассказывает на #SaintHighLoad2019, почему в мире беспроводных сетей ненадёжный UDP может быть надёжнее, чем надёжный TCP. Конечно, не чистый UDP, а реализованный поверх него собственный протокол: self-made UDP. Александр отлично объясняет всё, что нужно понимать, если вы работаете с доставкой контента.
Информации в докладе много, очень много. Я конспектировал его два с половиной часа и ещё не дошёл до конца. Трансляция позволяет перемотать непонятный фрагмент и послушать его ещё раз. И потом ещё раз. Что это вам напоминает? Мне — TCP. Мой мозг умеет принимать информацию примерно втрое медленнее, чем Александр умеет её отправлять. Да, а если бы я сидел в зале, был бы UDP. 🙂
Вот первая часть конспекта: https://github.com/docops-hq/conf/blob/master/highload/19/spb/tcp-vs-udp.md
А ниже график того, что происходило в моей голове, когда я слушал доклад. У кого так же?