Как стать автором
Обновить
28
0
Артур Пантелеев @arturpanteleev

TeamLead | Backend Developer

Отправить сообщение

Matthias Noback Об Идеальной Архитектуре — Слои, Порты и Адаптеры (Часть 3 — Порты и Адаптеры)

Время на прочтение4 мин
Количество просмотров12K

Matthias Noback (автор A year with Symfony) опубликовал цикл из трех статей, в котором описал свои взгляды на идеальную архитектру корпоративных приложений, сформировавшуюся за долгие годы практики.Первая часть является вводной и не представляет особого интереса(можно ознакомиться в оригинале). Перевод второй — по ссылке. И так как он вызвал БЕШЕННЫЙ ажиотаж(целых ДВА человека подискутировали со мной в комментах), то не перевести третью было бы преступлением.


В предыдущей статье мы обсудили разумную систему расслоения проекта, состоящую из трех слоёв:


  • Домен
  • Прикладной слой
  • Инфраструктура

Сейчас, подробно рассмотрим инфраструктурный слой.

Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии4

Matthias Noback Об Идеальной Архитектуре — Слои, Порты и Адаптеры(Часть 2 — Слои)

Время на прочтение7 мин
Количество просмотров15K

В 2017 году Matthias Noback (автор A year with Symfony) опубликовал цикл из трех статей, в котором описал свои взгляды на идеальную архитектру корпоративных приложений, сформировавшуюся за долгие годы практики.Первая часть является вводной и не представляет особого интереса(можно ознакомитсья в оригинале). Переводом второй является данная статья. Перевод третьей будет доступен в скором времени.


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

Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии15

Виды тестирования ПО (в картинках)

Время на прочтение3 мин
Количество просмотров14K


В книге Growing Object-Oriented Software, Guided by Tests, мы описали различные виды тестов, которые мы используем при проектировании ПО и показали, как хорошо они сочетаются с архитектурным стилем Порты и Адаптеры (Ports and Adapters by Alistair Cockburn).


В Портах и Адапттерах центральное место приложения занимает доменная модель, не имеющая точек соприкосновения ни с какими частями инфраструктуры, будь то БД, очереди, UI, и т.д. Но модель содержит интерфейсы, которые определяют ее взаимоотношения с внешним миром в терминах домена. Cockburn называет эти интерфейсы портами. Эти интерфейсы реализуются в соответствующих объектах, осуществляющих взаимодействие с внешним миром — Cockburn назвал их адаптерами. В распределенных системах разные процессы, каждый со своей доменной моделью, взаимодействюут между собой с помощью портов и адаптеров.

Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии2

Вредный Кейворд «Interface»

Время на прочтение4 мин
Количество просмотров30K

Перевод ироничного поста из блога Боба Мартина в котором он рассуждает о том, насколько неудачным является использование слова interface в современных языках программирования, и какую путаницу и проблемы оно несёт разработчикам.


— Что ты думаешь об интерфейсах?


Имеешь в виду интерфейсы в Java или C#?


— Да. Классная фича этих языков?


Просто великолепная!


— Правда? А что такое интерфейс? Это то же самое что и класс?


Ну… Не совсем!

Читать дальше →
Всего голосов 87: ↑62 и ↓25+37
Комментарии389

Как прочитать большой файл средствами PHP (не грохнув при этом сервак)

Время на прочтение9 мин
Количество просмотров47K

Перевод статьи Christopher Pitt.


PHP разработчикам не так уж часто приходится следить за расходом памяти в своих приложениях. Сам движок PHP неплохо подчищает мусор за нами, да и модель веб-сервера с контекстом исполнения, "умирающим" после выполнения каждого запроса, позволяет даже самому плохому коду не создавать больших долгих проблем.


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


Fragmented terrain


Последняя проблема и будет рассмотрена в этом уроке.

Читать дальше →
Всего голосов 64: ↑59 и ↓5+54
Комментарии47

Слои, Луковицы, Гексогоны, Порты и Адаптеры — всё это об одном

Время на прочтение4 мин
Количество просмотров54K
Перевод статьи Mark Seemann о популярных архитектурах разработки ПО и о том, что между ними общего.

Один из моих читателей спросил меня:
Вернон, в своей книге «Implementing DDD» много говорит об архитектуре Порты и Адаптеры, как о более продвинутом уровне Слоистой Архитектуры. Хотелось бы услышать ваше мнение на этот счёт.
Если не вдаваться в детали, то в своей книге я описываю именно этот архитектурный паттерн, хотя никогда не называю его этим именем.

TL;DR Если применить принцип инверсии зависимостей к слоистой архитектуре, то в конечном счете получим Порты и Адаптеры.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии9

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность