Используете ли вы каноничный TDD (test-first и цикл red-green- refactor)? Выберите самый подходящий вариант.
Anonymous Poll
6%
Постоянно, иначе и не могу
2%
Только на новых проектах
30%
Время от времени
13%
Умею, раньше использовал, но сейчас не применяю
27%
Нет опыта, хочу освоить
22%
Нет опыта и не планирую использовать
👍7
Продолжаем тему нейминга. Неплохой и местами капитанский доклад https://youtu.be/KHgftXIlGsY
YouTube
Naming in DDD - Sepehr Namdar & Khaled Souf - DDD EU 2022
http://dddeurope.com - https://twitter.com/ddd_eu - https://newsletter.dddeurope.com/ https://linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Naming is one of the hardest things to do when coding. It helps us…
Organised by Aardling (https://aardling.eu/)
Naming is one of the hardest things to do when coding. It helps us…
🔥6
Forwarded from StringConcat - разработка без боли и сожалений
Знакома ли вам ситуация, когда на предложение внедрить в проект что-то доброе и светлое, вроде чистой архитектуры, коллеги если и не кричат в открытую "нет", то очень скептически относятся ко всем доводам "за"?
К сожалению или к счастью, эволюция нашего мозга такова, что всю новую информацию он классифицирует либо как угрозу, либо как вознаграждение. При этом, проявлять интерес к чему-то новому он способен только будучи в безопасности. Почему это важно учитывать? Давайте на примере:
Петя, из-за тебя релиз вышел на три дня позже срока и всем пришлось работать до ночи. Заказчик был очень недоволен. Разве сложно написать три строчки кода, чтобы покрыть изменения после фикса бага?
Петин мозг в данном случае воспримет эту ситуацию как прямую угрозу жизни. Он, конечно, постарается сделать все, чтобы ее исправить, но осадочек, что называется, останется. И в тот момент, когда вы будете ему рассказывать про tdd, подсознательно его больше будет волновать тот факт, что если он опять накосячит с тестами, то его вышвырнут на улицу, а попробовать что-то новое без косяков невозможно, поэтому да ну его.
Как это исправить? Для этого умные люди придумали SCARF-модель, которая построена на удовлетворении 5 критически важных для мозга социальных потребностях: статус, определенность, автономность, принадлежность и справедливость.
Петя, ты перед отпуском закрывал срочный баг, но не покрыл исправление тестами. Вася внес изменения, которые откатили правку и без тебя мы не смогли это быстро починить. В следующий раз удели внимание тестам, команде важно не потерять результат твоей работы и сохранить стабильность релизов.
Опустим закадровое желание побить Петю и посмотрим, что дает такая формулировка:
🔹+2 к статусу ("без тебя не смогли", "нам важна твоя работа")
🔹+1 к определенности (ты, конечно, налажал, но мы тебя не выгоняем)
🔹0 про автономность (увы)
🔹+1 к принадлежности ("команда")
🔹+1 к справедливости (ты что-то сделал, оно привело к таким-то последствиям, вот что тебе нужно сделать, чтобы исправить ситуацию).
Итого: 5 баллов.
Чем больше баллов, тем больше наш мозг склонен воспринимать такую фразу, как обещание поощрения в будущем. И, соотвественно, чем баллов меньше, тем больше она воспринимается как угроза, даже если в реальной жизни вы не заставляете писать тесты под дулом автомата. В общем, наша рекомендация - попробовать применить. И уже если не сработает, то доставать автомат.
К сожалению или к счастью, эволюция нашего мозга такова, что всю новую информацию он классифицирует либо как угрозу, либо как вознаграждение. При этом, проявлять интерес к чему-то новому он способен только будучи в безопасности. Почему это важно учитывать? Давайте на примере:
Петя, из-за тебя релиз вышел на три дня позже срока и всем пришлось работать до ночи. Заказчик был очень недоволен. Разве сложно написать три строчки кода, чтобы покрыть изменения после фикса бага?
Петин мозг в данном случае воспримет эту ситуацию как прямую угрозу жизни. Он, конечно, постарается сделать все, чтобы ее исправить, но осадочек, что называется, останется. И в тот момент, когда вы будете ему рассказывать про tdd, подсознательно его больше будет волновать тот факт, что если он опять накосячит с тестами, то его вышвырнут на улицу, а попробовать что-то новое без косяков невозможно, поэтому да ну его.
Как это исправить? Для этого умные люди придумали SCARF-модель, которая построена на удовлетворении 5 критически важных для мозга социальных потребностях: статус, определенность, автономность, принадлежность и справедливость.
Петя, ты перед отпуском закрывал срочный баг, но не покрыл исправление тестами. Вася внес изменения, которые откатили правку и без тебя мы не смогли это быстро починить. В следующий раз удели внимание тестам, команде важно не потерять результат твоей работы и сохранить стабильность релизов.
Опустим закадровое желание побить Петю и посмотрим, что дает такая формулировка:
🔹+2 к статусу ("без тебя не смогли", "нам важна твоя работа")
🔹+1 к определенности (ты, конечно, налажал, но мы тебя не выгоняем)
🔹0 про автономность (увы)
🔹+1 к принадлежности ("команда")
🔹+1 к справедливости (ты что-то сделал, оно привело к таким-то последствиям, вот что тебе нужно сделать, чтобы исправить ситуацию).
Итого: 5 баллов.
Чем больше баллов, тем больше наш мозг склонен воспринимать такую фразу, как обещание поощрения в будущем. И, соотвественно, чем баллов меньше, тем больше она воспринимается как угроза, даже если в реальной жизни вы не заставляете писать тесты под дулом автомата. В общем, наша рекомендация - попробовать применить. И уже если не сработает, то доставать автомат.
👍40🔥8😁3❤1
Захотел загуглить какую-нибудь статью про System Design. Правктически вся выдача про System Design Interview. Такое ощущение, что данный термин стал использоваться только в контексте собесов 😅
😁44
Читал вчера статью Маттиаса Верраеса про Segregated Event Layers и внезапно узнал, что это серия статей о паттернах в контексте DDD и Messaging Architecture
https://verraes.net/2019/05/ddd-msg-arch/ Enjoy!
https://verraes.net/2019/05/ddd-msg-arch/ Enjoy!
Mathias Verraes' Blog
DDD and Messaging Architectures
An overview of my different series on patterns in distributed systems.
❤22👍2🎉1
Kenny Baas-Schwegler и Virtual DDD приглашают на встречу с Udi Dahan. Крайне рекомендую послушать. Также есть возможность заранее задать свои вопросы
https://www.meetup.com/virtual-domain-driven-design-meetup/events/294468728/
https://www.meetup.com/virtual-domain-driven-design-meetup/events/294468728/
👍14😁1
Хорошая новость: ACM опять договорился с O’Reilly, а заодно с Pluralsight и Skillsoft Percipio. И у них по-прежнему есть скидка для России (стоимость подписки $40 в год).
Плохая новость: Теперь это дополнительная платная опция (+$75 в год), да и курс с тех пор немного вырос.
Предложение теперь не такое заманчивое как раньше, но 1000р в месяц не выглядят такими уж безумными за пакет из 4 подписок (сам АСМ + три сторонних). Одна годовая подписка O’Reilly стоит в пять раз больше.
https://learning.acm.org/skills-bundle
Плохая новость: Теперь это дополнительная платная опция (+$75 в год), да и курс с тех пор немного вырос.
Предложение теперь не такое заманчивое как раньше, но 1000р в месяц не выглядят такими уж безумными за пакет из 4 подписок (сам АСМ + три сторонних). Одна годовая подписка O’Reilly стоит в пять раз больше.
https://learning.acm.org/skills-bundle
learning.acm.org
ACM has created a new Skills Bundle add-on providing unlimited access to ACM's collection of thousands of online books, courses…
The new Skills Bundle add-on is available to paid Professional Members only for the low additional cost of just $75 per year.
🔥17👍3
Неплохая подборка видео про DDD и около.
https://x.com/mjovanovictech/status/1695752490069762490?s=46&t=ExJM-wcqikMl9I7JeOzofA
P.S. Из очевидных плюсов – очень понятный по произношению английский 😅
https://x.com/mjovanovictech/status/1695752490069762490?s=46&t=ExJM-wcqikMl9I7JeOzofA
P.S. Из очевидных плюсов – очень понятный по произношению английский 😅
👍23😁7
Forwarded from Systems.Education: Системный Анализ и Проектирование информационных систем: архитектура, интеграции, базы данных (Systems Education)
Event Sourcing — это паттерн проектирования в информационных системах, который заключается в сохранении состояния системы путем сохранения истории всех событий, происходящих в системе.
Вместо того, чтобы сохранять текущее состояние объекта, система сохраняет все события, произошедшие с объектом, и воссоздает текущее состояние, используя эти события.
Когда происходит изменение состояния объекта, система создает новое событие и сохраняет его в хранилище событий. Это событие содержит информацию о том, что произошло, а не о текущем состоянии объекта. При необходимости система может воссоздать текущее состояние объекта, применяя все события из хранилища событий.
➖Хотите узнать подробнее, что такое event sourcing и какие преимущества и недостатки он имеет?
➖Хотите понять, какие трудности могут возникнуть при использовании этой технологии?
Тогда присоединяйтесь к нашему вебинару «Плюсы, минусы и подводные камни Event Sourcing», который состоится 28 cентября в 19:00 МСК
На вебинаре Станислав Щетинников из Сбера подробно расскажет о том, как на самом деле работает event sourcing, какие задачи он решает и какие преимущества он имеет. Мы также рассмотрим недостатки этой технологии и поделимся опытом в использовании event sourcing в реальных проектах.
Вебинар будет полезен разработчикам, архитекторам, техническим руководителям, которые хотят узнать больше о новых технологиях и подходах в разработке программного обеспечения.
✔️Подробности и регистрация
Вместо того, чтобы сохранять текущее состояние объекта, система сохраняет все события, произошедшие с объектом, и воссоздает текущее состояние, используя эти события.
Когда происходит изменение состояния объекта, система создает новое событие и сохраняет его в хранилище событий. Это событие содержит информацию о том, что произошло, а не о текущем состоянии объекта. При необходимости система может воссоздать текущее состояние объекта, применяя все события из хранилища событий.
➖Хотите узнать подробнее, что такое event sourcing и какие преимущества и недостатки он имеет?
➖Хотите понять, какие трудности могут возникнуть при использовании этой технологии?
Тогда присоединяйтесь к нашему вебинару «Плюсы, минусы и подводные камни Event Sourcing», который состоится 28 cентября в 19:00 МСК
На вебинаре Станислав Щетинников из Сбера подробно расскажет о том, как на самом деле работает event sourcing, какие задачи он решает и какие преимущества он имеет. Мы также рассмотрим недостатки этой технологии и поделимся опытом в использовании event sourcing в реальных проектах.
Вебинар будет полезен разработчикам, архитекторам, техническим руководителям, которые хотят узнать больше о новых технологиях и подходах в разработке программного обеспечения.
✔️Подробности и регистрация
😁5👍4❤1
Вышел новый техрадар https://www.thoughtworks.com/radar
Вижу много интересного – чуть позже будет обзор самых классных новинок (и не только)
Вижу много интересного – чуть позже будет обзор самых классных новинок (и не только)
Thoughtworks
Technology Radar | Guide to technology landscape
The Technology Radar is an opinionated guide to today's technology landscape. Read the latest here.
🔥15👍3
Сергей Баранов проводит завтра в канале стрим по ивент штормингу. Сергей, на мой взгляд — самый опытный русскоязычный эксперт по этой теме. Смело рекомендую!
Telegram
Event Storming
По всем вопросам
@sergey486
@sergey486
👍3😁1
Forwarded from Event Storming (Sergey Baranov)
Во вторник (10.10) в 19:00 проведу здесь стрим «Введение в Event Storming»
Он в большей степени для тех, кто хочет узнать что такое Event Storming:
- Основные сценарии использования
- Основные элементы
- Основные структуры
- Основные эффекты
- Основные артефакты, которые можно получить из модели Event Storming
- Ваши вопросы и мои ответы 🙂
Основной контент где-то на 40-50 минут, но так как это стрим, то тайминг не фиксирован.
Вопросы и ответы могут быть любой сложности, не обязательно из области «введения в Event Storming» (кстати, вопросы можно уже начинать задавать в виде комментариев к этому сообщению).
Like/Share 🙂
Он в большей степени для тех, кто хочет узнать что такое Event Storming:
- Основные сценарии использования
- Основные элементы
- Основные структуры
- Основные эффекты
- Основные артефакты, которые можно получить из модели Event Storming
- Ваши вопросы и мои ответы 🙂
Основной контент где-то на 40-50 минут, но так как это стрим, то тайминг не фиксирован.
Вопросы и ответы могут быть любой сложности, не обязательно из области «введения в Event Storming» (кстати, вопросы можно уже начинать задавать в виде комментариев к этому сообщению).
Like/Share 🙂
🔥41👍10
Хороший вопрос, сходу не вспомнил, но наверняка было😅
Поделитесь вашим опытом)
https://x.com/xanf_ua/status/1712880028852064762?s=46&t=ExJM-wcqikMl9I7JeOzofA
Поделитесь вашим опытом)
https://x.com/xanf_ua/status/1712880028852064762?s=46&t=ExJM-wcqikMl9I7JeOzofA
X (formerly Twitter)
Illya Klymov 🇺🇦 (@xanf_ua) on X
Большое количество "сеньйоров", которых я собеседую, проваливаются на вопросе "назовите решение, которое вы лично приняли, продвинули или хотя бы поддержали в проекте, которое аукнулось вам спустя год"
😁13
Начал экспериментировать с англоязычным контентом. Пока в качестве пробного шара перевел свою собственную статью про агрегаты. Шер-подписка ❤️
https://dddevotion.substack.com/p/aggregates
https://dddevotion.substack.com/p/aggregates
Substack
From Blur to Clarity: Understanding Aggregates, Anti-patterns, and Their Fixes in DDD
Domain-Driven Design distinguishes between strategic and tactical patterns.
🔥14👍3😁1
Как я уже писал, вышел новый техрадар. Заметно, что AI, LLM, Generative AI становятся новой нормальностью в индустрии. И если вы еще не погрузились, то крайне рекомендую. Это будет везде.
Вторая большая технология everywhere – Kubernetes. Различным обвесам к нему посвящена значимая часть пунктов нового радара. Сам k8s уже давно стал стандартом. Если вы пропустили рассвет этой технологии – также рекомендую наверстывать.
Но я и сам еще глубоко не копал эти темы, поэтому выделил несколько полезных и понятных для себя «блипов» без k8s и машинлёрнинга. Текста получилось много, попробую написать в комментах.
Вторая большая технология everywhere – Kubernetes. Различным обвесам к нему посвящена значимая часть пунктов нового радара. Сам k8s уже давно стал стандартом. Если вы пропустили рассвет этой технологии – также рекомендую наверстывать.
Но я и сам еще глубоко не копал эти темы, поэтому выделил несколько полезных и понятных для себя «блипов» без k8s и машинлёрнинга. Текста получилось много, попробую написать в комментах.
👍14
В пятницу была интересная дискуссия про то как следует коммитить. Я озвучил идею удаления кода, если он не может пройти тесты/линтеры/конвенции. На самом деле это не моя идея, я подсмотрел ее у Кент Бека, но даже не он автор (так бывает у великих художников). Подход называется TCR: test && (commit || revert)
Готовы такое попрактиковать на своей работе?)
Готовы такое попрактиковать на своей работе?)
Medium
test && commit || revert
As part of Limbo on the Cheap, we invented a new programming workflow. I introduced “test && commit”, where every time the tests run…
🔥10😁5👍2
Теперь и в наличии)
UPD: электронная версия, по информации из издательства, выйдет через 6-9 месяцев.
https://bhv.ru/product/izuchaem-ddd-predmetno-orientirovannoe-proektirovanie/
UPD: электронная версия, по информации из издательства, выйдет через 6-9 месяцев.
https://bhv.ru/product/izuchaem-ddd-predmetno-orientirovannoe-proektirovanie/
🔥78👍5❤1🎉1