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
Forwarded from Евгений Козлов пишет про IT (Eugene Kozlov)
🗺 Карта канала

Перед тем как делать новый цикл постов я решил собрать всё что уже рассказывал ранее. Здесь ссылки на посты, статьи и Github репозитории созданные и найденные мной за 2 года ведения канала.

🟢 Backend
🔹Цикл постов о ресурсах по прокачке в Backend #0 #1 #2 #3
🔹Как я изучал язык Go
🔹Как практиковаться начинающему разработчику?
🔹Подборка ресурсов по Git
🔹 Хорошие практики разработки типичных back-end приложений

Мои первые статьи на Хабр:
🔹 Практический гайд по процессам и потокам (и не только) в Python
🔹 Многопоточность в Python: очевидное и невероятное

🟢 Big Tech Interview
🔹Мой план ресурсов по покорению Big Tech в 2022м
🔹 Всё, что нужно знать о System Design для прохождения интервью и не только
🔹 Мой личный план изучения алгоритмов (протестирован на учениках, работает)
🔹 Бесплатная книга для любитетей хардкорных алгоритмических задач

🟢 Базы данных, брокеры сообщений

🔹 Подборка книг по СУБД. От новичка до эксперта.
🔹 Простым языком об Apache Kafka, как, зачем и почему
🔹 Подборка классных и бесплатных ресурсов по PostgreSQL
🔹 Партиционирование в PostgreSQL

🟢 Docker, K8s, Microservices
🔹Цикл постов о виртуализации и контейнерах #1 #2 #3 #4
🔹TOP 3 ресурса по погружению в Docker, Kubernetes, Microservices, Cloud Native.
🔹Подборка для изучения и практики Kubernetes

🟢 Soft Skills, Mindset
🔹1-to-1
🔹Какие вопросы стоит задать перед тем как принять оффер? #1 #2
🔹Зарплатные переговоры
🔹Как правильно задавать вопросы, если ты начинающий айтишник
🔹Наглядный жизненный урок

🟢 Microservices
🔹Монолитная архитектура
🔹Прагматичный взгляд на Микросервисную архитектуру.


🟢 Linux, DevOps, SRE
🔹Подборка бесплатных ресурсов по изучению командной строки и утилит Linux #1 #2 #3
🔹Изучение DevOps
🔹Бесплатный видеокурс по основам SRE от инженеров Google Cloud
🔹SRE Interview Preparation Guide
👍17🔥65
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Рекомендую: https://news.1rj.ru/str/pragma_tist https://news.1rj.ru/str/denis_beskov
Тг-канал Дениса Бескова сменил свой адрес на https://news.1rj.ru/str/denis_beskov

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

Автор профстандарта системного аналитика, основатель школы системного анализа и проектирования, организатор и спикер конференций, в свое время построил отдел системных аналитиков в Лаборатории Касперского.

Подписывайтесь)
🔥6❤‍🔥2👍1👌1
Forwarded from IT Юмор
Отправьте знакомым руководителям
😁39👍3🤯2
Сколько вы знаете специалистов, которым вы доверили бы разработку архитектуры или реализации информационной системы на свои собственные инвестици (без вашего личного участия)?
Anonymous Poll
86%
до 5
10%
от 5 до 10
2%
от 10 до 20
1%
от 20 до 50
2%
более 50
Иногда хочется так много сделать, но так мало получается сделать. А у него получилось. И я хорошо понимаю, какой титанический труд за этим стоит. Хочу пожелать успехов и дальнейшего развития.

Кстати, недавно я стал случайным слушателем его курса для бизнес-аналитиков. И был впечатлен.

Не реклама. Мое мнение. Потому что хочу, чтоб таких качественных курсов было побольше на нашем захламленном рынке знаний.
🔥5👍32👎1🙏1
Будучи ИТ-специалистом, сталкивались ли вы или ваши близкие с неправомерными действиями или бездействием правоохранительных органов РФ. Анонимный опрос.
Anonymous Poll
34%
Сталкивался
66%
Не сталкивался
👍4👎3😢3🔥1😁1🙏1
Я принес. Измерение продуктивности разработчиков. В двух частях

Сегодня я принес вам почитать две части статьи про измерение продуктивности разработчиков.

Раз https://newsletter.pragmaticengineer.com/p/measuring-developer-productivity
Два https://newsletter.pragmaticengineer.com/p/measuring-developer-productivity-part-2

Статьи объемные и на английском. Поэтому уместен мем про «мало того, что приколы сложные, так еще и на английском».

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

Если коротко, то в статьях рассматривается интеллектуальный труд в группах (ну то есть наша с вами рутинная работа) и объясняется, что не шибко корректно оценивать перформанс каждого отдельного участника. Каждый отдельный работник может подстроиться под метрики и наперформить много, но наперформят они в разные стороны и результат труда такой команды будет по итогу довольно далек от суммы радужных разрозненных результатов.

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

В общем, если вы руководитель, который строит, или модифицирует систему оценки производительности трудящихся, то стоит ознакомиться как минимум для расширения кругозора.
Ну и чтобы не придумать метрику на измерение строчек кода или колличества коммитов и из них выносить вердикт 🙂
👍7🔥21
Forwarded from Ivan
Там все чуть сложнее. Если совсем просто объяснять, то итерация - это "метод научного тыка".

