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
Как-то раньше я и не задумывался о том, что подходы к развертыванию приложений можно взять и пересчитать https://thenewstack.io/deployment-strategies/ а еще и анимированными картинками сопроводить
Третья книга 2020 года по SRE от Google:
"Building Secure & Reliable Systems"
https://landing.google.com/sre/books/

Можно скачать с первоисточника.

#Microservices #SRE #DevOps
Неплохая статья на тему OOP vs Procedural Programming. Дает еще одну точку зрения на Anemic Domain Model.

"Classes vs. Data Structures"
http://blog.cleancoder.com/uncle-bob/2019/06/16/ObjectsAndDataStructures.html

Очень хорошо эта тема раскрывается в главе "Chapter 6: Objects and Data Structures : Data/Object Anti-Symmetry" книги “Clean Code: A Handbook of Agile Software Craftsmanship” by Robert C. Martin.

Еще на эту тему:
"Что такое expression problem, или О дуализме функционального и объектно-ориентированного программирования"
https://ru.hexlet.io/blog/posts/expression-problem

#SoftwareDesign #DDD
Перевод монументальной статьи "Is Design Dead?" by M.Fowler о том, как избежать крайностей в архитектуре приложения при Agile разработке: http://citforum.ru/SE/project/design_dead/

#SoftwareDesign #SoftwareArchitecture #Agile
Поговорим немного о целесообразности посещения курсов. Курсы, конечно, бывают разные, и их нужно рассматривать дифференцировано. Но будем считать, что нам посчастливилось найти качественные курсы. Насколько целесообразно их посещение?

Software Construction/Design/Architecture - это довольно обширная область знаний, на глубокое изучение которой может и жизни не хватить. Но нужна ли глубина везде и во всем?

Для полноценного развития специалиста нужно поддерживать баланс между глубиной и охватом знаний (кругозором).

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

Недостаток кругозора вызывает "зашоренность" (от слова "шоры"). Шоры ограничивают обзорность. Но нужно понимать, что коню надевают шоры именно потому, что им управляет наездник, обладающий необходимой обзорностью, и только вместе они являются единицей участия в скачках.

Литература дает хорошую глубину знаний, однако, темпы освоения литературы работающим специалистом зачастую недостаточны для формирования требуемого кругозора. Это как раз та ниша, где курсы могут дать в короткое время необходимую обзорность знаний, не отвлекая на себя много ресурсов времени от ключевых вопросов. Они позволяют очертить горизонты знаний, и облегчить ориентирование. Так же они позволяют дать еще одну точку зрения на собственную структуру знаний, кристилизовать их, обнаружить пробелы, расставить приоритеты.

Приоритеты - вот то, что является важным, и здесь так же действует "Принцип Парето".

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

На этой неделе я посетил один из курсов от https://www.luxoft-training.ru/training/katalog_kursov/ именно по этой причине - мне нужно было в лимитированные ресурсы времени получить необходимый кругозор знаний по вопросам, которые для меня в настоящий момент не являются приоритетными, но с которыми мне тоже приходится работать (речь идет о методиках документирования архитектуры), вскрыть пробелы, систематизировать и подвергнуть ревизии свои знания.

Впечатления остались весьма позитивные. Ожидания полностью оправдались. К тому же там снабжают необходимыми методичками, и проделывают за вас всю работу по дисцилляции весьма увесистого объема литературы.

Можно выделить следующие направления:
- https://www.luxoft-training.ru/training/katalog_kursov/arkhitektura-po/
- https://www.luxoft-training.ru/training/katalog_kursov/upravlencheskaya_effektivnost_i_kommunikatsii/
- https://www.luxoft-training.ru/training/katalog_kursov/lichnaya_effektivnost/
- https://www.luxoft-training.ru/training/katalog_kursov/testirovanie/
- https://www.luxoft-training.ru/training/katalog_kursov/sistemnyy-analiz/
- https://www.luxoft-training.ru/training/katalog_kursov/biznes-analiz/
- https://www.luxoft-training.ru/training/katalog_kursov/upravlenie_proektami_razrabotki_po/

Пост отражает мое мнение и не является рекламой.

Если вы ищите курсы, то я бы советовал еще присмотреться к курсам @vkhorikov (на мой взгляд, у него лучшие русскоязычные курсы по DDD и тестированию):
- https://www.pluralsight.com/authors/vladimir-khorikov
- https://it.eductera.com/experts/expert/52/

P.S.: посещение курсов и конференций у нас в компании оплачивается, засчитывается в рабочее время, и даже является обязательным. Так что, если вы в поиске более лучших условий для своего профессионального роста как разработчик (и есть желание делать это на Golang), то можете обратиться ко мне в приват - окажу содействие нашему HR.

