# Понедельник 25 твитов
Доброго времени суток, меня зовут @vanadium23 и эту неделю я буду вести @backendsecret.
10:54И, пожалуй, начну с цитатки:
"If you can’t build a well-structured monolith, what makes you think microservices is the answer?"
И статьи которая её раскрывает:
aadrake.com/posts/2017-05-…
@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…
А Mozilla достаточно хорошо описала стандартизацию Health Endpoint Check для docker'a у себя:
github.com/mozilla-servic…
@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…
Нет больше проблем вида "а у меня работает", не надо заставлять Ops писать скрипты для deb/rpm пакетов.
8:26Но серебряных пуль не бывает и мы знаем, что работа с сетью реализована для контейнеров неполноценно.
8:30А поиск решения некоторых проблем с aufs заканчивается issue на гитхабе с комментов: это баг в ядре :(
8:33@backendsecret А где это жмёт, если ты типовой вебсервис пилишь?
Нигде не жмёт, просто предваряя вопросы читателей: а как бы ты решил проблему X, которая (пока) априори не решается… twitter.com/i/web/status/8…
8:34Nice talk on the optimizations that made #Python 3.6 faster than Python 3.5. #programming
Закину удочку про третий питон и потом начну раскрывать свою мысль. 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…
Около недели после переезда микросервис работал стабильно, как неожидано воркеры стали "залипать" на чтение из сокета (спасибо, strace).
19:00Оказалось, автор решил очень строго имплементировать протокол и ожидал \r\n для условия выхода, чего в краевых случаях может и не быть.
19:03Благо PR был принят быстро и больше проблем.
github.com/menezes-/pysta….
Выводы под этим простые: не бойтесь читать код исопльзуемых либ.
19:04Теперь о двух фичах, которые наверняка всем уже замылили глаз.
19:081. type hinting - очень удобно, крутая поддержка в PyCharm. А если хотите, чтобы проверяло, то есть pyContracts:
andreacensi.github.io/contracts/
Или же библиотечку enforce:
github.com/RussBaz/enforce
Вторая фича это, конечно, asyncio, но success story рассказать не могу, поскольку все требующие её сервисы были переписаны на #golang (:
19:14@backendsecret @s_kibish Как вам beanstalkd в сравнении с кроликом?:)
Достаточно сказать, что аптайм сервиса 547 дней (:
Он простой, как пробка, в этом его основное преимущество. twitter.com/ssnickolay/sta…
@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…
@backendsecret А с чем конкретно были проблемы? Что переписали.
Различные IOBound задачи, которые хорошо в питоне хорошо решаются в основном на tornado/twisted и теперь asyncio. twitter.com/siberian_unax/…
10:48У нас же для питона стек вполне себе стандартный:
django, postgres, redis.
@backendsecret Блэд, возьмите меня хоть кофе носить :D
So what's the problem let's do it quick:
ostrovok.potok.io/open/jobs/2606 twitter.com/ccherya/status…
Заранее хотел извиниться перед всеми пользователями монги, но сложилась культура, что её невозможно использовать.
10:59Очень хорошо это описывается где-то прочитанной цитатой: "MognoDB сделала с NoSQL тоже самое, что и MySQL с SQL"
11:00Если говорить о маштабирование, то лучше всего зашёл Aerospike:
aerospike.com/open-source/
Парни пилят всё на C по классике (:
Не только саму БД, но даже клиенты (например, питон).
Клиент устанавливает соединение со всеми доступными нодами кластера и в случае падения
Библиотека прозрачно для клиента подменяет коннект к ноде при запросах
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…
Может оно и так, но вспоминаем почему MySQL именно воспринимается как плохой SQL:
youtube.com/watch?v=emgJtr…
но это 2… twitter.com/i/web/status/8…
Промахнулся с видео:
youtube.com/watch?v=emgJtr… twitter.com/backendsecret/…
@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…
@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…
@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/
Closure - это набор тулов, которые включает в себя компилятор (он так называется) на java, который научился dead code elimination задолго
20:36задолго до того, как появились вебпаки. Да и сам скелетон приложения очень напоминает прородителя angular.
20:37Правда писать приходиться на jsDocs, что не является самым удобным способом :(
20:38Время не стоит на месте и идеи реакт (VirtualDom) захватили умы. И тут гугл они представили свою реализацию:
github.com/google/increme…
Обещается, что он более щадящий по отношению к CPU, что актуально для мобилок.
На примерах кода было понятно, что придётся много писать
Поэтому мы взяли jade (pug) и научили его компилироваться в валидный код incremental dom'a, т.е. переизобрели JSX (:
20:42# Пятница 17 твитов
Как-то быстро пролетела неделя и настала пятница. Традиционное время для ретроспектив. Проводятся ли они в вашей компании?
9:05Заодно пора разобрать еженедельные рассылочки и RSS, поэтому сегодня вероятно будет большее количество ссылочек (:
9:07Немного запоздало статья о том, как эволюционировал процесс деплоя в Reddit'e:
redditblog.com/2017/06/02/the…
Деплоить 800 серверов за 7 минут - это прям wow эффект (:
9:11До этого такой же большой эффект произвела статья о создании странички с пикселями (place) для 1 апреля:
redditblog.com/2017/04/13/how…
@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
И видео от коллеги о том, что такое датаклассы и контракты и как мы их используем:
youtube.com/watch?v=YN2ETI…
@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
@backendsecret @ruxeg @PaGrom Повторяю, я просмотрел ПДФ бегло - там нет ни этого графика, ни этой метрики вообще.
Пикча отсюда:
hackernoon.com/yes-python-is-…
Ссылку действительно взял некорректно:
connellybarnes.com/documents/lang… twitter.com/siziyman/statu…
@ruxeg @nikalaikina @backendsecret @PaGrom С другой стороны саппорт большого проекта на python конечно боль
Однозначно боль :( twitter.com/Alex____st/sta…
14:36Давайте ещё парочку статей на сегодня, одна будет говорить про оверинжиниринг:
blog.bradfieldcs.com/you-are-not-go…
Вторая будет про картиночки (да и вообще читайте блог Etsy они пишут много клёвого):
codeascraft.com/2017/05/30/red…
@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:13потому что взять так со старта и найти репозиторий в котором можно помочь очень маловероятно, что вырождается в рождение сторонних проектов
10:14которые помогают влиться новичками, как например OSS board от @anton_davydov :
ossboard.org
Достаточно хорошо проблема решена у гитлаба, потому что пофильтровав issue на label + вес можно написать простые и понятные фичи
10:17А в процесс принятие MR входит и написание документации, и теста на них. Вы только сколько её (:
gitlab.com/gitlab-org/git…
Поэтому предлагаю простой опрос про OSS, а так же поделиться читателям про поиск OSS проектов и какой патч был веселее всего (:
10:25@backendsecret @anton_davydov codetriage.com тогда уже10:26
@backendsecret "Контребьючу без проблем" - это на грани утопии :( очень часто тяжело получить достаточно быстрый и… twitter.com/i/web/status/8…
Вот супер простой тикет с гитлаба:
gitlab.com/gitlab-org/git…
а вот в какой фидбэк это вылилось :(… twitter.com/i/web/status/8…
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:14P.S.S, we are hiring:
ostrovok.potok.io/open/jobs/1190
ostrovok.potok.io/open/jobs/2606
# Ссылки
github.com
- https://github.com/mozilla-services/Dockerflow
- https://github.com/earl/beanstalkc/pull/57
- https://github.com/menezes-/pystalkd
- https://github.com/menezes-/pystalkd/pull/8
- https://github.com/RussBaz/enforce
- https://github.com/google/incremental-dom
other
- https://aadrake.com/posts/2017-05-20-enough-with-the-microservices.html
- https://docs.microsoft.com/en-us/azure/architecture/patterns/
- https://www.youtube.com/watch?v=if6Ly9ik9pE
- https://www.youtube.com/watch?v=emgJtr9tIME
- https://www.youtube.com/watch?v=YN2ETIhrcHU
- http://andreacensi.github.io/contracts/
- http://www.mongodb-is-web-scale.com/
- https://ostrovok.potok.io/open/jobs/2606
- https://ostrovok.potok.io/open/jobs/1190
- http://www.aerospike.com/open-source/
- http://youtube.com/watch?v=emgJtr
- http://use-the-index-luke.com/blog/2013-10/mysql-is-to-sql-like-mongodb-to-nosql
- https://developers.google.com/closure/
- https://redditblog.com/2017/06/02/the-evolution-of-code-deploys-at-reddit/
- https://redditblog.com/2017/04/13/how-we-built-rplace/
- https://pydantic-docs.helpmanual.io/
- https://arxiv.org/pdf/1409.0252.pdf
- https://hackernoon.com/yes-python-is-slow-and-i-dont-care-13763980b5a1
- http://www.connellybarnes.com/documents/language_productivity.pdf
- https://blog.bradfieldcs.com/you-are-not-google-84912cf44afb
- https://codeascraft.com/2017/05/30/reducing-image-file-size-at-etsy/
- http://opensourcesurvey.org/2017/
- http://www.ossboard.org/
- https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc
- https://gitlab.com/gitlab-org/gitlab-ce/issues/31061
- https://www.codetriage.com/