mastodon.world is one of the many independent Mastodon servers you can use to participate in the fediverse.
Generic Mastodon server for anyone to use.

Server stats:

8.8K
active users

#паттерны_проектирования

0 posts0 participants0 posts today

Основные паттерны микросервисной архитектуры: Strangler Fig, API Gateway, Service Mesh и другие

Микросервисная архитектура стала де-факто стандартом для построения современных масштабируемых приложений. Вместо единого монолитного приложения система разбивается на набор мелких независимых сервисов, каждый из которых отвечает за свою четко обозначенную функцию. Такой подход позволяет упрощать разработку и развертывание отдельных компонентов, повышать отказоустойчивость и масштабируемость системы. Однако переход к микросервисам и их эффективное использование сопряжены с рядом сложных задач. Для их решения в практике выработаны архитектурные паттерны – типовые подходы и шаблоны проектирования. В данной статье мы разберем несколько ключевых паттернов, связанных с микросервисами. Речь пойдет о паттернах миграции и интеграции (таких как Strangler Fig – «удушающее дерево» и API Gateway ), о сетевых и структурных паттернах ( Service Mesh , Sidecar ), о шаблонах работы с данными ( Database per Service , CQRS ) и об особом подходе к хранению состояния ( Event Sourcing ). Для каждого паттерна мы рассмотрим его суть, назначение, примеры использования, а также плюсы и возможные сложности. К некоторым паттернам приведены упрощенные диаграммы и фрагменты кода, чтобы иллюстративно показать, как они работают на практике.

habr.com/ru/articles/904954/

ХабрОсновные паттерны микросервисной архитектуры: Strangler Fig, API Gateway, Service Mesh и другиеМикросервисная архитектура стала де-факто стандартом для построения современных масштабируемых приложений. Вместо единого монолитного приложения система разбивается на набор мелких независимых...
#java#net#python

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

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

habr.com/ru/articles/900140/

ХабрGRASP: почему настоящая архитектура начинается не с SOLIDМногие инженеры начинают своё архитектурное мышление с SOLID. Затем изучают GoF-паттерны. Но всё равно остаётся ощущение, что чего-то не хватает: распределения ответственности, логики построения...

Архитектура в Laravel. Как сделать код понятным и масштабируемым

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

habr.com/ru/articles/898584/

ХабрАрхитектура в Laravel. Как сделать код понятным и масштабируемымСегодня поговорим о теме, где нет универсальных решений, но есть проверенные практики —  как организовать код в Laravel, чтобы он оставался чистым даже спустя годы развития . Я разберу: Почему...

Никогда не читайте перед обедом книг по специальности

Книги делятся на две категории: fiction и non-fiction . Технические книги — внезапно — не исключение, и поддаются точно такой же классификации. Между учебником по научной дисциплине, начинающегося с аксиоматики и продолжающегося доказательствами теорем, — и практически любой современной литературой по « Computer Science » — лежит пропасть. Что происходит, когда люди долгое время оказываются рабами одной-единственной книги (с продолжениями), нам хорошо известно из истории. Возникает религия. 99% процентов литературы по ООП — это талмуд . Вероятность того, что вам подойдет «паттерн» — примерно 50%. Как встретить динозавра на Невском. Знание паттернов полезно в той же степени, что и теология, — и примерно тем же по специальности людям. Всегда полезно уметь отличать по запаху Пана от простого фавна, но практических применений такой эрудиции — не существует. Несколько примеров и торжественный вывод

habr.com/ru/articles/895678/

ХабрНикогда не читайте перед обедом книг по специальностиКниги делятся на две категории: fiction и non-fiction . Технические книги — внезапно — не исключение, и поддаются точно такой же классификации. Между учебником по научной дисциплине,...

Паттерны «Банды четырех»: примеры применения в реальном проекте

Как-то мне выпало написать небольшой микросервис, код которого практически полностью состоял их одних реализаций паттернов "Банды четырех". В этой статье я хочу рассказать о том, как последовательное решение поставленной задачи приводило к использованию все новых паттернов, и как эти паттерны взаимодействовали между собой. Будет много схем и кода, демонстрирующих практические примеры применения паттернов Композит, Билдер, Визитер, Цепочка обязанностей и Декоратор. Не смотря на то, что примеры кода написаны на PHP, статья может оказаться интересной и для разработчиков, использующих другие языки.

habr.com/ru/articles/888790/

ХабрПаттерны «Банды четырех»: примеры применения в реальном проектеКак-то мне выпало написать небольшой микросервис, код которого практически полностью состоял их одних реализаций паттернов "Банды четырех". В этой статье я хочу рассказать о...

Просто пишите код. Часть 2

Паттерны как средство защиты основной бизнес логики от изменений но часто изменения были желательны, а паттерны их осложнили и превратили в место для выноса сложности из бизнес логики в неподходящее место

habr.com/ru/articles/875682/

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

Паттерны проектирования в Golang

Рассмотрим в этой статье несколько наиболее распространенных паттернов проектирования в Golang, дополнив их практическими примерами. Фасад, Стратегия, Прокси, Адаптер

habr.com/ru/articles/875794/

ХабрПаттерны проектирования в GolangРассмотрим в этой статье несколько наиболее распространенных паттернов проектирования в Golang, дополнив их практическими примерами. Фасад, Стратегия, Прокси, Адаптер Паттерн "Фасад" Фасад — это...

Эффективный процесс разработки на основе Feature Slice Design: наш опыт

Привет! Я – Егор, фронтенд-разработчик в Чиббис. Наша команда разработала новый личный кабинет для партнеров – b2b-приложение с нуля, используя Feature Slice Design. В статье я делюсь нашим опытом: от выбора стека технологий до построения процесса разработки, который помог нам за 5,5 месяцев превратить пустую папку в рабочий продукт. Мы разберем итерации, FSD-макеты, этапы создания разделов и расскажем, как удалось сократить время разработки и тестирования. Вас ждет готовый шаблон процесса, который вы сможете применить в своих проектах.

habr.com/ru/companies/chibbis/

ХабрЭффективный процесс разработки на основе Feature Slice Design: наш опытВсем привет! Меня зовут Егор, я – фронтенд-разработчик в Чиббис, один из трёх разработчиков новой версии важного продукта компании – партнерского личного кабинета. Проект создавался с нуля, и перед...

5 паттернов проектирования в Go на примере котиков

Привет, Хабр! Сегодня мы рассмотрим реализацию паттернов проектирования на Go, и, чтобы было не скучно, возьмем главными героями котиков. Будем разбирать 5 популярных паттернов: Singleton , Factory Method , Strategy , Observer , Decorator .

habr.com/ru/companies/otus/art

Хабр5 паттернов проектирования в Go на примере котиковПривет, Хабр! Сегодня мы рассмотрим реализацию паттернов проектирования на Go, и, чтобы было не скучно, возьмем главными героями котиков. Будем разбирать 5 популярных паттернов: Singleton , Factory...

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

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

habr.com/ru/companies/sberbank

ХабрDomain-Driven Design: чистая архитектура снизу доверхуКогда мидл-разработчик дорастает до сеньора, его, обычно мучает вопрос: " как правильно писать приложение ?" Понятно, что когда он был джуном, ему давали совсем атомарные задачи и он развлекался...

Ошибки, которые я совершил, пытаясь быть «слишком правильным» в разработке

В начале карьеры мне тоже казалось, что каждый разработчик должен следовать строгим правилам и рекомендациям. Я думал, что чем больше знаний, тем лучше результат. В итоге, передо мной открывался целый мир идеальных паттернов, архитектур и сложных решений. Но со временем я понял: важно не только читать и понимать теорию, но и уметь применить её в реальной жизни. И что ещё важнее — делать, а не спорить. В этой статье я расскажу о своих ошибках, которые я допустил, пытаясь быть слишком «правильным». Как я заморачивался с кэшированием, пытался сделать универсальные компоненты и топил проект в лишних сложностях. Эти ошибки научили меня одному: не всегда нужно гнаться за идеальностью. Давайте посмотрим, как я заморачивался с вещами, которые в итоге только усложнили задачу, и что из этого получилось.

habr.com/ru/articles/860656/

ХабрОшибки, которые я совершил, пытаясь быть «слишком правильным» в разработкеПрофессиональные решения против простых решений, приносящих результат В начале карьеры мне тоже казалось, что каждый разработчик должен следовать строгим правилам и рекомендациям. Я думал, что чем...

Принципы SOLID на примерах из жизни и разработки

Задача этой статьи только одна - попробовать уложить принципы SOLID на понятных «бытовых» примерах, а уже потом посмотреть, как оно может работать на практике - в коде. Итак, SOLID - это 5 принципов, которые используются при разработке приложений. На каждый принцип по букве: 1. S — Single Responsibility Principle (Принцип единственной ответственности) Определение : Каждый класс должен выполнять только одну задачу. Пример из жизни: Например, мы купили шкаф для одежды.

habr.com/ru/articles/849350/

ХабрПринципы SOLID на примерах из жизни и разработкиЗадача этой статьи только одна - попробовать уложить принципы SOLID на понятных «бытовых» примерах, а уже потом посмотреть, как оно может работать на практике - в коде. Итак, SOLID - это 5 принципов,...

Паттерн «Интерпретатор»: что такое и как использовать

Привет, хабровчане! Я Дима, Python-разработчик из 21YARD , сервиса поиска строительных подрядчиков. В статье расскажу о паттерне Интерпретатор . Разберемся, когда его использовать, какие концепции лежат в его основе. После используем паттерн, чтобы написать программу для решения математических выражений.

