vanadium23

5 июня 2017, Москва, Россия

# Понедельник 25 твитов

Доброго времени суток, меня зовут @vanadium23 и эту неделю я буду вести @backendsecret.

7:54

И, пожалуй, начну с цитатки:
"If you can’t build a well-structured monolith, what makes you think microservices is the answer?"

8:00

И статьи которая её раскрывает:
aadrake.com/posts/2017-05-…

8:00
@backendsecret @vanadium23 пришел к успеху! :D

Старался как мог, но очень сложно после двух столь технически глубоких ораторов вести скучные беседы за HTTP API (: twitter.com/en_austin/stat…

8:01
блин, почему я не ретвитнул это в @backendsecret twitter.com/__coding_tips_…
9:09

Продолжаем тему микросервисов. На сайте microsoft есть достаточная богатая подборка паттеронов проектирования:
docs.microsoft.com/en-us/azure/ar…

10:54

А Mozilla достаточно хорошо описала стандартизацию Health Endpoint Check для docker'a у себя:
github.com/mozilla-servic…

10:58
@backendsecret Это выдаёт фундаментальное непонимание распределённой разработки. Микросервисная архитектура не должна быть well structured

Думаю, что в данном случае автор говорил о том, что нельзя просто разбиться и чтобы каждый двигался в своём направл… twitter.com/i/web/status/8…

12:24

Иначе это может закончится очень хорошим узкоспецилизированными решениями, которые в итоге работают как лебедь, рак и щука.

12:26
@backendsecret Нельзя заставить 1000 разработчиков идти в одном направлении

Зато можно заставлять их писать кубики, которые потом надо будет выкидывать (возможно с трудом), потому что в "горо… twitter.com/i/web/status/8…

12:34

Но это всё на грани холивара и скорее посыл в том, что "всегда спрашивай себя не делаю ли я фигню?" @borovikov

12:36
@backendsecret @borovikov Моя мысль: сначала архитектура, потом код. Сначала идея, потом реализация. Когда начинают… twitter.com/i/web/status/8…

Critical thinking in everyday life twitter.com/o_leontev/stat…

13:17

Интересно, а все сейчас смотрят, что же нам такого Apple покажет на WWDC? (Я, конечно, буду читать завтра вырезки)

17:34
@imdefined @backendsecret будет исправленный макбук. инфа 146%.

Это который с нормальной кнопкой ESC для вимеров? twitter.com/dcromster/stat…

17:37

Если честно никогда не понимал, почему столько людей сидятна macbooks и когда их спрашивал, получал более менее очевидные ответы..

18:23

Как-то зарядка, корпус, ну и конечно же операционная система в которой всё работает из коробки как надо

18:25

но лично сижу на thinkpad x250, который не очень уступает по автономности и эргономичности. Хотя на вкус и цвет все фломастеры разные.

18:27

Кстати, люди которые ведут разработку на macOS, как разворачиваете окружение для разработки под свой проект:

18:28
@backendsecret а вообще был опыт использования макбуков?

Да, был. Сидел полгода поплевался и пересел обратно на Linux. twitter.com/orachkovan/sta…

18:29
@backendsecret Макбук - от безысходности, тк если ты фронтент-разработчик тебе хотя бы иногда нужна MacOS. Винду мо… twitter.com/i/web/status/8…

О, как! Макбук у фронтендеров от безысходности (: twitter.com/ihorzenich/sta…

18:31
@backendsecret Сколько держит батарею на Linux?

Сильно зависит от того, чем занимаешься (иногда и числодробилку надо гонять локально), но при умеренной нагрузки 6-… twitter.com/i/web/status/8…

18:36
@c01nd01r_ @backendsecret Это круто, что есть примеры когда всё ок. Но переюзав кучу разного железа, я пока знаю дв… twitter.com/i/web/status/8…

Вот Surface ещё не пробовал, но очень хочется (: twitter.com/ihorzenich/sta…

18:38
@ruxeg @backendsecret Фронтэндеры в моих глазах - просто герои: каждый год новый фреймворк, неконсистентная реализа… twitter.com/i/web/status/8…

Интересные герои, которые сами себе придумывают проблемы... twitter.com/fads93_zombie/…

19:21

Кстати (не совсем релевантный канал), но было бы вам интересно послушать про не совсем традиционный сейчас фронтенд на неделе?

19:27
@backendsecret Мы лучше всего справляемся с теми проблемами, которые сами же и создаём. Правда жизни.
19:32

# Вторник 26 твитов

Кстати, люди которые ведут разработку на macOS, как разворачиваете окружение для разработки под свой проект:

Ого, почти половина использует docker, но кроме локальной разработки преимуществом является единообразная доставка… twitter.com/i/web/status/8…

5:21

Эту тему достаточно хорошо осветил мой бывший коллега @satyrius в докладе на PyCon Ru 2016:
youtube.com/watch?v=if6Ly9…

5:22

Нет больше проблем вида "а у меня работает", не надо заставлять Ops писать скрипты для deb/rpm пакетов.

5:26

Но серебряных пуль не бывает и мы знаем, что работа с сетью реализована для контейнеров неполноценно.

5:30

А поиск решения некоторых проблем с aufs заканчивается issue на гитхабе с комментов: это баг в ядре :(

5:33
@backendsecret А где это жмёт, если ты типовой вебсервис пилишь?

Нигде не жмёт, просто предваряя вопросы читателей: а как бы ты решил проблему X, которая (пока) априори не решается… twitter.com/i/web/status/8…

5:34
Nice talk on the optimizations that made #Python 3.6 faster than Python 3.5. #programming

pyvideo.org/pycon-us-2017/… pic.twitter.com/l6OnHLEzrJ

Закину удочку про третий питон и потом начну раскрывать свою мысль. Stay tuned (: twitter.com/randal_olson/s…

13:35

Итак, сентрябрь 2015 год ознаменовался выходои питона 3.5 и как мне кажется это было повортной точкой в многолетнем споре 2 vs 3.

15:41

Как мы все знаем, надо подождать пару минорных патчей прежде, чем переходить на это в проде.

15:42

Но за 2016 все проекты на python в компании, которые необходимо развивать дальше, были смигрированы на python 3.5.

15:43

Конечно, нельзя сказать, что он был беспроблемным, но мелкие проекты можно было переключить буквально за пару вечеров с помощью 2to3.

15:44

А в крупных помогал довольно хороший test coverage, который на раннем уровне находил проблемы в коде (:

15:45

Когда происходят такие переходы надо задумываться о целесообразности такого перехода, но инстаграм показал, что мож… twitter.com/i/web/status/8…

15:47

При этом насколько я слышал переводом на трёшку занималось пару инженеров постольку-поскольку.

15:49

Печальная история про переезд: в качестве message queue мы используем Beanstalkd, которую некоторое время назад упоминал @s_kibish.

15:55

К сожалению, официальная библиотека не поддерживает трёшку, а пулл реквест с поддержкой висит уже с 2015 года: github.com/earl/beanstalk…

15:57

После мыслей между форком и гуглением решение пришло в виде альтернативы под названием pystalkd:
github.com/menezes-/pysta…

15:58

Около недели после переезда микросервис работал стабильно, как неожидано воркеры стали "залипать" на чтение из сокета (спасибо, strace).

16:00

Оказалось, автор решил очень строго имплементировать протокол и ожидал \r\n для условия выхода, чего в краевых случаях может и не быть.

16:03

Благо PR был принят быстро и больше проблем.
github.com/menezes-/pysta….

Выводы под этим простые: не бойтесь читать код исопльзуемых либ.

16:04

Теперь о двух фичах, которые наверняка всем уже замылили глаз.

16:08

1. type hinting - очень удобно, крутая поддержка в PyCharm. А если хотите, чтобы проверяло, то есть pyContracts:
andreacensi.github.io/contracts/

16:10

Или же библиотечку enforce:
github.com/RussBaz/enforce

16:11

Вторая фича это, конечно, asyncio, но success story рассказать не могу, поскольку все требующие её сервисы были переписаны на #golang (:

16:14
@backendsecret @s_kibish Как вам beanstalkd в сравнении с кроликом?:)

Достаточно сказать, что аптайм сервиса 547 дней (:
Он простой, как пробка, в этом его основное преимущество. twitter.com/ssnickolay/sta…

16:29
@ssnickolay @backendsecret Он простой, есть базовый функционал для работы с очередями, что и нужно. Не затратный по… twitter.com/i/web/status/8…
18:34

# Среда 19 твитов

@s_kibish @backendsecret @ssnickolay Ребят, а какие у вас объемы проходят через bkd и сравнивали ли с rabbit по про… twitter.com/i/web/status/8…

Не маштабируется, это же не монга:
mongodb-is-web-scale.com twitter.com/salikhov/statu…

7:47
@backendsecret А с чем конкретно были проблемы? Что переписали.

Различные IOBound задачи, которые хорошо в питоне хорошо решаются в основном на tornado/twisted и теперь asyncio. twitter.com/siberian_unax/…

7:48

У нас же для питона стек вполне себе стандартный:
django, postgres, redis.

7:48
@backendsecret Блэд, возьмите меня хоть кофе носить :D

So what's the problem let's do it quick:
ostrovok.potok.io/open/jobs/2606 twitter.com/ccherya/status…

7:56

Заранее хотел извиниться перед всеми пользователями монги, но сложилась культура, что её невозможно использовать.

7:59

Очень хорошо это описывается где-то прочитанной цитатой: "MognoDB сделала с NoSQL тоже самое, что и MySQL с SQL"

8:00

Если говорить о маштабирование, то лучше всего зашёл Aerospike:
aerospike.com/open-source/
Парни пилят всё на C по классике (:

8:14

Не только саму БД, но даже клиенты (например, питон).
Клиент устанавливает соединение со всеми доступными нодами кластера и в случае падения

8:15

Библиотека прозрачно для клиента подменяет коннект к ноде при запросах

8:16

А сервер в зависимости от replication factor начинает мигрировать данные в фоне в доступную ноду. (:

8:17

Также aerospike умеет работать с блочными устройствами, т.е. можно не проводить сравнения ext4 vs xfs, а просто отдать /dev/sda и забыть.

8:21
@backendsecret У mysql огромное комьюнити, уйма книг, кейсов и бест практисез применения. Это очень мощный инструме… twitter.com/i/web/status/8…

Может оно и так, но вспоминаем почему MySQL именно воспринимается как плохой SQL:
youtube.com/watch?v=emgJtr
но это 2… twitter.com/i/web/status/8…

9:22
Может оно и так, но вспоминаем почему MySQL именно воспринимается как плохой SQL:
youtube.com/watch?v=emgJtr
но это 2… twitter.com/i/web/status/8…

Промахнулся с видео:
youtube.com/watch?v=emgJtr… twitter.com/backendsecret/…

9:31
@strangeqargo @backendsecret по опыту общения с людьми - на MySQL крошат батон те, кто не осилил и 10% от ее возмож… twitter.com/i/web/status/8…

Нашёл откуда цитатка:
use-the-index-luke.com/blog/2013-10/m…

Уверен, что Markus Winand вам знаком, как создатель этого сайта и ка… twitter.com/i/web/status/8…

9:38
@strangeqargo @backendsecret Я писал недавно страшную хрень на триггерах и хранимках и был очень довоелн MYSQL - и… twitter.com/i/web/status/8…

Да в postgres можно на питоне написать и не страдать с лёгкостью реализации, а скорость работы - это, то что нужно… twitter.com/i/web/status/8…

10:13
@backendsecret есть классная история про то, как в убере тоже повелись на постгре-хайп, а потом расхлебывали eng.uber.com/mysql-migratio…

У убера есть достаточно денег, чтобы сжигать их сначала на переезд туда, потом обратно.
Хороший ответ на эту статью… twitter.com/i/web/status/8…

10:50
@backendsecret Amazon Aurora, MariaDb, MySql + Galera являются примером того, что MySql можно (а может и нужно) совершенствовать
12:34
@backendsecret согласен, но все стандарты MySql выполнимы в Aurora и теоретически можно сказать - Yet Another Imple… twitter.com/i/web/status/8…

Так можно и cockroachdb назвать yet another postgres implementation (: twitter.com/rukavitsya/sta…

12:42
@backendsecret Ответ от разработчика постгреса. thebuild.com/blog/2017/04/2…
Уберцы просто не умеют пользоваться постгресом )

О, тоже пытался найти эту ссылку, только на mailing lists - спасибо, что подсказали (: twitter.com/barskykd/statu…

15:16

# Четверг 21 твит

Кстати (не совсем релевантный канал), но было бы вам интересно послушать про не совсем традиционный сейчас фронтенд на неделе?

3/4 людей высказались за рассказ, поэтому сегодня отойдём от чисто бекендерских тем про базы и перейдём к фронтенду. twitter.com/backendsecret/…

8:31

Давайте начнём с опроса, что же для вас fullstack, памятуя старый комикс:

8:43

А вот и сам комикс (: pic.twitter.com/CSx27GmWZM

8:43

Для меня фуллстек это скорее слово заменитель эрудиции. Очень мало людей, которые могут качественно и задизайнить, и накодить, и задеплоить.

8:47

А вот иметь представление о том, как оно работает. Поправить что-то в случае необходимости, а так же знать какую боль ты можешь доставить..

8:48
@backendsecret Умею backend, умею frontend, но без верстки интерфейсов - себя в опросе не нашёл :(

Да, надо было добавить вариант fullstack frontend для людей, которые пилят на nodejs и frontend..
Ставить лайк здес… twitter.com/i/web/status/8…

8:54
@backendsecret Devops + backend

Так DevOps и есть backend + ops, хотя внутренний зануда говорит, что DevOps - это методология, а не должность... twitter.com/Bobrnor/status…

9:08
@backendsecret но ты не являешься специалистом в этих областях

Да-да, именно это и пытался донести. Специалистом можно стать лишь в одной области, и скорее всего очень узкой (ваш… twitter.com/i/web/status/8…

13:50
Господи, как я ненавижу JavaScript. Как не встречаешь - так и втыкаешь на полтора-два часа и всё по мелочам.

Вот примерно так я себя чувствовал, когда попытался влиться в текущий фронтенд после опыта jQuery+bootstrap в году… twitter.com/i/web/status/8…

17:22

А общее представление хорошо выражает картиночки от @ThePracticalDev pic.twitter.com/qZ86kKaoBM

17:24

Поэтому спросим честно, сколько времени вы не меняли фронтенд фреймворк на свой последней работе?

17:26

Да и заодно, что сейчас используете:

17:28

Надо было ещё добавить ember, автор зачем объединил angular и vue они разные, и прочие несостыковки отвечайте реплаем/лайком сюда. 😬

17:29
@backendsecret А нет фреймворка.

Ну вот не надо ля-ля, у вас всё по БЭМу как бы вы его не именовали: методология, инструменты, фреймворк twitter.com/webholt/status…

17:30

Фронтенд же островка построен на технологии gmail под названием google closure с ~2013 (это почти 5 лет):
developers.google.com/closure/

17:34

Closure - это набор тулов, которые включает в себя компилятор (он так называется) на java, который научился dead code elimination задолго

17:36

задолго до того, как появились вебпаки. Да и сам скелетон приложения очень напоминает прородителя angular.

17:37

Правда писать приходиться на jsDocs, что не является самым удобным способом :(

17:38

Время не стоит на месте и идеи реакт (VirtualDom) захватили умы. И тут гугл они представили свою реализацию:
github.com/google/increme…

17:40

Обещается, что он более щадящий по отношению к CPU, что актуально для мобилок.
На примерах кода было понятно, что придётся много писать

17:41

Поэтому мы взяли jade (pug) и научили его компилироваться в валидный код incremental dom'a, т.е. переизобрели JSX (:

17:42

# Пятница 17 твитов

Как-то быстро пролетела неделя и настала пятница. Традиционное время для ретроспектив. Проводятся ли они в вашей компании?

6:05

Заодно пора разобрать еженедельные рассылочки и RSS, поэтому сегодня вероятно будет большее количество ссылочек (:

6:07

Немного запоздало статья о том, как эволюционировал процесс деплоя в Reddit'e:
redditblog.com/2017/06/02/the…

6:09

Деплоить 800 серверов за 7 минут - это прям wow эффект (:

6:11

До этого такой же большой эффект произвела статья о создании странички с пикселями (place) для 1 апреля:
redditblog.com/2017/04/13/how…

6:14
@backendsecret Это бессмысленная метрика. Думаю, даже в России найдётся несколько учреждений, которые деплоят ещё б… twitter.com/i/web/status/8…

Не бессмысленная, если она мешает процессу разработки. Если тебе надо быстро доставить код до пользователя, а депло… twitter.com/i/web/status/8…

6:24

Или содержит в себе какой-то набор последовательных нетривиальных комманд. В общем, деплой он как хороший дизайн - должен быть незаметным.

6:25

Вышла новая библиотека для построения DataClass'ов в питоне для python 3.6+:
pydantic-docs.helpmanual.io

8:18

И видео от коллеги о том, что такое датаклассы и контракты и как мы их используем:
youtube.com/watch?v=YN2ETI…

8:19
@backendsecret в чём смысл завозить туда типы, это же пайтон

Затем же зачем и на typescript люди пишут twitter.com/ruxeg/status/8…

9:27
@ruxeg @backendsecret защитное программирование, контракты. Пускай там, где можно, ошибки отлавливает машина, а не человек
9:29

На тему того, почему не язык со статической типизацией:
arxiv.org/pdf/1409.0252.…
cc @ruxeg @PaGrom pic.twitter.com/QlbnW28GxN

10:58
@backendsecret @ruxeg @PaGrom Повторяю, я просмотрел ПДФ бегло - там нет ни этого графика, ни этой метрики вообще.

Пикча отсюда:
hackernoon.com/yes-python-is-…
Ссылку действительно взял некорректно:
connellybarnes.com/documents/lang… twitter.com/siziyman/statu…

11:33
@ruxeg @nikalaikina @backendsecret @PaGrom С другой стороны саппорт большого проекта на python конечно боль

Однозначно боль :( twitter.com/Alex____st/sta…

11:36

Давайте ещё парочку статей на сегодня, одна будет говорить про оверинжиниринг:
blog.bradfieldcs.com/you-are-not-go…

11:54

Вторая будет про картиночки (да и вообще читайте блог Etsy они пишут много клёвого):
codeascraft.com/2017/05/30/red…

11:55
@backendsecret @ruxeg @PaGrom Не ради срча но yandex.ru/blog/company/7…, хоть и давний обзор, но думается % не сильно изменился

Интересное соотношение, спасибо за информацию и никакого срача, о чём вы (: twitter.com/ZmeiG83/status…

19:10

# Суббота 12 твитов

Вот и наступили долгожданные выходные и можно переключиться с тасок в жире на любимый pet-project или OSS проект (: pic.twitter.com/iPOyfLwxNm

7:08

И сразу поделюсь результатами опросов от Github по проблемам в OSS сообществе:
opensourcesurvey.org/2017/

7:11

И в топах по результатам рассказывают про плохие доки, но я это связываю с проблемой того, что гитхаб превратился в помойку...

7:13

потому что взять так со старта и найти репозиторий в котором можно помочь очень маловероятно, что вырождается в рождение сторонних проектов

7:14

которые помогают влиться новичками, как например OSS board от @anton_davydov :
ossboard.org

7:15

Достаточно хорошо проблема решена у гитлаба, потому что пофильтровав issue на label + вес можно написать простые и понятные фичи

7:17

А в процесс принятие MR входит и написание документации, и теста на них. Вы только сколько её (:
gitlab.com/gitlab-org/git…

7:19

Поэтому предлагаю простой опрос про OSS, а так же поделиться читателям про поиск OSS проектов и какой патч был веселее всего (:

7:25
@backendsecret "Контребьючу без проблем" - это на грани утопии :( очень часто тяжело получить достаточно быстрый и… twitter.com/i/web/status/8…

Вот супер простой тикет с гитлаба:
gitlab.com/gitlab-org/git…
а вот в какой фидбэк это вылилось :(… twitter.com/i/web/status/8…

7:45

1. Это показало, что любой проект с проблемами

7:46
@backendsecret В гитхабе есть лэйбл "good for newbies" или что-то вроде этого

Он у всех разный: где-то help wanted, где-то pr welcomed, и так далее. К сожалению, если бы они сделали один у всех… twitter.com/i/web/status/8…

8:04

# Воскресенье 3 твита

Как быстро пролетела неделя. Хотел поблагодорить @dcromster за предоставлению возможность и вас читателей за обсуждения насущных тем (:

10:13

Напоминаю с вами был @vanadium23 - Fullstack dev @ Ostrovok.ru

10:14

github.com

other