home.social

#чистая_архитектура — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #чистая_архитектура, aggregated by home.social.

  1. Самые популярные ошибки начинающего SDET-специалиста

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

    habr.com/ru/companies/simbirso

    #qa #тестирование #qa_automation #автоматизация_тестирования #автотесты #code_quality #качество_кода #чистая_архитектура #рефакторинг #python

  2. Самые популярные ошибки начинающего SDET-специалиста

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

    habr.com/ru/companies/simbirso

    #qa #тестирование #qa_automation #автоматизация_тестирования #автотесты #code_quality #качество_кода #чистая_архитектура #рефакторинг #python

  3. Самые популярные ошибки начинающего SDET-специалиста

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

    habr.com/ru/companies/simbirso

    #qa #тестирование #qa_automation #автоматизация_тестирования #автотесты #code_quality #качество_кода #чистая_архитектура #рефакторинг #python

  4. Самые популярные ошибки начинающего SDET-специалиста

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

    habr.com/ru/companies/simbirso

    #qa #тестирование #qa_automation #автоматизация_тестирования #автотесты #code_quality #качество_кода #чистая_архитектура #рефакторинг #python

  5. Вайб-код для настоящих инженеров: старые практики в новых реалиях

    Итак, вопреки утверждениям скептиков (среди которых не так давно был и я) ИИ-разработка с двух ног влетела в настоящую промышленную эксплуатацию, и мем уже совсем не тот: не джун теперь роняет прод, а нейросеть убивает статистику доступности гитхаба, амазона, Cloudflare и даже самой мекки вайб-кодинга — сервисов Anthropic и OpenAI.

    habr.com/ru/articles/1023094/

    #Вайбкод #чистая_архитектура #tdd #разработка

  6. Вынесение бизнес‑логики из BLoC в use‑cases: прагматичный взгляд на архитектуру Flutter

    Начиная писать Flutter-приложение, для стейт-менеджмента часто хватает простого setState или простого решения, по типу BLoC/Cubit без излишеств. Но с течением жизни проекта ваши блоки могут начать превращаться в god objects. Внутри хендлеров могут находиться и запросы в сервисы, и валидация, и эмиттеры состояния, а для крупной страницы точно одним ивентом не обойдешься. В таких условиях разработка сильно затрудняется, становится сложно поддерживать и масштабировать проект, снижается тестируемость. Это не субъективный опыт — строгая разделенная архитектура повышает гибкость, переиспользуемость и тестируемость кода. BLoC сам по себе — паттерн с отличной дисциплиной потока данных и строгим отделением бизнес‑логики от UI, но стоит немного расслабиться, и он разрастается до god объекта. Цель этой статьи — продемонстрировать, как вынесение бизнес логики в use-cases может помочь вернуть контроль над ViewModel слоем. Это не попытка навязать единственный вариант реализации, а материал про технический компромисс, подтвержденный цифрами и опытом.

    habr.com/ru/articles/1022838/

    #flutter #dart #bloc #чистая_архитектура #use_cases #state_management #архитектура #мобильная_разработка #тестирование #dependency_injection

  7. Вынесение бизнес‑логики из BLoC в use‑cases: прагматичный взгляд на архитектуру Flutter

    Начиная писать Flutter-приложение, для стейт-менеджмента часто хватает простого setState или простого решения, по типу BLoC/Cubit без излишеств. Но с течением жизни проекта ваши блоки могут начать превращаться в god objects. Внутри хендлеров могут находиться и запросы в сервисы, и валидация, и эмиттеры состояния, а для крупной страницы точно одним ивентом не обойдешься. В таких условиях разработка сильно затрудняется, становится сложно поддерживать и масштабировать проект, снижается тестируемость. Это не субъективный опыт — строгая разделенная архитектура повышает гибкость, переиспользуемость и тестируемость кода. BLoC сам по себе — паттерн с отличной дисциплиной потока данных и строгим отделением бизнес‑логики от UI, но стоит немного расслабиться, и он разрастается до god объекта. Цель этой статьи — продемонстрировать, как вынесение бизнес логики в use-cases может помочь вернуть контроль над ViewModel слоем. Это не попытка навязать единственный вариант реализации, а материал про технический компромисс, подтвержденный цифрами и опытом.

    habr.com/ru/articles/1022838/

    #flutter #dart #bloc #чистая_архитектура #use_cases #state_management #архитектура #мобильная_разработка #тестирование #dependency_injection

  8. Вынесение бизнес‑логики из BLoC в use‑cases: прагматичный взгляд на архитектуру Flutter

    Начиная писать Flutter-приложение, для стейт-менеджмента часто хватает простого setState или простого решения, по типу BLoC/Cubit без излишеств. Но с течением жизни проекта ваши блоки могут начать превращаться в god objects. Внутри хендлеров могут находиться и запросы в сервисы, и валидация, и эмиттеры состояния, а для крупной страницы точно одним ивентом не обойдешься. В таких условиях разработка сильно затрудняется, становится сложно поддерживать и масштабировать проект, снижается тестируемость. Это не субъективный опыт — строгая разделенная архитектура повышает гибкость, переиспользуемость и тестируемость кода. BLoC сам по себе — паттерн с отличной дисциплиной потока данных и строгим отделением бизнес‑логики от UI, но стоит немного расслабиться, и он разрастается до god объекта. Цель этой статьи — продемонстрировать, как вынесение бизнес логики в use-cases может помочь вернуть контроль над ViewModel слоем. Это не попытка навязать единственный вариант реализации, а материал про технический компромисс, подтвержденный цифрами и опытом.

    habr.com/ru/articles/1022838/

    #flutter #dart #bloc #чистая_архитектура #use_cases #state_management #архитектура #мобильная_разработка #тестирование #dependency_injection

  9. Вынесение бизнес‑логики из BLoC в use‑cases: прагматичный взгляд на архитектуру Flutter

    Начиная писать Flutter-приложение, для стейт-менеджмента часто хватает простого setState или простого решения, по типу BLoC/Cubit без излишеств. Но с течением жизни проекта ваши блоки могут начать превращаться в god objects. Внутри хендлеров могут находиться и запросы в сервисы, и валидация, и эмиттеры состояния, а для крупной страницы точно одним ивентом не обойдешься. В таких условиях разработка сильно затрудняется, становится сложно поддерживать и масштабировать проект, снижается тестируемость. Это не субъективный опыт — строгая разделенная архитектура повышает гибкость, переиспользуемость и тестируемость кода. BLoC сам по себе — паттерн с отличной дисциплиной потока данных и строгим отделением бизнес‑логики от UI, но стоит немного расслабиться, и он разрастается до god объекта. Цель этой статьи — продемонстрировать, как вынесение бизнес логики в use-cases может помочь вернуть контроль над ViewModel слоем. Это не попытка навязать единственный вариант реализации, а материал про технический компромисс, подтвержденный цифрами и опытом.

    habr.com/ru/articles/1022838/

    #flutter #dart #bloc #чистая_архитектура #use_cases #state_management #архитектура #мобильная_разработка #тестирование #dependency_injection

  10. Как я отсеиваю 90% кандидатов одной архитектурной задачей

    Всем привет! Недавно мне нужно было нанять людей в команду по созданию системы на Python, Java, Go. Для меня крайне важны соблюдения принципов SOLID, Чистой архитектуры, Чистого кода. Я придумал задачу, которую спрашиваю на собеседованиях в свою команду. И мне хочется поделится ею с вами. Надеюсь, она будет вам полезна!

    habr.com/ru/articles/1015160/

    #собеседование #архитектура #solid #чистый_код #чистая_архитектура #интервью #оценка_кандидатов #найм_разработчиков #отсев_кандидатов

  11. Как я отсеиваю 90% кандидатов одной архитектурной задачей

    Всем привет! Недавно мне нужно было нанять людей в команду по созданию системы на Python, Java, Go. Для меня крайне важны соблюдения принципов SOLID, Чистой архитектуры, Чистого кода. Я придумал задачу, которую спрашиваю на собеседованиях в свою команду. И мне хочется поделится ею с вами. Надеюсь, она будет вам полезна!

    habr.com/ru/articles/1015160/

    #собеседование #архитектура #solid #чистый_код #чистая_архитектура #интервью #оценка_кандидатов #найм_разработчиков #отсев_кандидатов

  12. Как я отсеиваю 90% кандидатов одной архитектурной задачей

    Всем привет! Недавно мне нужно было нанять людей в команду по созданию системы на Python, Java, Go. Для меня крайне важны соблюдения принципов SOLID, Чистой архитектуры, Чистого кода. Я придумал задачу, которую спрашиваю на собеседованиях в свою команду. И мне хочется поделится ею с вами. Надеюсь, она будет вам полезна!

    habr.com/ru/articles/1015160/

    #собеседование #архитектура #solid #чистый_код #чистая_архитектура #интервью #оценка_кандидатов #найм_разработчиков #отсев_кандидатов

  13. Как я отсеиваю 90% кандидатов одной архитектурной задачей

    Всем привет! Недавно мне нужно было нанять людей в команду по созданию системы на Python, Java, Go. Для меня крайне важны соблюдения принципов SOLID, Чистой архитектуры, Чистого кода. Я придумал задачу, которую спрашиваю на собеседованиях в свою команду. И мне хочется поделится ею с вами. Надеюсь, она будет вам полезна!

    habr.com/ru/articles/1015160/

    #собеседование #архитектура #solid #чистый_код #чистая_архитектура #интервью #оценка_кандидатов #найм_разработчиков #отсев_кандидатов

  14. Я устал каждый раз собирать проект с нуля — и сделал универсальный Docker+Python-шаблон

    Всем привет! Это моя первая статья на Хабре и я надеюсь и рассчитываю на вашу критику, дельные замечания, внимание и аплодисменты. Сим я начинаю серию статей посвящённых тому как создавать SaaS продукты, как подбирать нишу, как его собственно программировать и отлаживать, как выводить на рынок и всё в таком духе. Поделюсь своим опытом, так сказать. Эта статья (и несколько последующих) будет посвящена сугубо технической части вопроса. Я расскажу о своём шаблоне для разработки и тестирования MVP, который ускоряет дело. Он у меня появился потому, что я любитель экспериментов и много раз делал разные микропроекты — боты, игры, сайты, парсеры и тому подобное В какой‑то момент я заметил что таскаю между проектами один и тот же кусок кода, который здорово ко всему подходит и с которого начинается каждый мой новый проект. Итак, вашему внимаю представляю МЕГА ШАБЛОН УДОБНОГО БЫСТРОГО ПРОГРАММИРОВАНИЯ «Чем же он так хорош?», спросите вы. И правильно сделаете что спросите! А я вам отвечу. Читать далее более сильнее погнале

    habr.com/ru/articles/1006822/

    #python #docker #шаблон_проекта #чистая_архитектура #saas

  15. От микроменеджмента до автопилота: 4 стадии рефакторинга AI-кода на примере десктопного приложения

    Реддит и Хабр забиты историями о том, как кто-то «написал приложение за вечер с помощью ChatGPT, вообще не зная программирования». Маркетологи называют это вайбкодингом — ты просто описываешь свои намерения, а ИИ выдает готовый продукт. Я проверил, и вот мой спойлер: на масштабе чуть большем, чем программа на 500 строк, это не работает. Август 2025 года. Мне понадобилась утилита со сложной логикой: конвертер выгрузок Telegram (JSON) в чистый текст для LLM. Проект десктопный, с GUI, графиками и парсингом. Вместо того чтобы писать код руками, я провел эксперимент: стать техлидом для связки актуальных на тот момент моделей (Claude 4.0 + Gemini 2.5 + Cursor). Я заранее дал им архитектуру. Они собрали первый MVP. А затем, чтобы этот «MVP» (нет) не сложился как карточный домик через неделю, мне пришлось четырежды инициировать глобальный рефакторинг, потратить 40 часов на борьбу с галлюцинациями вокруг Matplotlib и разгребать цикличные зависимости. Эта статья — рефлексия и разбор полётов. Это история о том, почему в 2026 году главный навык инженера — это умение видеть деревья за лесом и вовремя сказать ИИ: «Нет, твоя архитектура никуда не годится, всё переделываем».

    habr.com/ru/companies/ruvds/ar

    #Искусственный_интеллект #Python #архитектура_по #рефакторинг #llm #cursor #чистая_архитектура #вайбкодинг #qt #технический_долг

  16. Мой опыт парного программирования с Chat GPT-5

    Привет, Хабр! Про модели искусственного интеллекта сейчас не говорит только ленивый. Высказывается множество мнений и нередко они оказываются на противоположных полюсах: от полного скепсиса до убеждённости, что произошла новая научно-техническая революция. Жизненный опыт подсказывает, что истина где-то по-середине и инструмент будет полезным ровно настолько, насколько ты умеешь им пользоваться. В относительно недавнем интервью генеральный директор Microsoft Сатья Наделла заявил, что примерно 20-30 % кода в Microsoft уже сейчас генерируется ИИ и разработчикам надо будет адаптироваться. Мне тоже захотелось попробовать внедрить такого помощника в свои рабочие процессы и посмотреть, что из этого получится.

    habr.com/ru/articles/970660/

    #чистая_архитектура #tdd #llm #pair_programming

  17. Главная проблема «чистых архитектур»

    Откройте любой пулл-реквест в проекте с любой "чистой архитектурой" и вы скорее всего увидите не обсуждение бизнес-логики, а срач. "Это нельзя класть в UseCase, это логика домена!", "Зачем тут еще один DTO, мы же просто поле прокидываем!", "Этот интерфейс не нужен, у нас никогда не будет другой реализации!". Полагаю, очень много людей с таким сталкиваются. Эта статья - о том, почему архитектура из спасения превратилась в тонны говнокода. И, что самое главное, - как прекратить этот хаос и, наконец, начать просто писать код, который работает, а не "следует всем концепциям".

    habr.com/ru/articles/965812/

    #чистый_код #айти #разработка #бекенд #фронтенд #backend #frontend #архитектура #чистая_архитектура #it

  18. ORM в Node.js — когда от него больше вреда чем пользы. Почему вам, не нужен дополнительный абстрактный слой

    Object-Relational Mapping (ORM) — технология, призванная «поженить» реляционную природу SQL-баз (PostgreSQL, MySQL, SQLite и т.п.) с объектной моделью языков программирования. Она настолько популярна, что её пытаются реализовать даже в необъектных языках — например, в Go или Erlang. Если в Java без ORM действительно неудобно, то в экосистеме Node.js (и TypeScript в частности) ситуация принципиально иная. И ORM здесь — зачастую избыточная абстракция. В большинстве случаев рациональнее обойтись компактным SQL-билдером который сильно упрощает построение запросов, оставляя над ними полный контроль, и который совсем не занимается управлением объектами. Почему в Node.js ORM почти не даёт преимуществ...

    habr.com/ru/articles/959518/

    #orm #typescript #javascript #nodejs #sql #чистый_код #чистая_архитектура #базы_данных

  19. [Перевод] Ликбез по UseCase’ам Android: от базовых реализаций до мультипровайдерных и многомодульных систем — Часть 2

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

    habr.com/ru/companies/otus/art

    #clean_architecture #Чистая_архитектура #SOLID #SRP #DIP #LSP #инверсия_зависимостей #разделение_ответственности #архитектура_приложений

  20. [Перевод] Ликбез по UseCase’ам Android: от базовых реализаций до мультипровайдерных и многомодульных систем — Часть 1

    Чистая архитектура — не просто модный термин, а способ держать код в узде по мере роста Android-приложения. В этой статье — подробный разбор того, как выстроить работу с UseCase’ами: от базовой интеграции в ViewModel до сложных кейсов с несколькими провайдерами и платежными системами. Разберёмся, как применять принципы SOLID на практике, не скатываясь в оверинжиниринг — и при этом не жертвовать гибкостью архитектуры.

    habr.com/ru/companies/otus/art

    #android #Kotlin #Мобильная_разработка #UseCase #Чистая_архитектура #SOLID_принципы #ViewModel #koin

  21. [Перевод] Ликбез по UseCase’ам Android: от базовых реализаций до мультипровайдерных и многомодульных систем — Часть 1

    Чистая архитектура — не просто модный термин, а способ держать код в узде по мере роста Android-приложения. В этой статье — подробный разбор того, как выстроить работу с UseCase’ами: от базовой интеграции в ViewModel до сложных кейсов с несколькими провайдерами и платежными системами. Разберёмся, как применять принципы SOLID на практике, не скатываясь в оверинжиниринг — и при этом не жертвовать гибкостью архитектуры.

    habr.com/ru/companies/otus/art

    #android #Kotlin #Мобильная_разработка #UseCase #Чистая_архитектура #SOLID_принципы #ViewModel #koin

  22. Мой опыт проектирования архитектуры

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

    habr.com/ru/companies/cian/art

    #архитектура #проектирование_систем #чистая_архитектура #ddd #разработка

  23. weakref.finalize: «почти IDisposable» для Python-объектов

    Привет, Хабр! Я не знаю, как у вас, а у меня перед глазами все еще маячат толстенные исходники WinForms-эра на C#, где любой порядочный объект, умеющий держать ручку к файлу или сокету, строго реализует IDisposable . Закрыл — молодец, забыл — получи warning от IDE и пару нехороших утечек в production. В Python, увы-ях, аналогичный контракт традиционно строили на del и контекст-менеджерах. Первый: если объект в циклическом мусоре, финализатор может не вызваться вообще; к тому же при выключении интерпретатора порядок разрушения объектов хаотичен. Второй ( with ... as ) шикарен, но требует явного вызова, а значит — дисциплины. С выходом PEP 442 и появлением weakref.finalize мы получили «почти IDisposable» — финализатор, которому не страшны циклы, и который честно отработает даже на shutdown, если правильно обращаться.

    habr.com/ru/companies/otus/art

    #python #чистая_архитектура #flask #SQLAlchemy #тестируемость #запросы #расширяемость

  24. Агентное кодирование. Инструция по созданию надёжного программного продукта (LLMDD)

    Эта статья — пошаговое руководство о том, как настроить процесс разработки, где исполнителем выступает LLM-модель. Я делюсь опытом составления понятных и чётких инструкций для моделей, а также описываю, как от начальной идеи дойти до готового продукта. Рассказываю, как выбирать подходящие технологии, структурировать задачи специально под LLM, выстраивать многоуровневую систему тестов и контролировать качество, не погружаясь постоянно в код. Также делюсь инструментами и шаблонами, которые помогают управлять поведением моделей и избегать типичных ошибок и проблем.

    habr.com/ru/articles/917164/

    #агентный_ии #автоматизация_разработки #mcp #tdd #чистая_архитектура #claude #llmагент

  25. Go-микросервисы: Стандартизация архитектуры с Clean Architecture и DDD

    Go-разработчики часто сталкиваются с парадоксом: изначально простой и понятный проект со временем превращается в сложный для поддержки монолит. ✔️ Бизнес-логика оказывается размазана между слоями? ✔️ Замена базы данных требует переписывания половины кода? ✔️ Новым разработчикам требуется недели, чтобы разобраться в проекте? В этой статье мы разбираем практическое применение DDD и Clean Architecture в Go . Обсуждаем возможный стандарт структуры микросервиса . Оптимизируем существующие. 🔥 Для разработчиков, которые хотят создавать проекты, остающиеся поддерживаемыми даже через годы развития.

    habr.com/ru/articles/911018/

    #clean_architecture #domain_driven_design #ddd #golang #разработка #архитектура #стандарт_golang #чистый_код #чистая_архитектура #паттерны_разработки

  26. Разбираем архитектуру. Часть 1. Чистая архитектура и её корни: история и взаимосвязи

    Предисловие Цель этой статьи - объединить и кратко изложить все базовые архитектурные подходы: их терминологию, концепции и отличительные черты. Собрать всё воедино, чтобы можно было относительно быстро вникнуть в основы. Я решил написать серию статей, посвящённых различным аспектам проектирования программных систем, но первоначальной идеей было показать архитектурное решение моего pet-проекта на FastAPI — пример реализации «чистой архитектуры» с использованием современного стека: Python3.13, FastAPI, Uvicorn, Nginx, PostgreSQL, Alembic, Celery, Redis, Pytest, Filebeat, Logstash, Elasticsearch, Kibana, Prometheus, Grafana, Docker и Docker Compose. Однако по мере проработки деталей стало очевидно: чтобы обсуждать структуру приложения предметно и аргументированно, необходимо сначала заложить общую теоретическую основу, чтобы читатель понимал, о чем речь. Так родилась идея вынести базовые концепции архитектуры и проектирования в отдельную публикацию — не перегружать материал сразу всем, а построить серию объёмных, но логично связанных статей.

    habr.com/ru/articles/905148/

    #чистая_архитектура #чистый_код #ооп #проектирование_систем #терминология #шаблоны_проектирования #луковичная_архитектура #гексагональная_архитектура #solid #grasp

  27. GRASP: почему настоящая архитектура начинается не с SOLID

    Хочу начать с личной предыстории. Давным-давно, как и многие из вас, я читал умные книжки: «Чистый код» и «Чистая архитектура» Роберта Мартина, «Совершенный код» Стива Макконнелла и другие. Также не обошли меня и классические принципы проектирования — SOLID , KISS , DRY — и, думаю, каждый читатель добавит сюда свои. Безусловно, это всё важные и фундаментальные вещи. Но однажды на горизонте появилось DDD — предметно-ориентированное проектирование в изложении Эрика Эванса. Именно его «синяя книга» стала культовой и задала язык для архитектурного мышления. Позже я открыл и «красную книгу» Вона Вернона, где DDD уже рассматривался с точки зрения практической имплементации: архитектура, код, реальные подходы в проектах. Читая Эванса, рассматривая его диаграммы классов и примеры кода, я всё думал: как он это делает? Самым большим открытием для меня стало то, что книга DDD хоть и показывает стратегические и тактические приёмы — агрегаты, объекты-значения, спецификации, фабрики и т.д. — но не учит проектировать саму предметную область . Складывалось ощущение, что мы это уже откуда-то должны были знать . А откуда — остаётся загадкой.

    habr.com/ru/articles/900140/

    #GRASP #паттерны_проектирования #архитектура #DDD #SOLID #OOP #чистая_архитектура #чистый_код

  28. Когда ни туда, ни сюда, или в поисках оптимальной границы Domain слоя

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

    habr.com/ru/articles/797425/

    #чистая_архитектура #domaindriven_design #принципы_проектирования

  29. Что такое чистая архитектура в Android и с чем её едят

    В данной статье я рассматриваю основы чистой архитектуры: объясняю что, как и зачем делается, привожу примеры реального рабочего приложения и затрагиваю такие темы, как Dependency Injection (в частности - Koin) и MVI (Model View Intent). Подойдет как тем, кто только начинает разбираться в мире андроида, так и тем, кто уверен в своих силах, но хочет найти что-то новенькое.

    habr.com/ru/articles/896602/

    #чистая_архитектура #clean_architecture #android #kotlin #koin #mvi

  30. Что такое чистая архитектура в Android и с чем её едят

    В данной статье я рассматриваю основы чистой архитектуры: объясняю что, как и зачем делается, привожу примеры реального рабочего приложения и затрагиваю такие темы, как Dependency Injection (в частности - Koin) и MVI (Model View Intent). Подойдет как тем, кто только начинает разбираться в мире андроида, так и тем, кто уверен в своих силах, но хочет найти что-то новенькое.

    habr.com/ru/articles/896602/

    #чистая_архитектура #clean_architecture #android #kotlin #koin #mvi

  31. Domain-Driven Design: чистая архитектура снизу доверху

    Когда мидл-разработчик дорастает до сениора, его, как правило, мучает вопрос: как правильно писать приложение? Понятно, что когда он был джуном, ему давали совсем атомарные задачи, и он развлекался покрытием тестов или написанием контроллеров. Переход в мидлы знаменуется назначением на разработчика более абстрактных задач вроде реализации сервисов, репозиторной части или интеграции с внешними сервисами посредством клиентов. Но в какой-то момент мидл начинает задавать самому себе вопросы: как найти единственно правильный способ написать приложение с нуля ? Если Вы - мидл, и Вас стали мучать такие вопросы - поздравляю, Вы на верном пути. Ведь профессиональный рост не происходит с переводом на должность - новый сениор должен родиться, и это как раз муки такого рождения. Да, мы уже знаем самые популярные практики: KISS, DRY, YAGNI, SOLID, что там ещё... Мы умеем их применять. Но нас не покидает чувство, что все эти практики объединяет общая научная основа. Знаете, это как с Менделеевым, который на основе закономерностей практически по наитию составил периодическую систему, а потом открыли электроны и всё встало на свои места. У меня для вас хорошие новости: научная основа есть. Это предметно-ориентированное проектирование . Но есть и плохая новость: тема настолько новая и непростая в изучении, что какая-никакая популярность к ней пришла лет 5 назад, и до сих пор совсем небольшое число разработчиков достаточно хорошо в ней разбирается. Но есть ещё одна хорошая новость: в статье ниже я постараюсь дать максимально понятный ответ, что же такое предметно-ориентированное проектирование. Начнём.

    habr.com/ru/companies/sberbank

    #чистая_архитектура #domain_driven_design #паттерны_проектирования #луковичная_архитектура #интерфейсы

  32. Apex Architecture: Модульность и стабильность в Android-разработке

    Архитектура, с которой мы работаем изо дня в день, оставляет желать лучшего. Иначе как объяснить тот хаос и стресс, который каждый из нас испытывает, приходя на новое место работы? В большинстве случаев самым сложным слоем является UI, и эта сложность зачастую обусловлена не разнообразием элементов интерфейса, а неправильным подходом к архитектуре этого слоя. Отсюда можно сделать вывод, что нельзя дробить приложение в привычной форме: на UI, domain и data. Необходимо добавить еще один дочерний слой — ui/viewModel, и на этом слое, одном из самых важных, я хочу акцентировать ваше внимание. Меня зовут Илья и мы начинаем!

    habr.com/ru/articles/857332/

    #android_разработка #архитектура #приложения_для_android #чистая_архитектура #многомодульность #jetpack_compose #android_sdk #разработка_архитектуры #что_такое_чистая_архитектура #как_стать_программистом

  33. Разбираем чистую архитектуру в Android: от а до я

    Дорогой читатель! Если ты оказался тут, то скорее всего ты столкнулся с той же проблемой, что и я: ты занимаешься Android разработкой и все вокруг говорят о какой-то «чистой архитектуре» (она же - Clean Architecture), указывают её в требованиях к вакансиям, указывают на практиках в вузе и т.д. Однако информацию о данном подходе приходится собирать по кусочкам. Так что в данной статье я Даниил Закляко в, разработчик WMT Group попробую на своем опыте подробно, доступным языком объяснить с чего начинать и как эту архитектуру строить. Зачем всё это? В процессе изучения чистой архитектуры может показаться, что это - чепуха, выгода от которой не оправдывает время, которое затрачивается на её создание. Но давайте просто посмотрим на два проекта: один без архитектуры, другой с архитектурой.

    habr.com/ru/articles/897564/

    #чистая_архитектура #android_apps #kotlin #программирование_на_android

  34. Как сменить технологию и не закопаться в рефакторинге: опыт внедрения DDD в проект на FastAPI — Часть 1

    Привет, хабравчане! В серии статей расскажу, что такое DDD (domain-driven design) и какие у него преимущества и недостатки. Разберемся, когда применять подход и как сочетать его с FastAPI , популярным ASGI фреймворком на Python. В этой части рассмотрим паттерны проектирования Repository и Unit of Work . С их помощью мы работаем через интерфейсы. Паттерны помогают в разделении кода на слои: основная логика приложения представляется внутренними слоями, а используемые технологии - внешними.

    habr.com/ru/articles/833720/

    #fastapi #ddd #refactoring #repository_pattern #unit_of_work #проектирование #рефакторинг #чистая_архитектура

  35. Вам не нужна Чистая архитектура. Скорее всего

    Сейчас среди Java/Kotlin команд распространено применение Чистой (ака Гексагональной, ака Луковой — Clean, Hexagonal, Onion) архитектуры для разработки бакэндов прикладных приложений (да и Android‑приложений тоже). Однако это семейство архитектур в контексте прикладной разработки зачастую не даёт никаких преимуществ, а только привносит лишние церемонии и тем самым замедляет её. В этом посте я подробно разбираю, почему, на мой взгляд Чистая архитектура не является лучшим выбором по умолчанию для прикладных приложений, и кратко рассказываю об альтернативной архитектуре (спойлер: Промышленная функциональная архитектура ), которую использую в качестве дефолтной последние 3 года и пока что доволен. Но перед тем как перейти к Чистой архитектуре, сначала надо разобрать принцип инверсии зависимостей (Dependency Inversion Principle, DIP).

    habr.com/ru/articles/888428/

    #DIP #чистая_архитектура #функциональная_архитектура #абстракция

  36. 90% разработчиков не понимают принцип инверсии зависимостей из SOLID. DIP — это не про абстракции

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

    habr.com/ru/articles/872078/

    #solid #чистая_архитектура #dip #инверсия_зависимостей

  37. Сложное — просто: архитектуры ПО на жизненных примерах

    Я недавно решила углубленно разобраться, какие архитектуры бывают в разработке ПО, и написать об этом простую статью. Это моя первая попытка поделиться своими мыслями и объяснить сложные вещи на понятном языке, поэтому буду рада вашей обратной связи! Если заметите, что что-то можно улучшить — пишите, я с удовольствием доработаю. И, конечно, позитивные комментарии и отзывы тоже очень приветствуются! 😊 Здесь я постаралась рассказать про монолиты, микросервисы и микрофронтенды без сложных терминов и технических деталей, чтобы те, кто только начинает разбираться в теме, могли понять, что к чему. Надеюсь, вам будет полезно и интересно. Поехали! 🚀

    habr.com/ru/articles/866726/

    #программные_архитектуры #архитектуры_ПО #монолитная_архитектура #микросервисы #микрофронтенды #mvc #чистая_архитектура #eventdriven #serverless

  38. Как сменить технологию и не закопаться в рефакторинге: опыт внедрения DDD в проект на FastAPI — Часть 2

    Привет, хабравчане! В первой части были рассмотрены паттерны проектирования Repository и Unit of Work. Это вторая часть цикла о DDD. В ней расскажу, как добавить к проекту событийно-ориентированную архитектуру. Код подопытного приложения ищите в репозитории по ссылке . Подробнее о DDD и паттернах Repository и Unit of Work читайте в первой части по ссылке ...

    habr.com/ru/articles/838188/

    #fastapi #ddd #refactoring #проектирование #рефакторинг #события #чистая_архитектура #событийное_программирование #команды #cqrs

  39. SOLID в Go и щепотка паттернов

    SOLID-ная статья о принципах SOLID, которую вы можете предложить тем, кто хочет понять эти принципы в контексте языка Go. Или прочитать самостоятельно, если это интересно и вам. И да, как сказал бы волк из небезызвестного мультика: «SOLID? Шо, опять?»

    habr.com/ru/companies/domclick

    #solid #паттерны #go #golang #чистая_архитектура #совершенный_код

  40. 5 способов писать эффективный код на Go: от названий переменных до архитектуры

    Если вы задумывались, какие практики использовать, чтобы писать код на Go быстро и качественно, этот материал для вас. Руководитель группы разработки подсистем Геннадий Ковалев и эксперт по разработке ПО Даниил Подольский обсуждают пять способов повысить эффективность разработки в команде Go-программистов: они расскажут, как называть переменные, составлять документацию и продумывать архитектуру так, чтобы специалистам в команде и смежных отделах было легко работать с написанным кодом. Статья будет полезна начинающим специалистам и командам, которые недавно работают вместе. Опытных разработчиков приглашаем в комментарии — расскажите, какие практики для повышения эффективности кода используете вы.

    habr.com/ru/companies/yadro/ar

    #работа_в_команде #go #эффективность #архитектура #нейминг #синтаксис #юниттесты #swagger #чистая_архитектура

  41. Apex Architecture: Модульность и стабильность в Android-разработке

    Архитектура, с которой мы работаем изо дня в день, оставляет желать лучшего. Иначе как объяснить тот хаос и стресс, который каждый из нас испытывает, приходя на новое место работы? В большинстве случаев самым сложным слоем является UI, и эта сложность зачастую обусловлена не разнообразием элементов интерфейса, а неправильным подходом к архитектуре этого слоя. Отсюда можно сделать вывод, что нельзя дробить приложение в привычной форме: на UI, domain и data. Необходимо добавить еще один дочерний слой — ui/viewModel, и на этом слое, одном из самых важных, я хочу акцентировать ваше внимание. Меня зовут Илья и мы начинаем!

    habr.com/ru/articles/857332/

    #android_разработка #архитектура #приложения_для_android #чистая_архитектура #многомодульность #jetpack_compose #android_sdk #разработка_архитектуры #что_такое_чистая_архитектура #как_стать_программистом

  42. Apex Architecture: Модульность и стабильность в Android-разработке

    Архитектура, с которой мы работаем изо дня в день, оставляет желать лучшего. Иначе как объяснить тот хаос и стресс, который каждый из нас испытывает, приходя на новое место работы? В большинстве случаев самым сложным слоем является UI, и эта сложность зачастую обусловлена не разнообразием элементов интерфейса, а неправильным подходом к архитектуре этого слоя. Отсюда можно сделать вывод, что нельзя дробить приложение в привычной форме: на UI, domain и data. Необходимо добавить еще один дочерний слой — ui/viewModel, и на этом слое, одном из самых важных, я хочу акцентировать ваше внимание. Меня зовут Илья и мы начинаем!

    habr.com/ru/articles/857332/

    #android_разработка #архитектура #приложения_для_android #чистая_архитектура #многомодульность #jetpack_compose #android_sdk #разработка_архитектуры #что_такое_чистая_архитектура #как_стать_программистом

  43. Apex Architecture: Модульность и стабильность в Android-разработке

    Архитектура, с которой мы работаем изо дня в день, оставляет желать лучшего. Иначе как объяснить тот хаос и стресс, который каждый из нас испытывает, приходя на новое место работы? В большинстве случаев самым сложным слоем является UI, и эта сложность зачастую обусловлена не разнообразием элементов интерфейса, а неправильным подходом к архитектуре этого слоя. Отсюда можно сделать вывод, что нельзя дробить приложение в привычной форме: на UI, domain и data. Необходимо добавить еще один дочерний слой — ui/viewModel, и на этом слое, одном из самых важных, я хочу акцентировать ваше внимание. Меня зовут Илья и мы начинаем!

    habr.com/ru/articles/857332/

    #android_разработка #архитектура #приложения_для_android #чистая_архитектура #многомодульность #jetpack_compose #android_sdk #разработка_архитектуры #что_такое_чистая_архитектура #как_стать_программистом

  44. 5 способов писать эффективный код на Go: от названий переменных до архитектуры

    Если вы задумывались, какие практики использовать, чтобы писать код на Go быстро и качественно, этот материал для вас. Руководитель группы разработки подсистем Геннадий Ковалев и эксперт по разработке ПО Даниил Подольский обсуждают пять способов повысить эффективность разработки в команде Go-программистов: они расскажут, как называть переменные, составлять документацию и продумывать архитектуру так, чтобы специалистам в команде и смежных отделах было легко работать с написанным кодом. Статья будет полезна начинающим специалистам и командам, которые недавно работают вместе. Опытных разработчиков приглашаем в комментарии — расскажите, какие практики для повышения эффективности кода используете вы.

    habr.com/ru/companies/yadro/ar

    #работа_в_команде #go #эффективность #архитектура #нейминг #синтаксис #юниттесты #swagger #чистая_архитектура

  45. 5 способов писать эффективный код на Go: от названий переменных до архитектуры

    Если вы задумывались, какие практики использовать, чтобы писать код на Go быстро и качественно, этот материал для вас. Руководитель группы разработки подсистем Геннадий Ковалев и эксперт по разработке ПО Даниил Подольский обсуждают пять способов повысить эффективность разработки в команде Go-программистов: они расскажут, как называть переменные, составлять документацию и продумывать архитектуру так, чтобы специалистам в команде и смежных отделах было легко работать с написанным кодом. Статья будет полезна начинающим специалистам и командам, которые недавно работают вместе. Опытных разработчиков приглашаем в комментарии — расскажите, какие практики для повышения эффективности кода используете вы.

    habr.com/ru/companies/yadro/ar

    #работа_в_команде #go #эффективность #архитектура #нейминг #синтаксис #юниттесты #swagger #чистая_архитектура