Связано с архитектурой Python: нужно ли нам больше?

Программа перевода самородков Python задняя часть

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

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

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

С тех пор я работал с парнем, который активно внедряет эти паттерны в Python.Техническая командадостигнуть сотрудничества. На самом деле в этих архитектурных шаблонах нет ничего нового, они уже много лет исследуются в Java и C#. Просто я в них новичок... Судя по личному опыту, я могу быть здесь немного глубокомысленным (мне интересен ваш ответ), но они, вероятно, тоже новы для большей части сообщества Python?

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

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

Классические книги по теме (обе Java)

Дизайн, управляемый предметной областью (DDD), ЭвансиАрхитектурные паттерны ФаулераОбе классические книги, которые должен прочитать каждый, кто ими интересуется. Но если вы похожи на меня, это немного раздражает, чтобы пробираться через эти общедоступные статические пустые основные вещи AbstractFactoryManager. Может быть, более легкое введение в Pythonic покажется более разумным и менее туманным?

Некоторые существующие ресурсы в мире Python:

Главный архитектор Made, выдающийся г-н Боб, написал серию блогов, состоящую из четырех частей, по вопросам, которые мы сейчас обсуждаем. Мне особенно понравилось читать его, когда я только начинал. Эта серия представляет собой краткое введение в базовые концепции DDD, порты и адаптеры/инверсию зависимостей, а также несколько событийно-управляемых архитектур. Все для Питона. (Предупреждение о триггере: Типовые подсказки).

  1. Порты и адаптеры с шаблоном обработчика команд в Python
  2. Репозиторий и шаблоны единиц работы в Python
  3. Команды и запросы, обработчики и представления
  4. Зачем использовать события домена?

На io.made.com есть еще много других, но вышеперечисленные четыре являются основными. Мы хотели бы получить отзывы о них, какие из них объяснены, какие требуют дополнительного объяснения и т. д.

А также: выпущенная к прошлому Рождеству книга Леонардо Джордани.Чистые архитектуры в Python. Эта книга представляет собой две книги в одной: первая часть представляет собой введение в TDD, а вторая часть состоит из четырех глав о шаблонах, подобных тем, которые я здесь обсуждаю.

Мне также очень понравилось выступление Дэвида Седдона год назад.Rock River: как построить свой монолит Джанго, показывая, что другие начинают думать о том, как мы можем выйти за рамки базовой архитектуры модели/представления/шаблона Django.

у Валентина ИгнатьеваСписок ресурсов DDDТам намного больше, вот что я недавно видел в Твиттере. Кажется, у многих есть представление об этом.

Призыв к действию: это интересно?

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

  • Эти вещи интересны или имеют смысл? Вы хотите знать больше?
  • Вы делаете с Python что-то, что выходит за рамки «базовой разработки веб-приложений» или «конвейера данных»? Вам трудно писать быстрые модульные тесты? Вы начинаете хотеть освободить свою бизнес-логику от любой используемой вами структуры?
  • Используете ли вы DDD или любой из классических шаблонов Python? Наверняка у вас уже есть все ответы, не хотите ли рассказать мне? Или вы просто хотите сказать мне некоторые ответы и вещи, которые относятся к вам?
  • Вам кажется, что эти вещи звучат абстрактно и бессмысленно? Может быть, Made.com — это своего рода набросок в мире Python, потому что мы пишем программное обеспечение для логистики/ERP/предприятий на Python, и все это сильно отличается от вашей повседневной работы?
  • Как вы думаете, какие новые руководства по этим темам больше всего принесут сообществу Python/динамических языков?

Я хотел бы услышать ваше мнение. Комментарии открыты в конце статьи, или вы можете оставить мне сообщение в Twitter@hjwp.

Я упоминал о чтении классических книг? Иди читай классику.

  • Patterns of Enterprise Architecture, Мартин Фаулер,amazon.com / .co.uk
  • Дизайн, управляемый предметной областью, Эрик Эванс,amazon.com / .co.uk

Если вы обнаружите ошибки в переводе или в других областях, требующих доработки, добро пожаловать наПрограмма перевода самородковВы также можете получить соответствующие бонусные баллы за доработку перевода и PR. начало статьиПостоянная ссылка на эту статьюЭто ссылка MarkDown этой статьи на GitHub.


Программа перевода самородковэто сообщество, которое переводит высококачественные технические статьи из Интернета сНаггетсДелитесь статьями на английском языке на . Охват контентаAndroid,iOS,внешний интерфейс,задняя часть,блокчейн,продукт,дизайн,искусственный интеллектЕсли вы хотите видеть более качественные переводы, пожалуйста, продолжайте обращать вниманиеПрограмма перевода самородков,официальный Вейбо,Знай колонку.