Comments 24
Если вы используете метафору "архитектура", то почему у метафоры "архитектура" есть "слои"? Я ни разу не видел слоистых зданий.
… Поправка, оказывается, такое есть: https://www.pinterest.com/fabricimages/layered-architectural-design/
Но я не уверен, что вы это имели ввиду.
Ну вот у вас есть, допустим, невероятно сложная программа с очень хорошей архитектурой. Называется /boot/vmlinuz-5.4.0-38-generic. И где там слои?
… Допустим, не ядра. Вот другое, невероятно большое и объёмное приложение. https://github.com/ceph/ И где тут слои?
Вы берёте какой-то малюсенький мирок какого-то одного фреймворка и пытаетесь его терминологию распространить на всю вселенную. Не надо.
Доработал статью, заголовок уточнил
Посмотрите вот эти статьи, если еще не видели:
1) AutomatizationWorker
2) DocumentsLogic
3) AutomatizationWorker и DocumentsLogic
4) Как-то иначе?
ConverterPlugin — это отдельная сборка dll, которая через рефлексию подключается к основному проекту и расширяет возможности FS.
совместно выработать определённость, создать у всех единое представление и выработать короткое, ясное и практичное определение для понятия Архитектурный слой в мире корпоративных приложений.
А вы читали книгу «Руководство Microsoft по проектированию архитектуры приложений»?
Там вполне хорошо описаны архитектурные подходы, паттерны, слои и довольно много практик
Можно свободно скачать с сайта Microsoft
Она довольно старенькая, но содержит очень хорошие знания внути.
Там можно найти информацию еще «до создания слоёв» и как вообще создается архитектура.
нет критериев, по которым те или иные задачи относятся к тому или иному слою,
задачи могут затрагивать слои как по горизонтали, так и по вертикали (см. микросервисы)
В крупных системах так или иначе слои используются, даже если их так никто не называет.
в базовом смысле слой это абстакция, поэтому что бы вы не делали это можно как то обозвать.
принято считать, что слоёв должно быть 3: данные, бизнес-логика, интерфейса — но на самом деле слоёв может быть любое необходимое количество
Это допущение ради упрощения.
есть понятие «классическая 3х слойная архитектура», это понятие дает некую связь в общении разрабов с неразрабами
Но так же есть и 4х и 5ти слойные архитектуры и вертикальные, опять же зависит от того, на что делается упор в проектировании и разработке
Ну и для многих является откровением что абстракции делятся на друге абстракции и чуть ли не каждый слой из 3х слойной архитектуре может быть разбит так же на 3х слойную архитектуру, только с большей конкретикой
(см. we need to go deeper meme)
Ну и в создание «общей архитектуры» без знания целей и без учета закона Конвея как то не верится.
А вы можете сейчас сказать на сколько отличается определение архитектурного слоя в этой книге и в статье?
Чем-то можно определение дополнить?
Суть в том, чтобы выработать короткое и понятное определение, чтобы всем ими пользоваться.
Архитектурный стиль, иногда называемый архитектурным шаблоном – это набор принципов,
высокоуровневая схема, обеспечивающая абстрактную инфраструктуру для семейства систем.
Архитектурный стиль улучшает секционирование и способствует повторному использованию
дизайна благодаря обеспечению решений часто встречающихся проблем. Архитектурные
стили и шаблоны можно рассматривать как набор принципов, формирующих приложение.
Гарлан (Garlan) и Шоу (Shaw) определяют архитектурный стиль как:
«… семейство систем с точки зрения схемы организации структуры. Точнее говоря,
архитектурный стиль определяет набор компонентов и соединений, которые могут
использоваться в экземплярах этого стиля, а также ряд ограничений по их возможным
сочетаниям. Сюда могут относиться топологические ограничения на архитектурные
решения (например, не использовать циклы). Описание стиля также может включать и
другие ограничения, такие как, скажем, необходимость обработки семантики
выполнения.»
ну и в книге описаны признаки слоя (абстрактного), чем он должен быть и чем не должен.
И сам подход «многослойная архитектура» как архитектурный стиль описан отдельно.
кратко из описания многослойной архитектуры
Рассмотрим общие принципы проектирования с использованием многослойной архитектуры:
- Абстракция
- Инкапсуляция
- Четко определенные функциональные слои
- Высокая связность
- Возможность повторного использования
- Слабое связывание
- Разделение функциональности
- Уведомление на основе событий
- Делегированная обработка событий
- Изоляция
- Управляемость
- Производительность
- Тестируемость
Ну и словосочетание «Архитектурный слой» я как то не особо встречал, либо слой, либо архитектурный шаблон.
Как-то термин "Архитектурный слой" то ли попахивает тавтологией, то ли добавляет в них какой-то то новый слой, который отвечает за архитектуру. Очень неудачный, по-моему
Слой архитектуры?
Слой архитектуры воспринимается, как будто есть слой архитектуры, а есть ещё какой-то слой (не архитектуры)
Когда я говорю Архитектурный слой, подразумевается, что сама архитектура состоит из слоёв
Идея не очень. Откажитесь от нее. Слои сегодня не интересны их обжевали с декаду назад.
Архитектура понятие растяжимое, но сегодня архитектур точно не про слои...
зайдите для начала на википедию, прочитайте определение Архитектура ПО и всё что в статье, потом можем пообщаться
Не стоит обижатйся ;) Я в Архитектуре 15 лет.
не пишите сюда больше
удачи!
Слой — это нечто широкое и плоское, в смысле однородное. Там должно быть много такого разного, которое чем-то друг на друга очень похоже.
Слоёв всегда несколько, и они параллельны. То есть, можно увидеть направление поперёк слоёв, и некоторую упорядоченность этих слоёв вдоль этого направления.
Слои относительно отдельны, то есть у них есть границы, обычно не сильно размытые.
Слои либо выделяются сами, просто из-за структуры области деятельности, либо формируются насильно. Второе, ИМХО, приводит к натягиванию сов на глобусы, и ничего хорошего не получается.
Архитектурный слой (в корпоративной разработке). Понятие, определение, представление