uk
Feedback
S0ER

S0ER

Відкрити в Telegram

Архитектура | Программирование | Профессиональное развитие Соер.Клуб - https://t.me/soer_live По всем вопросам писать на @soerdev

Показати більше

📈 Аналітичний огляд Telegram-каналу S0ER

Канал S0ER (@softwareengineervlog) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 10 462 підписників, посідаючи 11 426 місце в категорії Технології та додатки та 61 087 місце у регіоні Росія.

📊 Показники аудиторії та динаміка

З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 10 462 підписників.

За останніми даними від 02 вересня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на 13, а за останні 24 години на 2, загальне охоплення залишається високим.

  • Статус верифікації: Не верифікований
  • Рівень залученості (ER): Середній показник залученості аудиторії становить 48.33%. Протягом перших 24 годин після публікації контент зазвичай збирає N/A% реакцій від загальної кількості підписників.
  • Охоплення публікацій: В середньому кожен допис отримує 0 переглядів. Протягом першої доби публікація в середньому набирає 0 переглядів.
  • Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 0.
  • Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як rbp, архитектура, callme, mov, указатель.

📝 Опис та контентна політика

Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
Архитектура | Программирование | Профессиональное развитие Соер.Клуб - https://t.me/soer_live По всем вопросам писать на @soerdev

Завдяки високій частоті оновлень (останні дані отримано 03 вересня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.

10 462
Підписники
+224 години
+97 днів
+1330 днів
Архів дописів
S0ER
10 464
Есть мнение, что монолит - это реализация какого-то конкретного архитектурного стиля, некоторые даже считают, что это самостоятельный архитектурный стиль. На самом деле монолит - это характеристика архитектуры рассматривающая возможность раздельного развертывания и характеризующая силу зацепления между компонентами архитектуры. Монолитные приложения могут быть созданы с использованием разных архитектурных стилей, как на рисунке выше. Основная особенность, все же, в монолите почти всегда "Data centric" подход с единственной БД и единственной связью между БД и приложением.

S0ER
10 464
Небольшая инфографика по вариантам архитектурных решений монолитных приложений
Небольшая инфографика по вариантам архитектурных решений монолитных приложений

S0ER
10 464
Эта мысль мне нравится тем, что для понимания того как лучше реализовать ту или иную часть проекта, нужно последовательно понять следующие моменты: - какие преимущества/недостатки есть в различных вариантах решения; - какие ограничения есть в проекте; - для чего мы реализуем тот или иной функционал. Рассматривать поставленные вопросы нужно снизу вверх, тем самым мы как раз и приходим к простому закону: "'Why' is more important then 'how'".

S0ER
10 464
В книге "Fundamentals of Software Architecture: An Engineering" Neal Ford, Mark Richards сформулирован офигенный "закон" архитектурного взгляда на проект, он звучит так: "'Why' is more important than 'how'"

S0ER
10 464
Спасибо Хауди Хо за наводку про комментарии для постов, подключил чат для обсуждений, теперь должна появиться возможность комментировать оставленные сообщения.

S0ER
10 464
В чем причина разделения бизнес-логики и логики приложения в DDD? Все дело в том, что бизнес-логика - это логика "реального" мира, на нее имеют влияние процессы, которые происходят за пределами "программы", поэтому причины и вектор развития бизнес-логики будут завязаны на "реальный мир", логика приложения же завязана исключительно на само приложение и изменение, и развитие будут происходить исключительно по внутренним причинам. Так как темпы изменений и причины разные, то разделив логику приложения и бизнес-логику мы получим более гибкое решение, которое легче сопровождать и развивать. Если же бизнес-логика и есть логика приложения (вырожденные случаи, когда мы разрабатываем приложение без бизнеса), то разделять их не имеет смысла.

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

S0ER
10 464
С DDD есть несколько нюансов, которые нужно помнить: - DDD плохо ложится на Data Centric подход, т.е. если у вас простой CRUD+Rest вокруг него, то DDD скорее всего не нужен - DDD не имеет смысла внедрять в маленьких приложениях, на самом деле если у вас порядка 30-40 User Stories, то это очень маленькое приложение, если начать делать его по DDD, то будет получен оверхед в виде ненужных Aggregate, Registry и Entities, куда проще использовать классический Transaction Script и сервисы.

S0ER
10 464
Чек-лист для проверки DDD архитектуры: 1) Проверка дизайна существует несколько основных элементов домена, которые могут применяться для хранения стейта и реализации поведения: - Entity, Value Object, Aggregate должны использоваться для хранения "стейта" и реализации "поведения" - Data transfer Object - только "стейт" - Service, Repository - только "поведение" 2) В DDD как правило используются следующие паттерны: - Domain Object - DTO - Repository - DAO 3) В DDD по возможности не должно быть: - Анемичных моделей - Fat Service - Зацепления между разными Enteties

