Эргономичный код
794 subscribers
76 photos
3 videos
20 files
385 links
Канал о разработке поддерживаемых бакэндов - про классическую школу TDD, прагматичное функциональное программирование и архитектуру и немного DDD.

Группа: https://t.me/+QJRqaHI8YD

https://azhidkov.pro
Download Telegram
Привет!

Надоело мне мурыжить пост о построении диаграммы реального проекта, поэтому я волевым усилием его быстренько добил и с радостью представляю вашему вниманию:)

А дальше в серии будет два спиноффа - "Сцепленность" и "Объектный дизайн, как средство снижения сцепленности". Обе концепции у меня самого ещё не до конца разложены по полочкам, поэтому не берусь спрогнозировать сколько мне времени мне потребуется на эти посты.

После чего я смогу вернуться к третьему посту серии о применении диаграммы эффектов для объектной декомпозиции системы на модули. Но боюсь как бы это не осенью было.

#effects_diagram@ergonomic_code #case@ergonomic_code #project_geoservices@ergonomic_code #posts@ergonomic_code
2
Привет!

Наконец-то деделал лэндинг и спеку для Диаграммы Эффектов.
Плюс на лэндинге выложил ещё один кейс диаграммы реального коммерческого проекта, значительно большего, чем True Story Project

#effects_diagram@ergonomic_code #ergo_approach@ergonomic_code #project_geoservices@ergonomic_code #case@ergonomic_code
🔥6
Привет!

Я уже писал, что даже декомпозиция на базе эффектов не является уникальной для ЭП.

Недавно я осознал, что этот подход можно использовать и для декомпозиции на микросервисы. И что вы думаете? Всё те же мужики, всё так же пришли к этой идеи раньше меня:)

Identifying Microservices Using Functional Decomposition

Сам эту статью ещё не читал, горячим пирожком поделился:)

#papers@ergonomic_code #effects_diagram@ergonomic_code #ergo_approach@ergonomic_code
👍2
Привет!

Я прочитал Identifying Microservices Using Functional Decomposition - вы можете не читать, там ни чего особо нового:)
Самый полезный бит информации, это то что авторы экспериментально на трёх реализациях одного проекта подтвердили мой тезис "Она [декомпозиция на базе эффектов] проще в изучении и применении группировок по фичам, компонентам и ограниченным контекстам/агрегатам, но даёт результаты такого же качества." [1].
У них получилось, что интуитивная декомпозиция требует "дней", а автоматизированная на базе эффектов - "часов". А результаты идентичные

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

#effects_diagram@ergonomic_code #ergo_approach@ergonomic_code
👍2
Привет!

А вот и подошла очередь анонсированного ранее релиза спеки диаграммы эффектов в0.1.0.

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

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

#posts@ergonomic_code #effects_diagram@ergonomic_code #ergo_approach@ergonomic_code
👍4
Привет!

Не спрашивайте как, но я тут наткнулся на очередную любопытную статью - Analyzing Error-Prone System Structure.

В ней авторы приводят результаты анализа реальной системы на предмет зависимости количества и стоимости исправления ошибок в подсистемах от сцепленности и функциональной связанности подсистем.

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

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

#papers@ergonomic_code #coupling@ergonomic_code #effects_diagram@ergonomic_code
🔥5👍1
Привет!

Сегодня у меня будет три топика.

Фидбэк по опросу

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

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

Новый микропрост

На выходных я пропрокрастинировал пост с ретро Проекта Э микропостом (опять же по степени полировки, а не объёму) с описанием решения потенциального "сложного случая" при декомпозиции диаграммы эффектов новой интеграции в Проекте Э.
Ну или аннотация привлекательная для более широкой аудитории - написал микропост с алгоритмом принятия решения о том, в какой класс или микросервис поместить операцию, которая в равной степени зависит от двух классов/микросервисов.

Пост с ретро Проекта Э

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

Текущее состояние поста следующее:
1. В посте есть 3500 слов примерно на 20-25 минут чтения
2. Осталось расписать - техсложности, факапы в проде, деплой, итоговые цифры
3. После чего будет скорее всего долгий и мучительный процесс полировки, который среди прочего будет включать:
3.1 Более глубокое раскрытие "популярных" тем
3.2 Добавление в каждый раздел подраздела "Полезняшки" - что вы себе сможете утащить из моего опыта.

#posts@ergonomic_code #project_3@ergonomic_code #case #effects_diagram@ergonomic_code
👍3
Привет!

Джуг наконец-то опубликовал запись моего доклада о декомпозиции на базе эффектов с JPoint!:)

А ещё они мне подарили бесплатный оффлайн билет на Джокер:) Не знаю, сколько ещё продлится этот аукцион невиданной щедрости, но приятно.

В общем ещё раз рекомендую Джуг в качестве организатора конференций - теперь я ещё в чуть большем восторге:)

#talks@ergonomic_code #ergo_approach@ergonomic_code #effects_diagram@ergonomic_code #project_camp@ergonomic_code #case@ergonomic_code
👍13🔥2🎉1🐳1