Бытовой пример. Например, нужно обесточить и заменить розетку. Видим в щитовой кучу автоматов. Какой из них выключить? Можно, конечно, определить путем логического вывода, например, отыскать схему разводки или исследовать разводку детектором скрытой проводки. А можно просто включить в розетку лампочку и поочередно перебирать все рубильники до тех пор, пока не угадаем.

Как говорил математик Polya: "If you run into a dead end in one of the areas, iterate!".

Суть итерации в том, что иногда проще сделать и изменить, чем пытаться угадать с первого раза.
👍12
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Когда-то я услышал, что пишущий архитектор - это настолько бессмысленно, абсурдно и невероятно, как "генерал авиации, летающий на боевые". Недавно мне попалась статья, в которой именно о таком генерале рассказывает прославленный ас Александр Покрышкин: 📝
Типичная ситуация в работе архитектора - это когда он начинает прорабатывать решение, и тут выясняется, что оно не может быть реализовано, потому что legacy, функциональность размазана между разными моделями (и командами), лапша пронизывает все компоненты, согласованность не обеспечивается, инварианты дырявые, и тут начинается царство археологии.

Решение оказывается мертворожденным. Чтоб его оживить, возникает соблазн окутать его метастазами системы.

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

Система отражает то, что творится в головах программистов. А значит, здоровье системы начинается отсюда. Это и есть фундамент. Согласен с Gregor Hohpe в том, что табуретка архитектора о трёх ногах: Skill, Impact, Leadership.

Лидерство. Архитектор или становится вождем и принимает на себя ответственность за судьбу проекта, или он рисует мертворожденные стрелочки с квадратиками где-то на обочине жизненного русла продукта. Еще недавно подобное явление называли "хвостизм". Наверное, поэтому первой книгой в списке от Gregor Hohpe идет книга "Clean Code". А второй - "Refactoring".

💬 "When designing a single software component, architects should focus on good coding and design practices." -- Gregor Hohpe

Знания программистов - это первое, с чего я всегда начинал работу на новых проектах. И только потом - стрелочки и квадратики. Тем более, что в Screaming Architecture эти стрелочки не так уж сильно и нужны. А от лапшы они все-равно не спасают.

Лекционный формат не работает. Одна картинка стоит тысячи слов. Поэтому важно сделать один сервис образцово-показательным. А дальше copy-paste сделает свое дело. Программисты часто прибегают к копированию. Было бы что копировать. Если копировать нечего, тогда наступает царство "Теории разбитых окон". Если копировать нечего, то оно само не появится (иначе появилось бы раньше). Значит, его должен создать архитектор. Сам, или совместно с программистами, - зависит от ситуации.

Обычно странглирование оказывается эффективней рефакторинга. Странглирование еще и выгодней по политическим причинам - новое будет хорошо контрастировать на фоне старого. Это если, разумеется, архитектор умеет в код, и умеет быть лидером.
🔥16👍103💯3
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Типичная ситуация в работе архитектора - это когда он начинает прорабатывать решение, и тут выясняется, что оно не может быть реализовано, потому что legacy, функциональность размазана между разными моделями (и командами), лапша пронизывает все компоненты…
Много раз на практике наблюдал ситуацию, когда специалист имеет правильное понимание, но не может его аргументированно донести своим коллегам. Возникает борьба за лидерство, токсичность, конфликтность. Одни только баттлы вокруг SRP чего стоят. Нередко это заканчивается агрессивно-пассивной позицией: "делай как хочешь, только меня потом не трогай".

Ключем к пониманию ситуации является слово "потом".

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

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

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

Я уже говорил, что лидерство заключается, в первую очередь, в дальности горизонта видения. Еще в Дао Де Цзин писали, что мудрый лидер управляет не запретами, а проливанием света на последствия. Вот этот горизонт видения и есть то самое, вокруг чего люди объединяются.

Именно поэтому Craig Larman говорил:
💬 “Место, где происходит реальная работа” в программировании - это код, из чего следует, что первоклассными менеджерами должны становиться лучшие разработчики, которые часто оценивают код.
- Craig Larman, https://less.works/ru/less/principles/systems-thinking.html

Хороший лидер уберегает от проблем. Потому что способен их предвидеть. Потому что знает. Что означает, что ничто другое не имеет значения.

Как говорил Л.Н.Толстой, один из самых влиятельных людей мира, единственным инструментом власти которого было слово:
💬 "Всякая истина, выраженная словами, есть сила, действие которой беспредельно".

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

Хорошим примером является DDD. Зачастую разработчики интуитивно чувствуют его полезность, но не понимают какую именно проблему он решает. Попытки "насадить" DDD могут привести к формированию оплота сопротивления. Даже у Nick Tune, известного автора по DDD, такое случалось.
🔥12👍4💯1🤨1
В последнее время иногда слышу термин "управление накоплением знаний". Я уже говорил о том, что процесс обретения знаний сопровождается сокращением количества информации. Подобно тому, как скульптор освобождает образ, отсекая все лишнее. Коллекционировать знания не нужно, т.к. можно запутаться.

Иногда приходилось наблюдать ребят, которые начинали заниматься накопительством знаний, пока не начинали тонуть в когнитивной нагрузке. На этом их процесс развития останавливался, и они возводили стены психологической защиты вокруг того, что они успели освоить. Тот информационный хлам, который они успели бесформенно освоить, создавал у них иллюзию наличия знаний, усиленную эффектом иррационального усиления на вершине пика глупости кривой Даннинга-Крюгера. Что приводило к их высокой токсичности.

Пост на аналогичную тему:
https://news.1rj.ru/str/ru_arc/178
👍8🔥42🤔2