S0ER
10 464
Памятка по версионированию: 1. Наиболее распространено семантическое версионирование MAJOR.MINOR.PATH-LABEL+MetaInfo MAJOR - обратно несовместимые изменения MINOR - обратно-совместимые изменения PATCH - локальные изменения 2. Библиотеки при учете совместимости должны учитывать: - бинарную совместимость - семантическую совместимость (один и тот же код, должен должен приводить к одному и тому же результату) - совместимость на уровне интерфейсов кода (один и тот же метод, должен иметь одну и ту же сигнатуру вызова) Если хотя бы одно из условий нарушается - увеличивается MAJOR версия 3. API должны учитывать совместимость: - по версии клиента (должен поддерживать все клиенты предыдущего API) - по версии сервера (должен работать на серверах поддерживающих предыдущий API) - по версии протокола (должен поддерживать все протоколы, что и предыдущий API) Если хотя бы одно условие нарушается, увеличивается MAJOR версия. 4. Схемы данных - При добавлении необязательных полей с дефолтным состоянием увеличивается MINOR - При добавлении обязательных полей увеличивается MAJOR

S0ER
10 464
photo content

S0ER
10 464
Доступ к API обычно осуществляется по следующей схеме
Доступ к API обычно осуществляется по следующей схеме

S0ER
10 464
- специализированные API - как правило API построенные на каком либо языке запросов, которые разрабатываются конкретно под сервер. Пример: SQL.

S0ER
10 464
- REpresentational State Transfer (REST) - набор прицнипов для построения легковесных API, как правило использует текстовый формат для обмена сообщениями (JSON, XML). Текстовый формат сообщений позволяет развязать зависимости сервера и клиента, не использовать какие-либо общие библиотеки. Унифицирован для веб-разработки.

S0ER
10 464
- Remote method invocation (RMI) - вариант RPC который "скрывает" удаленную природу вычислений и со стороны клиента выглядит так, будто вычисления выполняются локально.

S0ER
10 464
API стили: - Remote Procedure Call (RPC) - удаленный вызов процедур, один из самых используемых стилей при построении API. Он реализуется с помощью клиент-серверного шаблона архитектуры, и позволяет клиенту выполнять свой код удаленно на сервере. Обычно используют компактные бинарные форматы. Пример: gRPC ( https://grpc.io ), из более ранних примеров - SOAP

S0ER
10 464
По всем flow можно посмотреть конспект для архитектурных стримов: https://s0er.ru/codelabs/arch_stream_15/index.html#0

S0ER
10 464
Идея простая - есть одна основная ветка (trunk) весь код непрерывно сливается в нее, чтобы отсечь неработоспособные фичи (те фичи, которые находятся в разработке) используются флаги. Таким образом мы постоянно ревьюим код через Pull Request, а фичу включаем через флаг когда она готова.

S0ER
10 464
на изображении схематично показан алгоритм работы trunk flow, из плюсов: - простой и легкий - подходит для частых релизов и CI - не имеет проблем "длинных" слияний (когда ветка долго в разработке находится)

S0ER
10 464
Если меня попросят порекомендовать flow для разработки проекта, то пожалуй это будет Trunk based + Feature flag + Branch by a
Если меня попросят порекомендовать flow для разработки проекта, то пожалуй это будет Trunk based + Feature flag + Branch by abstraction