Модуль в архитектуре это
Модуль (в архитектуре)
Возникнув вследствие технической необходимости, М. стал и одним из средств архитектурной композиции, которое используется для приведения в гармоническое соответствие размеров целого и его частей (например, золотое сечение в античной архитектуре, модулор в практике Ле Корбюзье). Однако применение М. никогда не означало механического расчёта всех величин: в поисках выразительных соотношений архитекторы вносили в соразмерность частей поправки, учитывающие особенности зрительного восприятия. В архитектуре 2-й половины 20 в., в связи с развитием методов сборного индустриального строительства, постоянные линейные М. получили особенно большое техническое значение как средство согласования планировочных и конструктивных элементов зданий, их унификации и стандартизации.
Основной М. размером в 10 см, производные от него укрупнённые (3 М., 6 М., 12 М., 15 М., 30 М., 60 М.) и дробные М. вместе с правилами их применения составляют модульную систему. Они установлены советскими, зарубежными и международными нормами и стандартами.
Лит.: Хазанов Д. Б., Модуль в архитектуре, в сборнике: Вопросы теории архитектурной композиции, [в.] 2, М., 1958; Архитектура жилого комплекса, М., 1969.
Большая советская энциклопедия. — М.: Советская энциклопедия . 1969—1978 .
Смотреть что такое «Модуль (в архитектуре)» в других словарях:
МОДУЛЬ (в архитектуре) — МОДУЛЬ (от лат. modulus мера), в архитектуре и строительстве исходная мера, принятая для выражения кратных соотношений размеров комплексов, сооружений и их частей. В качестве модуля принимают меру длины (фут, метр), размер одного из элементов… … Энциклопедический словарь
Модуль — в архитектуре классической древности и эпохи Возрождения,радиус поперечного разреза колонны при ее основании, служащий единицей,которой измеряются и определяются размеры как самой колонны, так и всехобломов того ордена, к которому она относится,… … Энциклопедия Брокгауза и Ефрона
Модуль — I Модуль (от лат. modulus мера) в архитектуре, условная единица, принимаемая для координации размеров частей здания или комплекса. В архитектуре разных народов в зависимости от особенностей строительной техники и композиции зданий за М.… … Большая советская энциклопедия
МОДУЛЬ — (в математике) мера для сравнения однородных величин и для выражения одной из них помощью другой; м. выражается числом. Словарь иностранных слов, вошедших в состав русского языка. Павленков Ф., 1907. МОДУЛЬ (лат.). 1) число, которым множатся… … Словарь иностранных слов русского языка
модуль — я, м. module <лат. modulus мера. 1. В строительном деле исходная единица измерения, устанавливаемая для данного сооружения или его частей. БАС 1. В архитектуре врач, зря быстрый свой успех, За модули ее принялся не на смех. Княжнин От дяди… … Исторический словарь галлицизмов русского языка
МОДУЛЬ — (от латинского modulus мера) в архитектуре и строительстве, исходная мера, принятая для выражения кратных соотношений размеров сооружений и их частей. В качестве модификации принимают меру длины (фут, метр), размер одного из элементов здания или… … Современная энциклопедия
МОДУЛЬ — (от лат. modulus мера) в архитектуре и строительстве исходная мера, принятая для выражения кратных соотношений размеров комплексов, сооружений и их частей. В качестве модуля принимают меру длины (фут, метр), размер одного из элементов здания или… … Большой Энциклопедический словарь
Модуль — (от лат. modulus мера), в архитектуре и строительстве исходная мера, принятая для выражения кратных соотношений размеров комплексов, сооружений и их частей. В качестве модуля принимают меру длины (фут, метр), размер одного из элементов… … Художественная энциклопедия
Модуль (арх.) — МОДУЛЬ (от латинского modulus мера) в архитектуре и строительстве, исходная мера, принятая для выражения кратных соотношений размеров сооружений и их частей. В качестве модификации принимают меру длины (фут, метр), размер одного из элементов… … Иллюстрированный энциклопедический словарь
МОДУЛЬ — (от лат. modulus мера) 1) назв. к. л. особо важного коэффициента или величины (напр., модуль зубьев, модуль упругости, М. комплексного числа). 2) Условная единица в стр ве и архитектуре, принимаемая для выражения кратных соотношений размеров… … Большой энциклопедический политехнический словарь
Построение модульной архитектуры приложения на Forwarding-декораторах (авторский перевод)
Когда разработчик планирует архитектуру своего будущего веб-приложения, полезно подумать о его расширяемости заранее. Модульная архитектура приложения может обеспечить хорошую степень расширяемости. Существует довольно много способов, как такую архитектуру реализовать, но все они сходны в своих фундаментальных принципах: разделение понятий, самодостаточность, взаимная сочетаемость всех компонентов.
Однако есть один подход, который именно в PHP можно встретить довольно редко. Он включает использование нативного наследования и позволяет патчить код «более лучше»(с). Мы называем этот способ “Forwarding Decorator”. Нам он представляется достаточно эффективным, и, кстати, эффектным тоже, хотя последнее не так важно в продакшене.
Как автор оригинальной англоязычной статьи «Achieving Modular Architecture with Forwarding Decorators», опубликованной на SitePoint, я представляю вам авторскую версию перевода. В ней я сохранил изначально задуманный смысл и идею, но постарался максимально улучшить подачу.
Введение
В данной статье мы рассмотрим реализацию подхода с использованием Forwarding Decorator, а также его плюсы и минусы. Сравним данный подход с другими хорошо известными альтернативами, а именно — с использованием хуков, патчингом кода или DI (dependency injection). Для наглядности есть демо-приложение вот в этом репозитории GitHub.
Основная идея состоит в том, чтобы рассматривать каждый класс как сервис, и модифицировать этот сервис посредством наследования и реверсирования цепочки наследников при компиляции кода.
В системе, основанной на такой идее, в любом модуле можно создать специальный класс-декоратор (отмеченный особым образом). Такой класс получит поля и методы другого класса через механизм наследования, но после компиляции будет везде использоваться вместо оригинального класса.
Собственно, поэтому мы и называем такие классы Forwarding decorators: эти декораторы являются надстройкой над исходной реализацией, однако выдвигаются вперед в местах использования.
Преимущества такого подхода очевидны:
- Любая часть системы может быть расширена с помощью модуля — любой класс, любой public/protected метод. Не нужно заранее отмечать точки расширения специальным кодом.
- Одна подсистема может модифицироваться несколькими модулями одновременно.
- Подсистемы слабо связаны между собой, поэтому могут обновляться по-отдельности, независимо друг от друга.
- Вы можете ограничить расширяемость, используя привычные конструкции: приватные (private) методы и закрытые (final) классы.
Однако свои недостатки у этого подхода тоже есть:
- В первую очередь — это отсутствие четких интерфейсов взаимодействия c расширяемой системой. Мы можем расширять все, что не запрещено явно через private, но система может не ожидать, что в нее зашли не с того конца и будет работать неадекватно в случаях, о которых не задумывался разработчик модуля. Нужно тщательно инспектировать код на наличие нежелательных побочных эффектов.
- Вам придется реализовать своего рода компилятор (подробности ниже).
- При разработке модулей нужно четко соблюдать публичный интерфейс подсистем и не нарушать принцип подстановки Лисков, иначе эти модули сломают систему.
- Наличие дополнительного компилятора усложняет отладку кода. Вы не сможете запускать XDebug на исходном коде напрямую, любое изменение кода сначала требует запуска компилятора. Однако эту проблему можно решить, используя хитрые PHP-трюки так, что запускаться будут скомпилированные файлы, но при этом в дебаггере вы будете видеть исходный код.
Подобный способ расширения системы — в некотором смысле промежуточное решение между прямым патчингом кода (low-level, никаких правил игры, god mode, greatest power but with greatest responsibility и т.д.) и архитектурой на основе плагинов, с четким определением того, каким может быть плагин, какие подсистемы и как он может изменятьпредоставлять. Система декораторов позволяет хорошо решать некоторый диапазон задач, но это вовсе не серебряная пуля и не идеальный способ организовать модульность.
Как можно использовать такую систему?
Как так вышло? Это уличная магия ) Мы разворачиваем цепочку наследования вспять. Исходный класс — без внутреннего кода. В результате компиляции мы препроцессим код так, что содержимое исходного класса уходит в отдельный класс, который будет новым родителем для цепочки:
Если кратко, то в приложение встраивается компилятор, который строит промежуточные классы, и autoloader, который будет загружать эти промежуточные классы вместо исходных.
А теперь немного подробнее. Компилятор строит список всех классов, используемых в системе, и для каждого класса, который не является декоратором, находит все подклассы, которые будут его декорировать с помощью DecoratorInterface. Он создает дерево декораторов, проверяет, нет ли там циклов, сортирует декораторы по их приоритету об этом подробнее далее) и строит промежуточные классы, где цепочка наследования будет развернута в обратную сторону. Исходный код преобразуется в новый класс, который станет новым родительским классом для цепочки наследования.
Звучит сложно. Так оно и есть, это действительно сложная комплексная система. Однако она позволяет очень гибко комбинировать модули, и с помощью этих модулей вы можете модифицировать абсолютно любую часть вашего приложения.
А если один класс переписывается несколькими модулями?
В случае, если в игру вступает несколько декораторов одновременно, они попадают в цепочку декорирования согласно их приоритету. Приоритет можно задать с помощью аннотаций (мы пользуемся DoctrineAnnotations) или конфигов.
В данном примере аннотация DecoratorAfter используется, чтобы поставить декоратор другого модуля Module 1 перед модулем Module 2. Компилятор проанализирует файлы, учтет аннотации и построит промежуточный класс с такой цепочкой наследования:
Также можно использовать такие аннотации:
- DecoratorBefore (чтобы поместить декоратор перед декораторами другого модуля или выше по весу)
- DecoratorDepend (чтобы включить декоратор, только если указанный модуль включен в системе)
Данного набора аннотаций (Before, After, Depend) абсолютно достаточно для построения любой комбинации модулей и классов.
А есть прямо рабочие примеры?
Есть! Для наглядности я подготовил демку приложения, она находится вот в этом репозитории GitHub. Это написанное на PHP приложение имеет модульную архитектуру, и модули могут подмешивать код без рекомпиляции. При этом модули можно добавлять и удалять, но в этом случае рекомпиляция уже понадобится. Более детально все это описано в readme файле.
Есть и совсем «боевые» примеры. На рынке уже есть несколько программных продуктов, которые используют такой подход. В частности, нечто очень похожее используется в OX >
Привычные хуки и патчинг лучше! Или нет?
Как и подход с Forwarding Decorators, использование хуков и патчинг “в лоб” имеют свои плюсы и минусы.
- Хуки (или какая-либо реализация шаблона Observer ) широко используются во многих популярных приложениях, например в WordPress. Среди плюсов — четко определенный API, прозрачный способ регистрации Наблюдателя. Самый большой недостаток — ограниченное количество точек входа для встраивания расширений, также неудобством является порядок выполнения (сложно полагаться на результат работы других хуков)
Патчинг “в лоб” — самый тривиальный и очевидный способ расширения, однако он нам представляется достаточно рисковым. Во-первых, он существенно затрудняет чтение и анализ кода, во-вторых — усложняет откат изменений в случае их неправильности. Также, осложняется и наложение нескольких патчей одновременно так, чтобы они не противоречили друг другу и не ломали функционал. Другими словами, это наименее контролируемый и управляемый способ, и если в простых решениях он себя оправдывает, то с усложнением системы эти минусы растут пропорционально ее комплексности.
Dependency Injection — код в системе с DI строится вокруг понимания, что необходимые зависимости не получаются вручную, а поставляются откуда-то извне или к ним доступ осуществляется опосредованно — опять же через некоего поставщика (чаще всего это какой-либо IoC-контейнер).
Зависимости удовлетворяют некому интерфейсу и являются законченной реализацией некой функциональности. Через систему расширения можно подменять одну реализацию зависимости на другую исходя из текущей конфигурации системы.
Реализации могут быть наследованными от базовых или же декорированными в классическом смысле декоратора — как в Symfony 2, например, как описано здесь. Проблема такой архитектуры в том, что весь код должен строиться c использованием DI-style получения зависимостей. Отличие от описанной в статье системы в том, что forwarding decorator позволяет подменять классы абсолютно прозрачно во всех точках использования.
Помимо этого, непонятно, как организовать композицию нескольких модулей, расширяющих один и тот же сервис — придется писать отдельную систему, т. к. популярные IoC-контейнеры никак не разрешают данную проблему (это находится вне области ответственности таких библиотек).
Заключение
Forwarding-декораторы — это подход, по меньшей мере заслуживающий внимания. Он может использоваться для решения проблемы разработки расширяемой модульной архитектуры приложений на языке PHP. При этом будут использоваться знакомые конструкции, такие как наследование или область видимости полей/методов/классов.
Реализация такого концепта — задача нетривиальная, возможны сложности с отладкой, но они преодолимы при условии, что вы потратите некоторое время на должную настройку компилятора.
Если будет интерес к данному материалу, в следующей статье я напишу, как сделать оптимальный компилятор с автозагрузчиком и использовать потоковые фильтры (PHP Stream filters), чтобы включить пошаговый дебаггинг исходного кода через XDebug. Интересно? Дайте об этом знать в комментариях. А еще я буду рад вашим вопросам, советам и конструктивной критике.
Основы теории архитектуры и архитектурной композиции
1. Что называется архитектурой:
2) система зданий и сооружений, формирующих пространственную среду для жизни и деятельности людей;
2. Кому принадлежит определение «архитектура – это польза, прочность, красота»:
1) древнеримскому зодчему Витрувию;
3. В чём заключается главная цель создания объектов архитектуры:
3) в организации внутреннего пространства и оптимальном решении внешних объемов в соответствии с назначением здания и его конструктивной основой;
4. Какие основные задачи решает архитектор:
1) создание пространственной среды для комплекса процессов, связанных с жизнедеятельностью человека;
5. Каким основным требованиям должны отвечать архитектурные произведения:
3) обеспечивать единство функциональной необходимости, конструктивной надёжности и архитектурно-художественной выразительности;
6. Гармония в архитектуре – это
2) эстетическая категория, основанная на целостности и совершенстве организации архитектурного объекта по принципу сочетания отдельных его элементов, различных по форме и содержанию;
7. Почему архитектуру считают искусством:
4) архитектура – прикладное искусство как результат творческого процесса, учитывающего материальные и эстетические запросы общества?
8. Архитектурный стиль – это
1) совокупность основных черт и признаков архитектуры, характерных для определенного времени и места;
9. Что такое архитектурный образ произведения:
2) художественная выразительность объекта;
10. Что такое архитектурный ансамбль:
3) гармоническое единство архитектурных сооружений в пространственно организованной среде на основе определенного идейно-художественного содержания и композиционного замысла;
11. Что включает понятие «строительство»:
2) проектирование и возведение зданий и сооружений;
12. Чем определяется необходимость строительства зданий:
4) социальным заказом общества?
13. Архитектурная композиция – это
4) закономерное и оптимальное сочетание внешних объемов и внутреннего пространства в единую гармоническую архитектурную форму, отвечающую своему назначению и основным требованиям.
14. Что является главной целью создания архитектурной композиции здания или сооружения:
1) единство и соподчинённость основных элементов архитектурного произведения с учётом его конструктивной основы и решения функциональных и эстетических требований;
15. Архитектурная форма – это
3) стереометрическое очертание поверхности элемента, его геометрический вид;
16. Объемно-пространственная структура архитектурного произведения – это
1) сочетание и гармоничное единство его внутреннего пространства и внешних объёмов на основе функционального назначения;
17. Основные типы объемно-пространственной структуры архитектурного произведения:
2) фронтальная, объемная, глубинно-пространственная;
18. Композиция внутреннего пространства – это
4) композиционное построение и сочетание отдельных помещений по принципу единства и функциональной целесообразности, конструктивной основы и художественной выразительности.
19. Назовите основные виды композиции зданий по характеру построения архитектурных объемов:
4) простая, сложная.
20. Назовите основные архитектурно-планировочные схемы группировки внутреннего пространства:
1) коридорная, галерейная, анфиладная, зальная, секционная, смешанная;
21. Что такое анфилада:
1) ряд соединённых между собой помещений, входы которых расположены по одной оси, что создаёт при глубинной композиции иллюзию перспективы внутреннего пространства;
22. Функциональные схемы группировки внутреннего пространства – это
2) архитектурно-планировочные схемы расположения помещений на основе функциональной взаимозависимости;
23. Интерьер – это
1) архитектурно решенное внутреннее пространство здания (помещения), обеспечивающее благоприятные условия жизнедеятельности человека;
24. Композиция внешних объемов – это
2) гармоническое сочетание архитектурных форм композиционных элементов объекта, определяющих его конфигурацию (силуэт);
25. Композиция внешних объемов по геометрическому очертанию силуэта подразделяется на следующие виды:
3) простую (на основе простых геометрических фигур: куб, параллелепипед, конус и т. д.), сложную, смешанную;
26. Простая композиция внешних объемов – это
4) композиция на основе простых геометрических форм (куб, параллелепипед и т. д.).
27. Сложная композиция внешних объемов – это
1) композиция на основе сочетания множества сложных стереометрических форм элементов, имеющих прямолинейные и криволинейные поверхности;
28. Композиция внешних объемов по расположению объекта в пространстве подразделяется на следующие виды:
2) объемную, плоскую (фронтальную), линейную, объёмно-пространственную;
29. Фронтальная (плоская) композиция внешних объемов – это
3) композиция, отличающаяся преобладанием размеров по высоте и протяженности здания над размерами по глубинной координате;
30. Объемная композиция – это
4) пространственная форма объекта, развитая по трем координатам, равно воспринимаемая со всех сторон.
31. Глубинная композиция внешних объемов – это
1) композиция, имеющая развитие по глубинной координате;
32. Что такое доминанта:
1) в архитектурной композиции – это главный элемент, выполняющий объединяющую роль (центр композиции);
33. Основные приемы и средства гармонизации композиционного решения архитектурного объекта – это
4) пропорции, масштаб, ритм, метр, контраст, нюанс, цвет, свет, членение, синтез искусств, фактура.
34. Пропорции в архитектуре – это
4) система соотношений частей между собой и целым.
35. «Золотое сечение» – это
1) пропорциональное отношение, основанное на делении отрезка в среднем и крайнем отношении, когда большая его часть относится к меньшей, как весь отрезок к большей;
36. «Золотое сечение» выражается соотношением:
2) 3:5; 5:8; 8:13; 13:21; . ; 0,382:0,618 ;
37. Что такое модуль:
4) условная единица в архитектуре и строительстве, принимаемая для выражения кратных соотношений размеров элементов здания?
38. Что было принято за модуль в античной архитектуре:
3) нижний радиус (диаметр) колонны ордера;
39. Что такое модуль в современном строительстве и архитектуре:
1) условная линейная единица, равная 100 мм;
40. Что такое единая модульная система (ЕМС) в строительстве:
4) правила координации размеров зданий, их элементов, конструкций и деталей на основе кратности этих размеров принятому единому модулю?
41. Архитектурный масштаб (масштабность) – это
2) средство архитектурной композиции, выражающее соразмерность или относительное соответствие воспринимаемых человеком размеров архитектурного произведения размерам человека;
42. Симметрия в архитектуре – это
3) закономерное расположение равных совместимых или зеркальных частей архитектурного объекта относительно друг друга;
43. Назовите виды симметрии в архитектуре:
4) осевая, зеркальная, диагональная, винтовая.
44. Что такое осевая симметрия в архитектуре:
1) вид симметрии, при которой форма при полном обороте вокруг оси симметрии совмещается сама с собой;
45. Зеркальная симметрия – это
2) вид симметрии, когда отраженно равные части объекта расположены относительно друг друга как предмет и его отражение в зеркале;
46. Что такое диагональная симметрия:
3) вид симметрии, при которой форма может быть совмещена с самой собой при перемещении вдоль оси переноса на определенное расстояние;
47. Ритм в архитектуре – это
4) закономерное чередование или повторение однообразных архитектурных элементов (деталей, форм, объемов).
48. Метр в архитектуре – это
1) чередование одинаковых элементов через равное расстояние;
49. С какой целью применяется членение объекта архитектуры при разработке его композиции:
2) разделить объемы (фасады) здания и достичь желательных соотношений его отдельных частей;
50. Что понимается под синтезом искусств в архитектуре:
3) единство архитектуры и пластических искусств (скульптура, живопись, рельеф и т. д.) с целью создания целостного архитектурно-художественного образа отдельного объекта или ансамбля;
51. Что такое ризалит:
4) часть здания, выступающая за основную линию фасада по всей высоте и составляющая единое целое со всем зданием?
Дата добавления: 2015-06-26 ; Просмотров: 2967 ; Нарушение авторских прав?
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет