January 5th, 2007

HighLoad

(no subject)

В процессе обсуждения архитектуры Метро 2033 родилась следующая глава для книги о разработке крупных веб-проектов.

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

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

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

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

Collapse )