habr.com/ru/articles/845524/

ХабрПаттерн «Интерпретатор»: что такое и как использоватьПривет, хабровчане! Я Дима, Python-разработчик из 21YARD , сервиса поиска строительных подрядчиков. В статье расскажу о паттерне Интерпретатор . Разберемся, когда его использовать, какие концепции...

Рефакторим легаси при помощи ООП

Спустя годы проекты обрастают тёмными местами, в которые никто не хочет соваться, поскольку их сложно понять и легко сломать. Сегодня мы посмотрим на кейс рефакторинга такого кода с переводом на ООП рельсы при помощи паттернов, причём со стилем (современным).

habr.com/ru/companies/pvs-stud

#стоитель #builder #паттерны #паттерны_проектирования #итератор #net #c# #рефакторинг #проектирование #ооп

ХабрРефакторим легаси при помощи ООПСпустя годы проекты обрастают тёмными местами, в которые никто не хочет соваться, поскольку их сложно понять и легко сломать. Сегодня мы посмотрим на кейс рефакторинга такого кода с переводом на ООП...

Справочник-шпаргалка по методологиям и паттернам на Python

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

habr.com/ru/articles/841664/

ХабрСправочник-шпаргалка по методологиям и паттернам на PythonКогда вы уже написали несколько своих небольших пет-проектов, вы начинаете понимать что чистый код, архитектура и другие паттерны программирования начинают иметь смысл. В масштабируемых, командный или...

Программируем систему окружающей среды из игры Divinity: Original Sin 2 на Python

В этой статье мы попробуем запрограммировать логику работы поверхностей из Divinity: Original Sin 2 , ролевой игры с пошаговой боевой системой от создателей Baldur's Gate 3 . Суть системы в том, что заклинание или предмет может создать в игровом мире поверхность (облако пара, лёд) из пива, яда, нефти, огня и т.д. Каждая поверхность по-своему взаимодействует с персонажами. Более того, под воздействием других заклинаний или предметов поверхности будут динамически меняться - их можно благословить или проклясть, прогреть или заморозить, наэлектризовать или полностью уничтожить.

habr.com/ru/articles/829342/

ХабрПрограммируем систему окружающей среды из игры Divinity: Original Sin 2 на PythonВ этой статье мы попробуем запрограммировать логику работы поверхностей из  Divinity: Original Sin 2 , ролевой игры с пошаговой боевой системой от создателей Baldur's Gate 3 . Суть системы в том,...

Паттерны проектирования в Unity: от Singleton до Object Pool

Паттерны проектирования в Unity: от Singleton до Object Pool В этой статье мы подробно рассмотрим ключевые паттерны проектирования, такие как Singleton, Observer, Factory Method и Object Pool. Узнайте, как эти паттерны могут улучшить структуру вашего кода, повысить производительность игры и упростить управление ресурсами. Пошаговые примеры помогут вам внедрить эти методы в ваш проект и сделать его более масштабируемым и устойчивым. Читать подробнее

habr.com/ru/articles/826014/

#unity #паттерны_проектирования #юнити #c# #паттерны #patterns #object_pool #singleton #factory_method #observer

ХабрПаттерны проектирования в Unity: от Singleton до Object PoolВведение Паттерны проектирования - это проверенные временем решения общих проблем, возникающих при разработке программного обеспечения. Они помогают разработчикам создавать более структурированный,...

Как я выстрелил себе в ногу, не соблюдая паттерны

Всем привет, меня зовут Андрей, я — php-разработчик в wpp.digital. Сегодня я поделюсь с вами историей. Она о том, как поверхностное понимание (или непонимание) паттернов проектирования отстрелило мне ногу. А еще поделюсь примером реализации простой истины: знание чего-то не равно умению это применять. Кстати, главным героем поэмы являюсь (неожиданная информация) я. Кому будет полезен данный текст? В первую очередь, мне для рефлексии. Во вторую — той редкой породе новичков, которая умеет учиться на чужих ошибках. Ну и в последнюю очередь — опытным коллегам, которые могут поностальгировать по временам джуновых задач и огромных перспектив. Последние еще могут разнести в комментариях всё, что я здесь написал. Теперь к задаче.

habr.com/ru/articles/825322/

ХабрКак я выстрелил себе в ногу, не соблюдая паттерныACHTUNG! Все примеры кода в данной статье набросаны на коленке и не пригодны для использования в том виде, в котором они приведены. Мы даже сборку не тестировали....

Как шаблонный метод может сломать ваш Java код

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

habr.com/ru/companies/pvs-stud

ХабрКак шаблонный метод может сломать ваш Java кодООП — это замечательно. За несоблюдение этой парадигмы принято ругать, а знание паттернов зачастую является обязательным. Но даже правильный подход не страхует полностью от ошибок. О том, как сломать...