Найти тему

Смешно и страшно. Трехуровневая архитектура приложения. Как ее вкусно съесть и какой соус добавить?

Правильно написать код для вашего приложения, это дело очень не сложное. На практике выясняется, что неопытный программист прежде, чем начать писать код для своего приложения, он сходит в туалет и запасется рулоном туалетной бумаги, так как после его заданных вопросов на Stackoverflow, боже упаси Ответ Mail.ru, на него выльется столько "грязи", что ему станет стыдно за вопрос и он закроет IDE.
Пошутили и хватит. Перейдем к делу.

Чуточку про код
Чуточку про код

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

Так, пока суть да дело. При поддержке своего приложения, вы столкнетесь с Legacy-кодом. Представим такую ситуацию:
Вы только устроились на работу в не большую IT-компанию, в которой работают одни "прекрасные люди". Team-Lead вам говорит:
- Вот тебе проект, просмотри его и исправь ошибки.

А там такой код:

Немного про код
Немного про код

Первое что придет в голову:

  1. Поотрывать руки кто это писал;
  2. Уволиться с этой конторы;
  3. Плюнуть в лицо Team-Lead-у;
  4. Плюнуть в лицо тому кто это писал;
  5. Переписать (обычно, это никто не выбирает).

Теперь представьте, как вы будите это изменять????? Хороший вопрос, не правда ли? Приятнее знать, что в какой-то папке лежит код для работы только с БД или файлами, код для вычислений, и код для общей обработки информации.

Чтобы не писать подобного "некультурное слово" надо подумать о архитектуре приложения. Будет ли у вас База данных (БД), какие-либо внешний файлы конфигурации или тому подобное. Если для вас подходит одно из выше перечисленных, подумайте о многоуровневой архитектуре. НАКОНЕЦ-ТО мы до неё добрались!!!

Так вот, не отходя от темы. Что же нам дает многоуровневая архитектура, что это такое, где ее кушать и с чем?

Чтобы на колесах не гоняли
Чтобы на колесах не гоняли
(Google) Многоуровневая архитектура - клиент-серверная архитектура, в которой разделяются функции представления, обработки и хранения данных. Наиболее распространённой разновидностью многоуровневой архитектуры является трёхуровневая архитектура.

Если говорить своими словами, она имеет три уровня: Presentation Layer (PL), Business Layer (BL), Data Access Layer (DAL).

PL - самый первый уровень в нашей архитектуре. Данный уровень формирует данные, которые подлежат дальнейшей обработки в Business Layer.
BL - уровень бизнес-логики. В данном уровне могу проводится какие-либо математические и арифметические вычисления, которые можно будет передать обратно в PL, или передать в DAL для записи в БД или текстовые файлы.
DAL - уровень для обращения со внешними файлами проекта или БД.
Немного шуток про Беларусь)))))

Данная архитектура очень схожа на архитектуру правительства Беларуси, т.е. PL - это обычный работящий народ, BL - кассир Галя в Evroopt, которая умеет делать отмену, DAL - батька.

НО суть заключается в одном. PL знает только о BL, BL - знает только о DAL, а в то время DAL, не знает ни о ком. ГЫ ГЫ ГА ГА

Если брать по факту, тогда схема выглядит примерно так:

схема многоуровневой архитектуры
схема многоуровневой архитектуры

Сразу введу поправку, как вы могли заметить по стрелкам, каждый уровень знает о соседнем, но это не так. На данном рисунке стрелки показаны для того, чтобы разработчик понимал, что уровень может возвращать какой-либо тип данных, но его не должно волновать кому он возвращает, его задача только вернуть/записать.

Думаю что я написал все, что вы должны знать про многоуровневую архитектуру в приложении.
Пилить ли дальше статьи про программировании, в частности про C#?????

ВСЕ! Yield return Like++;