avl (avl) wrote,
avl
avl

Category:

30. Знания предметной области

(В оригинале Understand The Business Domain)

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

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

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

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

Самые успешные архитекторы, которых я знаю, это те, у кого есть как широкие технические знания, так и глубокие знания определенных предметных областей. Такие архитекторы могут вести переговоры с директорами компаний-заказчиков, говоря с ними на их языке. Это обеспечивает уверенность в понимании того, что делается в результате. Знания предметной области позволяют проектировщику лучше понимать проблемы, задачи, цели и процессы, что является ключевым фактором для разработки эффективной архитектуры.

Автор оригинала - Mark Richards

Перевод мой. Если вы решите использовать его полностью или частично, не забудьте указать ссылку на мой живой журнал!
Tags: 97_things_architect_should_know
Subscribe

  • Про интерфейсы

    Была у нас в офисе микроволновка. Старая, самая простая, вот такая: Весь интерфейс — два поворотных регулятора. Один задает…

  • О ценности и цене

    Давно не писал сюда. Все же жж больше для лонгридов подходит, чем фб, где написанное потом фиг найдешь. Начну издалека. Лет 15 назад я впервые…

  • Первопричины политических взглядов

    Идея этого поста витала уже долго, но вот наконец решил, что все же стоит его написать. Попробую немного поразмышлять на тему, кто же все эти люди,…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments