Чтобы добавлять сообщения и комментарии, .

@mismatch:
mismatch

somethingsimilar.com — Notes on Distributed Systems for Young Bloods

@mismatch:
mismatch

habrahabr.ru — «Красота» кода — зло! Никогда не называйте код «красивым», даже мысленно. Самый изощрённый говнокод получается из стремления «сделать красиво». Код может быть читаемым, предсказуемым, лаконичным — но никак не красивым!

Что тут скажешь? Сердцу не прикажешь :) Смотришь на один код и умиляешься, а от другого плеваться хочется. И в этот момент не раскладываешь код по полочкам. Это уже, когда джуну объясняешь, что такое хорошо и что такое плохо.

Но, конечно, я не спорю, что "Самый изощрённый говнокод получается из стремления «сделать красиво»", потому что никто не отменял «хотели как лучше, а получилось как всегда». И, конечно, рефакторинг не должен превращаться в лоботомию. Поэтому сплюнули, включили мозги и принялись за работу.

@mismatch:
mismatch

youtu.be — введение в Kafka Streams

@mismatch:
mismatch

youtu.be — Perfect Scalability (by Michael Nash). При идеальной масштабируемости чем больше добавляем ресурсов тем большую нагрузку система может выдержать и эта зависимость линейная. Избегайте разделяемого состояния и соревнования за доступ к нему (за счет дублирования данных). Не полагайтесь на порядок операций (сделайте их идемпотентными). Минимизируйте общение между компонентами вашей системы, отдавайте предпочтение асинхронному взаимодействию. Разрабатывайте компоненты так, чтобы падение одного из них не приводило к падению всей системы. Масштабируемая система должна быть децентрализованной и постоянно развиваться пока функционирует. Применяйте command sourcing, чтобы справиться с пиковыми нагрузками, — принимайте и запоминайте комманды сразу, применяйте, когда есть свободные ресурсы. Сложные системы плохо масштабируются.

@mismatch:
mismatch

infoq.com — One Weird Trick for Making Perfect Software — Pieter Hintjens (автор ZeroMQ) рассказывает о результато-ориентированном подходе к созданию идеального ПО. Идеальное ПО в первую очередь помогает конечным пользователям решать их собственные проблемы и успешно на рынке. Его разработка движима неудовлетворенными потребностями пользователя. Эти потребности документируются в виде набора небольших проблем, каждую из которых можно достаточно легко держать в голове и решить за относительно короткое время (не более нескольких часов — чем меньше, тем лучше). При этом разработка ведется так, что один коммит решает одну проблему и новая проблема решается преимущественно за счет добавления нового кода, минимально затрагивая существующий. Этот подход требует определенной компетенции от разработчика и не предполагает разгребания технического долга.

@mismatch:
mismatch

codepen.io — арпеджиатор на javascript

@mismatch:
mismatch

infoq.com — Тесты или продвинутая система типов? На что положиться? И то и другое требует дисциплины. При этом качество тестов может существенно варьироваться — не зря же придумали мерить покрытие и мутационное тестирование.

@mismatch:
mismatch

ted.com — Адам Грант: Неожиданные привычки тех, кто мыслит оригинально

@mismatch:
mismatch

infoq.com — если вы все еще пишете на ООП языке, но поглядываете в сторону ФП, морщась при упоминании монад и аппликативных функторов, этот доклад для вас.

@mismatch:
mismatch

youtu.be — полезно послушать, если вы пишите свой фронтэнд на react.js

@mismatch:
mismatch

youtu.be — хороший вводный доклад о HATEOAS и о том как добавить его в свой REST сервис, используя Spring Hateoas.

@mismatch:
mismatch

ted.com — Тим Урбан: Что происходит в голове у закоренелого прокрастинатора

@mismatch:
mismatch

youtu.be — самый мощный и "бесполезный" доклад на конференции ReactEurope о силе ограничений и уровнях абстракции.

@mismatch:
mismatch

skillsmatter.com — BDD + DDD или как, общаясь с заказчиком, перенести знания из предметной области в код. При кодировании этих знаний вы можете обнаружить, что каких-то понятий не хватает. Это нормально. Продолжайте общаться с заказчиком, задавайте уточняющие вопросы. Главное, не сводите это общение к обсуждению UI.

@mismatch:
mismatch

infoq.com — хороший доклад, который стоит послушать, чтобы понять как event sourcing и cqrs могут помочь вашей микросервисной архитектуре.

@mismatch:
mismatch

book.mixu.net — о распределенных системах доступным языком. В этом относительно небольшом введении рассказано о том, почему важны время и порядок операций, какие есть варианты координирования узлов системы, и какие проблемы приходится решать при нарушении связности распределенной системы. Теме репликации отведены две главы, которые определенно стоит прочитать, если ваша база данных выросла из штанишек :). Также в конце каждой главы есть ссылки на работы, в которых вы найдете больше деталей и более строгие формулировки, если какая-то тема вас особо заинтересует.

@mismatch:
mismatch

О микросервисах не говорил только ленивый. Сейчас все больше говорят о чатботах. Так может пора запилить чатбот как микросервис? Подробности здесь — youtu.be

Если идея вам понравилась, то не лишним будет узнать и о подводных камнях — youtu.be

yegor256.com — для тех, кто предпочитает читать, а не слушать.

@mismatch:
mismatch

youtu.be — если вы собираетесь переписать приложение послушайте, на что вам стоит обратить внимание и чего стоит избегать. Главное, не переписывать все сразу, знать, когда остановиться и не переписывать в спешке.

@mismatch:
mismatch

martinfowler.com — интересная и обстоятельная статья о переключателях "фич" с их классификацией, советами по реализации и поддержке. Рассматриваются варианты конфигурации этих переключателей: статические (прямо в коде или отдельном конфигурационном файле) и динамические (в базе данных или распределенных системах хранения конфигурации Consul, etcd, ...). Из советов по реализации обращает на себя внимание подход, названный "инверсия принятия решения" (inversion of decision), упрощающий тестирование функциональности в зависимости от состояния переключателя.

@mismatch:
mismatch

youtu.be — годный доклад об архитектуре, как ее не заф**апить и от чего это зависит