emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc. – Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
3.48K subscribers
119 photos
15 videos
22 files
1.14K links
Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, Extreme Programming, SDLC, Agile, etc.

Chat: https://news.1rj.ru/str/emacsway_chat

Persistence: https://dckms.github.io/system-architecture/
Download Telegram
Не столько интересны конкретные реализации, сколько тенденция формирования тренда в Golang:

#Golang #CleanArchitecture
​​Пример чистой архитектуры проекта на Go, основанный на принципах, изложенных в популярной статье «The Clean Architecture» от Роберта Мартина.

https://proglib.io/w/358897a2
Forwarded from @yarosh_log
Оч советую глянуть книжки underscore.io для общего развития и вообще
https://underscore.io/training/

Essential Scala
Creative Scala
Scala with Cats
The Type Astronaut's Guide to Shapeless Book
Прекрасная подборка ссылок по распределенной архитектуре.
Literature references for "Designing Data-Intensive Applications".
This repository accompanies the book Designing Data-Intensive Applications by Martin Kleppmann, published by O'Reilly Media.
https://github.com/ept/ddia-references

#DistributedSystems
Возник как-то в большом архитекторском чате вопрос по Agile, и я изложил там свои аргументы, и хочу поделиться ими здесь.

Agile является естественным следствием эволюции итеративной разработки, краткий обзор которой можно посмотреть в превосходной статье Craig Larman https://www.craiglarman.com/wiki/downloads/misc/history-of-iterative-larman-and-basili-ieee-computer.pdf

Лучше всего понимать суть вещей от первоисточника. Пожалуй, наибольшее влияние на Agile оказал Kent Beck. Именно от него нахватался этих идей Robert C. Martin, который в 2001 году организовал встречу группы из числа 17 человек, которые приняли Agile Manifesto.

Kent приводит два графика стоимости изменения кода, по которым может протекать разработка.

Первый график: https://emacsway.github.io/_images/exponential-cost-of-change.png

При таком графике момент принятия решения играет важную роль, так как от этого зависит стоимость его реализации, причем, эта стоимость может возрастать на порядки. Это вынуждает принимать решение в момент наименьшей стоимости реализации, т.е. заблаговременно, т.е. BDUF. Это та самая причина, по которой итеративная разработка до конца 90-х, конечно же, была, но она была экономически нецелесообразной, и поэтому не нашла массовости.

Кое-что произошло в конце 90-х. Много писать не буду, скажу только, что это привело к другому графику, который приводит Kent Beck:
https://emacsway.github.io/_images/asymptotic-cost-of-change.png

При втором графике стоимость реализации уже не так сильно зависит от момента принятия решения. Это позволяет принимать и изменять решения когда программа уже реализована, опираясь на фидбэк от практической эксплуатации решений, реализованных в предыдущих итерациях. С этого момента итеративные разработки начинают становиться массовыми, но, надо заметить, что даже до сегодняшнего дня этот вопрос протекает проблемно, и здесь масло в огонь подлило одно судьбоносное решение Ken Schwaber в Scrum.

Scrum включал в себя набор технических практик, заимствованных из XP, нацеленных на снижение стоимости изменения кода. Но это сдерживало продвижение Scrum в массы, так как вносило организационную сложность. Ken Schwaber хотел форсировать распространение Agile, и убедил Jeff Sutherland «оставить инженерные практики за рамками Scrum, чтобы упростить модель и позволить командам брать на себя ответственность за выбор тех или иных практик» (Henrik Kniberg), четко обозначив Scrum как фреймворк, который разработчики, по своему усмотрению, должны дополнять практиками.

Scrum, действительно, стал распространяться вирусно. Но проблема в том, что на технические практики мало кто обращал должное внимание, что приводило к взлету стоимости изменения кода, при котором Agile уже не обладал экономическим превосходством перед BDUF. Это подмочило репутацию Agile на рынке. По этому поводу есть статья на AgileAlliance (сайт основан подписантами манифеста)
https://www.agilealliance.org/how-to-increase-velocity/

#Agile #ExtremeProgramming