#Career #SoftwareDesign #SoftwareArchitecture
Та самая книга, которую никто не читал, но которую все знают 🙂))
#Юмор
📝 "New educational materials!
Today I'm announcing two new, free resources I've written: an 8-lecture course on fundamentals of distributed systems, and a 30-page tutorial on elliptic curve cryptography. https://martin.kleppmann.com/2020/11/18/distributed-systems-and-elliptic-curves.html "
- Martin Kleppmann
https://twitter.com/martinkl/status/1329051710019543041?s=19

P.S.: Если кто не знает, Martin Kleppmann - один из лучших авторов по распределенным системам. Автор "Кабанчика".

The distributed systems course comprises about 7 hours of video and 87 pages of lecture notes. It covers the following topics:
1. Introduction: distributed systems, computer networks, and RPC
2. System models: network faults, crash and Byzantine faults, synchrony assumptions
3. Physical clocks, clock synchronisation, and causality
4. Logical time, broadcast protocols (reliable, FIFO, causal, total order)
5. Replication, quorum protocols, state machine replication
6. Consensus, details on the Raft consensus algorithm
7. Replica consistency, two-phase commit, linearizability, eventual consistency
8. Case studies: collaboration software, Google’s Spanner

#SoftwareDesign #DistributedSystems #SoftwareArchitecture
Домашний портал, который можно установить на RaspberryPi и получать всю необходимую информацию: погоду, пробки, список задач и другие. Есть возможность расширения и добавления нового функционала. Лицензия - GPL-3.0.

HomePortal написан на JavaScript: Frontend написан на Vue, Backend на микросервисах с Molecular.

🔗 https://github.com/home-portal/core
🔗 https://youtu.be/-RMQ2eQlAQY
#repo #github #raspberry #smarthome
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Два самых важных совета о самообучении, которые я когда либо слышал. 📝 "A little reading goes a long way toward professional advancement. If you read even one good programming book every two months, roughly 35 pages a week, you’ll soon have a firm grasp on…
Мотивирующее фото для тех, кто сетует на нехватку времени и не может прочитать ни одной книги за полгода. Это фото Сергея Теплякова: https://www.instagram.com/p/CGv38kHnotb/?igshid=1nrcey0v5xa75
Который не только прочитал, по моим оценкам, уже более пары сотен технических книг, но и даже успел написать одну книгу, а так же кучу архи-полезных статей у себя в блоге http://sergeyteplyakov.blogspot.com/
Работает он сейчас в Microsoft и живет в США.

Это фото подтверждает слова А.В.Суворова: "Дисциплина - мать победы". У человека или есть дисциплина, и тогда он успевает все, или ее нету, и тогда он не успевает ничего.

#Career
👍5
C4-Model & Event Storming with ArchiMate, см. "Figure 13: Event Storming Model" of "Agile Architecture Modeling Using the ArchiMate® Language"
- https://publications.opengroup.org/g20e
- https://nicea.nic.in/sites/default/files/Agile_Architecture_Modelling_Using_Archimate.pdf
- https://nicea.nic.in/download-files.php?nid=247

Модель (обратите внимание на то, что автором модели является сам Jean-Baptiste Sarrodie):
- https://community.opengroup.org/archimate-user-community/home/-/issues/8

Archimatetool - бесплатный инструмент, с открытым исходным кодом, который позволяет управлять описанием архитектуры интегрированно, как в problem space, так и в solution space. Причем, осуществлять это коллективно.

Плагин к Archimatetool для коллективной разработки:

coArchi - a plug-in to share and collaborate on Archi models.
- https://github.com/archimatetool/archi-modelrepository-plugin

Описание плагина:
- https://www.archimatetool.com/plugins/#coArchi

Документация к плагину:
- https://github.com/archimatetool/archi-modelrepository-plugin/wiki

Пользовательская документация к Archimatetool:
- https://www.archimatetool.com/downloads/Archi%20User%20Guide.pdf

Archimatetool использует Grafico format файлов:
📝 "GRAFICO stands for "Git Friendly Archi File Collection" and is a way to persist an ArchiMate model in a bunch of XML files (one file per ArchiMate element or view)."
https://github.com/archi-contribs/archi-grafico-plugin/wiki/GRAFICO-explained

Это означает, что такие xml-файлы можно легко распарсить и сверить с кодом, обеспечив тем самым автоматизированную архитектурную надзорность.

Кстати, в Archimate можно делать и C4 Model, сохранив единую модель для всех её представлений:
- https://www.archimatetool.com/blog/2020/04/18/c4-model-architecture-viewpoint-and-archi-4-7/

Event Storming by PlantUML:
- https://github.com/tmorin/plantuml-libs/blob/master/dist/eventstorming/README.md

#EventStorming #DDD #Microservices #SoftwareArchitecture #ArchiMate