vanadium23

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

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

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

10:54

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

11:00

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

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

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

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

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

13:54

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

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

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

15:24

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

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

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

15:34

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

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

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

16:17

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

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

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

20:37

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

21:23

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

21:25

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

21:27

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

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

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

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

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

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

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

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

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

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

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

22:21

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

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

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

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

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

8:21

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

8:22

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

8:26

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

8:30

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

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

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

8: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…

16:35

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

18:41

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

18:42

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

18:43

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

18:44

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

18:45

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

18:47

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

18:49

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

18:55

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

18:57

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

18:58

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

19:00

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

19:03

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

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

19:04

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

19:08

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

19:10

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

19:11

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

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

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

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

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

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

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

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

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

10:48

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

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

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

10:56

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

10:59

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

11:00

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

11:14

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

11:15

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

11:16

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

11:17

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

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

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

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

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

12: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…

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

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

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

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

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

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

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

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

18:16

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

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

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

11:31

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

11:43

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

11:43

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

11:47

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

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

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

11:54
@backendsecret Devops + backend

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

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

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

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

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

20:22

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

20:24

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

20:26

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

20:28

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

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

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

20:30

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

20:34

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

20:36

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

20:37

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

20:38

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

20:40

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

20:41

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

20:42

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

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

9:05

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

9:07

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

9:09

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

9:11

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

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

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

9:24

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

9:25

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

11:18

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

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

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

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

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

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

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

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

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

14:36

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

14:54

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

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

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

22:10

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

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

10:08

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

10:11

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

10:13

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

10:14

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

10:15

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

10:17

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

10:19

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

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

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

10:45

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

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

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

11:04

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

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

13:13

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

13:14

github.com

other