powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вопрос по архитекутре приложения
52 сообщений из 52, показаны все 3 страниц
Вопрос по архитекутре приложения
    #39138967
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил проникнуться теорией и написать тестовый Bookstore. UI будет на WinForms, а затем ASP.Net MVC.

Открываю книжки / интернет и читаю что лучший вариант при создании приложения - это разделить приложение на слои.
Далее при построении UI на WinForms рекомендуют использовать паттерн MVP. Когда читаешь об MVP, то видешь пример, как люди ловкого его используют и для MVC. Когда читаешь об MVC, то не встретишь примеров использования MVP.

Так как первым UI будет WinForms, то решаю придерживаться паттерна MVP, а когда дойдет дело до MVC подумаю как прикрутить наработанное. ОК, все доводы в пользу слоев и MPV услышаны и приступаю к разработке.

Создаю 4 слоя Bookstore.DataLayer, Bookstore.BusinessLayer, Bookstore.WinForms, Bookstore.Mvc.

В DataLayer создержаться EF модели и контекст.

И тут возникают вопрос:
- куда запихнуть предпологаемые патерном MVP Model, View, Presenter. Все в бизнес слой?
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39138992
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G- куда запихнуть предпологаемые патерном
запихнуть в задний проход
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139005
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропилзапихнуть в задний проход
иди лесом ... неадекват.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139009
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GСоздаю 4 слоя

Прежде чем что-то создавать, надо понимать, зачем это нужно, какая роль у каждого слоя, и что в нем будет находиться. Книжку почитай еще раз, плюс какие-нибудь статьи по отличиям MVP, MVC, MVVM, благо их навалом.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139041
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GДалее при построении UI на WinForms рекомендуют использовать паттерн MVP

не нужен
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139065
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PallarisАртем GСоздаю 4 слоя

Прежде чем что-то создавать, надо понимать, зачем это нужно, какая роль у каждого слоя, и что в нем будет находиться. Книжку почитай еще раз, плюс какие-нибудь статьи по отличиям MVP, MVC, MVVM, благо их навалом.

Книг и статей уже читано перечитано. Каша в голове. Пора перейти к практике. Я один. Старших товарищей рядом подсказать нет. Вариант один - это форум.

kmawАртем GДалее при построении UI на WinForms рекомендуют использовать паттерн MVP

не нужен

Тогда как правильно создать архитектру? на примере Bookstore с двумя интерфейсами.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139078
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GPallarisпропущено...


Прежде чем что-то создавать, надо понимать, зачем это нужно, какая роль у каждого слоя, и что в нем будет находиться. Книжку почитай еще раз, плюс какие-нибудь статьи по отличиям MVP, MVC, MVVM, благо их навалом.

Книг и статей уже читано перечитано. Каша в голове. Пора перейти к практике. Я один. Старших товарищей рядом подсказать нет. Вариант один - это форум.

kmawпропущено...


не нужен

Тогда как правильно создать архитектру? на примере Bookstore с двумя интерфейсами.

WinForms - это партиал-классы форм - часть дизайнер (считай "View"), часть обработчики событий (считай "Controller"). Так что MVC там, можно считать, "из коробки" идёт. Городить еще что-то поверх - лишнее, на мой взгляд
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139080
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GТогда как правильно создать архитектру?Критерии правильности?

Судя по описанию, хочется отделить прикладную логику от различных UI библиотек - WinForms и ASP MVC. Если так, то вынеси слои Bookstore.DataLayer и Bookstore.BusinessLayer в отдельную DLL-сборку, не зависящую от каких-либо UI библиотек - в результате архитектура выстроится сама собой.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139084
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G, какие цели для себя преследуете?
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139086
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КАртем GТогда как правильно создать архитектру?Критерии правильности?

Судя по описанию, хочется отделить прикладную логику от различных UI библиотек - WinForms и ASP MVC. Если так, то вынеси слои Bookstore.DataLayer и Bookstore.BusinessLayer в отдельную DLL-сборку, не зависящую от каких-либо UI библиотек - в результате архитектура выстроится сама собой.+ покрой тестами процентов на 60 хотя бы
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139090
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ размести все это в гите (Git)

И твоё резюме станет интереснее :)
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139111
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G, и ещё посмотрите на конкурентов: Amazone, Ozon, - у них микросервисная архитектура :)
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139125
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КСудя по описанию, хочется отделить прикладную логику от различных UI библиотек - WinForms и ASP MVC. Если так, то вынеси слои Bookstore.DataLayer и Bookstore.BusinessLayer в отдельную DLL-сборку, не зависящую от каких-либо UI библиотек - в результате архитектура выстроится сама собой.
оно ж работать будет без модных аббревиатур :)
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139129
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилаббревиатурПопрошу не выражаться!
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139138
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAАртем G, и ещё посмотрите на конкурентов: Amazone, Ozon, - у них микросервисная архитектура :)

Не смешно :) . Лушче б совет какой-нибудь дельный дали начинающему ).
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139141
den9000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MVP - это модификация шаблона MVC. Так же, как в MVC, в ней три компонента:
- Модель – представляет данные и способы работы с ними. Не содержит информации, как эти данные визуализировать (как в MVC).
- Представление – отвечает за отображение информации.
- Презентер – действует над моделью и представлением. Извлекает данные из хранилища (Модели) и формирует их для отображения в Представлении.

Отличие MVP от MVC: Презентер также отвечает за управление событиями пользовательского интерфейса (типа, MouseDown и т.п.), которое в MVC было заботой Представления. Т.е. все нужные события описываются в интерфейсе Представления и пробрасываются в Презентер, где и обрабатываются, что позволяет вынести из Представления логику их обработки.

Т.е. если ты делаешь WinForms-приложение и используешь шаблон MVP, у тебя фактически три слоя, а не четыре.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139151
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GBookstore.BusinessLayer

что ты туда собрался покласть? и в каком виде?
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139174
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

Проект чисто устаканить то, что прочитано по Архитектектуре приложения. Оформить практическим заданием. Иначе от прочитанного ноль. Или не так?

Вот пример теории из книги.
Пользователь нажимет кнопку добавить товар > UI > Добавление товара> BusinessLogic > Сколько товара в наличии? > DataLayer > 0 товара в наличии > BusinessLogic > Этот товар не доступен > UI > Пользователь видет сообщение о недоступности товара.


Как я понимаю в моем примере с Bookstore первое что создасться справочник Книг. BusinessLogic будет содержать метод добавления книги в базу, проверку свойств на корректность.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139197
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
den9000Презентер также отвечает за управление событиями пользовательского интерфейса (типа, MouseDown и т.п.), которое в MVC было заботой Представления. Т.е. все нужные события описываются в интерфейсе Представления и пробрасываются в Презентер, где и обрабатываются, что позволяет вынести из Представления логику их обработки.


Я правильно понимаю что между Presenter и BusinessLayer можно поставить знак равенства?
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139201
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем Gden9000Презентер также отвечает за управление событиями пользовательского интерфейса (типа, MouseDown и т.п.), которое в MVC было заботой Представления. Т.е. все нужные события описываются в интерфейсе Представления и пробрасываются в Презентер, где и обрабатываются, что позволяет вынести из Представления логику их обработки.


Я правильно понимаю что между Presenter и BusinessLayer можно поставить знак равенства?Нет, если:

прикладная логика != логика представления
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139202
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G
Я правильно понимаю что между Presenter и BusinessLayer можно поставить знак равенства?

Presenter и View - это UI-Layer.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139204
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GЯ правильно понимаю что между Presenter и BusinessLayer можно поставить знак равенства?

Как оттестировать бизнесовую задачу добавления отсутствующего товара? Неужели для этого нужно создавать презентер с вьюхой?
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139206
Фотография RocknRolla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GРешил проникнуться теорией и написать тестовый Bookstore. UI будет на WinForms, а затем ASP.Net MVC.
Это разные архитипы приложений

Артем GКогда читаешь об MVP, то видешь пример, как люди ловкого его используют и для MVC.

Ещё раз, это разные архитипы приложений.
@Нельзя вот так просто взять и выделить компонент логики представления, и заменить архитип

Артем GТак как первым UI будет WinForms, то решаю придерживаться паттерна MVP, а когда дойдет дело до MVC подумаю как прикрутить наработанное. ОК, все доводы в пользу слоев и MPV услышаны и приступаю к разработке.


Первым делом изучаем паттерн посредник (mediator GoF)
Далее принцип separation of concerns ( в нагрузку srp, ocp)
А после изучаем структурные шаблоны организации пользовательского интерфейса MVC, MVP, MVVM и MVP-VM.

Артем G- куда запихнуть предпологаемые патерном MVP Model, View, Presenter. Все в бизнес слой?

Читаем несколько раз от корки до корки, потом через полгода перечитываем
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139237
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин опять читать :) Когда ж наступят светлые времена .... или они это и есть?
Почитаю .... надеюсь на просветление. Большое спасибо.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139246
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GКогда ж наступят светлые временачерез 10000 часов практики, хоть обчитайся до этого
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139266
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GБлин опять читать :) Когда ж наступят светлые времена .... или они это и есть?
Почитаю .... надеюсь на просветление. Большое спасибо.Распишите какой-нибудь сценарий использования Вашего приложения, прямой проход.

Вот это он: "Пользователь нажимет кнопку добавить товар > UI > Добавление товара> BusinessLogic > Сколько товара в наличии? > DataLayer > 0 товара в наличии > BusinessLogic > Этот товар не доступен > UI > Пользователь видет сообщение о недоступности товара"?
В книге разве нет примера реализации?
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139296
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КАртем Gпропущено...


Я правильно понимаю что между Presenter и BusinessLayer можно поставить знак равенства?Нет, если:

прикладная логика != логика представления

ОК, понял.

PallarisАртем GЯ правильно понимаю что между Presenter и BusinessLayer можно поставить знак равенства?

Presenter и View - это UI-Layer.

Вот если взглянуть на код ниже тогда Model содержит бизнес логику?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
class Presenter
{
    IView _view;
    IModel _model;

    //...///

    _view.Data = _model.GetFilteredData();
}
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139313
Фотография RocknRolla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G Вот если взглянуть на код ниже тогда Model содержит бизнес логику?
Что содержит модель, Вам виднее.

А передача управления в данном случае корректна.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139385
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RocknRollaАртем G Вот если взглянуть на код ниже тогда Model содержит бизнес логику?
Что содержит модель, Вам виднее.Что ещё может содержать модель кроме прикладной (бизнес) логики?
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139391
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RocknRollaАртем G Вот если взглянуть на код ниже тогда Model содержит бизнес логику?
Что содержит модель, Вам виднее.

А передача управления в данном случае корректна.

Если б было виднее не спрашивал бы. А код не мой а из книжки.

Вот полная цепочка от нажатия кнопки пользователем добавить товар в карзину до получения сообщения о недоступности
Пользователь нажимет кнопку добавить товар > UI > Добавление товара> BusinessLogic > Сколько товара в наличии? > DataLayer > 0 товара в наличии > BusinessLogic > Этот товар не доступен > UI > Пользователь видет сообщение о недоступности товара"

В этом примере видно что бизнес логика содержит
- метод Добавление товара,
- Функцию на проверку наличия товара,
- Отправку сообщения об недоступности товара,

в паттерне MPV эта логика в модели? передоваться во вью через Презентер? то есть бизнес логика в модели?
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139398
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем Gбизнес логика в модели?

Хорошая модель должна содержать бизнес-логику, но без фанатизма. В данном конкретном случае я бы сделал на стороне слоя доменной модели некий сервис, который бы предоставлял данные о наличии товара, и дергал его из презентера.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139401
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только накой такие сложности - ответа нет:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
class Presenter
{
    View View;

    ModelService ModelService;

    public Presenter(View view, ModelService modelService)
    {
        ModelService = modelService;

        View = view;
        View.Loaded += ViewLoaded;
        View.Save += ViewSave;
    }

    void ViewLoaded()
    {
        View.Model = ModelService.GetModel();
    }

    void ViewSave()
    {
        ModelService.SaveModel(View.Data);
    }
}
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139402
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisХорошая модель должна содержать бизнес-логику, но без фанатизма.

Здесь по моделью я имею ввиду модель данных, которая отражается на данной конкретной вьюхе
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139403
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
* View.Data Model
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139411
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallaris,
Спасибо за ваши ответы. Одни из самых информативных.

Как итог:
Вопрос был
-где распределить предпологаемые патерном MVP Model, View, Presenter. Все в бизнес слой?

1.
PallarisPresenter и View - это UI-Layer.

2.
PallarisАртем Gбизнес логика в модели?
Хорошая модель должна содержать бизнес-логику, но без фанатизма. В данном конкретном случае я бы сделал на стороне слоя доменной модели некий сервис, который бы предоставлял данные о наличии товара, и дергал его из презентера.

ОК. Попробую создать приложение исходя из этого плюс спасибо RocknRolla. Параллельно почитаю про паттерны проектирования.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139544
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Стюардесса в салоне нового лайнера объявляет о то, что находится в самолете:
- На первой палубе - багаж, на второй - бар, на третьей - поле для гольфа, на четвертой бассейн.
И добавляет:
- А теперь, господа, пристегнитесь. Сейчас со всей этой хуйней мы попробуем взлететь."
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139630
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилмы попробуем взлететь.

прости нас, гуру!
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139643
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisИзопропилмы попробуем взлететь.

прости нас, гуру!
написание книг о паттернах - это тоже бизнес
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139671
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилнаписание книг о паттернах - это тоже бизнес

тссс!!! ты чего!?
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139677
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GhVostt,

Проект чисто устаканить то, что прочитано по Архитектектуре приложения. Оформить практическим заданием. Иначе от прочитанного ноль. Или не так?

Вот пример теории из книги.
Пользователь нажимет кнопку добавить товар > UI > Добавление товара> BusinessLogic > Сколько товара в наличии? > DataLayer > 0 товара в наличии > BusinessLogic > Этот товар не доступен > UI > Пользователь видет сообщение о недоступности товара.


Как я понимаю в моем примере с Bookstore первое что создасться справочник Книг. BusinessLogic будет содержать метод добавления книги в базу, проверку свойств на корректность.

Предлагаю следующую методу. Возьми свой пример, и попробуй написать его так, как если бы сроки горели (ну ограничь себя, например, неделей), т.е. как-нибудь без слоёв и архитектурных паттернов, чтобы проект работал и выполнял 100% функций.

Затем начни обстоятельно исследовать свой проект с точки зрения архитекутуры, что бы ты и куда вынес и почему. Т.е. необходимо не просто следование какой-то заданной модели, а понимание — почему она именно такая, и что это даёт.

Иначе есть риск, что ты повозишься с этой мудотнёй, и решишь, что по-старинке (типа «вообще не парясь») работать как-то лучше и удобней. У каждой архитектуры есть своё предназначение, в зависимости от того, какие задачи решаются и как они должны решаться, архитектура может сильно отличаться. Нет какой-то стандартной модели слоёв, рассматривать их как примеры в вакууме (т.е. в отрыве от контекста применения) — как-то бессмысленно.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139683
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttИзопропилнаписание книг о паттернах - это тоже бизнес

тссс!!! ты чего!? издать что ли брошюру о книгах про паттерны...
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39139688
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПредлагаю следующую методу. Возьми свой пример, и попробуй написать его так, как если бы сроки горели (ну ограничь себя, например, неделей), т.е. как-нибудь без слоёв и архитектурных паттернов, чтобы проект работал и выполнял 100% функций.

Затем начни обстоятельно исследовать свой проект с точки зрения архитекутуры, что бы ты и куда вынес и почему.Я бы даже предложил после написания придумать развитие проекта, изначально не предполагаемое (добавить функциональность, улучшить взаимодействие с пользователем и т.п.). Причем лучше, чтобы это предложил не ты, а посторонний пользователь (ты-то знаешь, как внутри у тебя все устроено, что сложно модернизировать, что просто). Сразу повсплывают узкие места по масштабируемости и станет ясно, для чего нужны паттерны.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39140388
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЯ бы даже предложил после написания придумать развитие проекта, изначально не предполагаемое (добавить функциональность, улучшить взаимодействие с пользователем и т.п.). Причем лучше, чтобы это предложил не ты, а посторонний пользователь (ты-то знаешь, как внутри у тебя все устроено, что сложно модернизировать, что просто). Сразу повсплывают узкие места по масштабируемости и станет ясно, для чего нужны паттерны.

Паттерны нужны в первую очередь как инструмент для внешней и внутренней коммуникации.

Т.е. если ты пришёл в долгоиграющий проект, ты сразу видишь что есть что, и другим программистам не надо убивать недели и месяцы своего рабочего времени, чтоб объяснять тебе, что да как, да почему. Открываешь проект и видишь узнаваемые паттерны. С коллегами опять же гораздо проще общаться и продуктивней.

Другое дело одиночки. Часто они подзабили на всякие там паттерны да и на много чего, что актуально для командной разработки. Это удобно. Такой одиночка-программист со временем становится незаменимым в прямом смысле этого слова. Нельзя его заменить вот так просто. Никто не поймёт его «мазню», никто. Я видел такие проекты. Проще заново переписать, чем сопровождать, и я не шучу.

Так что паттерны нужны и важны. А кто отрицает этот факт, тот просто находится на уровне таджика-индуса, о чём там вообще говорить? Ну устроился когда-то, сидит на своём проекте в одиночку — молодец, что ещё сказать. Но это единичные упоротые случаи сказочного везения. Так делать неправильно и нельзя.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39140510
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПаттерны нужны в первую очередь как инструмент для внешней и внутренней коммуникации.это безусловно.

Но не менее важно то, что кто-то уже плясал по граблям годами или даже десятилетиями, пока не был выработан способ, позволяющее эффективно подойти к решению задачи. И это решение описано в паттерне, описание большинства граблей, которые возникнуть, если отступить от паттерна, зачастую отсутствуют, и не совсем очевидно, почему стоило бы следовать паттерну при кажущемся усложнении реализации через него.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39140557
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttАртем GhVostt,

Проект чисто устаканить то, что прочитано по Архитектектуре приложения. Оформить практическим заданием. Иначе от прочитанного ноль. Или не так?

Вот пример теории из книги.
Пользователь нажимет кнопку добавить товар > UI > Добавление товара> BusinessLogic > Сколько товара в наличии? > DataLayer > 0 товара в наличии > BusinessLogic > Этот товар не доступен > UI > Пользователь видет сообщение о недоступности товара.


Как я понимаю в моем примере с Bookstore первое что создасться справочник Книг. BusinessLogic будет содержать метод добавления книги в базу, проверку свойств на корректность.

Предлагаю следующую методу. Возьми свой пример, и попробуй написать его так, как если бы сроки горели (ну ограничь себя, например, неделей), т.е. как-нибудь без слоёв и архитектурных паттернов, чтобы проект работал и выполнял 100% функций.

Затем начни обстоятельно исследовать свой проект с точки зрения архитекутуры, что бы ты и куда вынес и почему. Т.е. необходимо не просто следование какой-то заданной модели, а понимание — почему она именно такая, и что это даёт.

Иначе есть риск, что ты повозишься с этой мудотнёй, и решишь, что по-старинке (типа «вообще не парясь») работать как-то лучше и удобней. У каждой архитектуры есть своё предназначение, в зависимости от того, какие задачи решаются и как они должны решаться, архитектура может сильно отличаться. Нет какой-то стандартной модели слоёв, рассматривать их как примеры в вакууме (т.е. в отрыве от контекста применения) — как-то бессмысленно.

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

Сейчас на руках ~100 проектов разной сложности (как пример больше половина завязаны на сап: где то biz talk adapter, a где то sap script) от 4х различных "разработчиков", которые об архитектуре ни когда не думали а о паттернах ни когда не слышали. Все это добро теперь у меня на поддержке + нужно будет писать что-то новое. У самого с 10ок средней руки проектов, ни как не маштабируемы.

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

hVosttТак что паттерны нужны и важны. А кто отрицает этот факт, тот просто находится на уровне таджика-индуса, о чём там вообще говорить? Ну устроился когда-то, сидит на своём проекте в одиночку — молодец, что ещё сказать. Но это единичные упоротые случаи сказочного везения. Так делать неправильно и нельзя.

Я чтение про паттерны проектирования / принцыпы проектирования нашел для себя полезным. Каждому начинающему желательно прочесть про них сразу после справочной информации по языку.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39140564
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GСейчас на руках ~100 проектов

тут 0 не лишний?
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39140655
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GhVosttпропущено...


Предлагаю следующую методу. Возьми свой пример, и попробуй написать его так, как если бы сроки горели (ну ограничь себя, например, неделей), т.е. как-нибудь без слоёв и архитектурных паттернов, чтобы проект работал и выполнял 100% функций.

Затем начни обстоятельно исследовать свой проект с точки зрения архитекутуры, что бы ты и куда вынес и почему. Т.е. необходимо не просто следование какой-то заданной модели, а понимание — почему она именно такая, и что это даёт.

Иначе есть риск, что ты повозишься с этой мудотнёй, и решишь, что по-старинке (типа «вообще не парясь») работать как-то лучше и удобней. У каждой архитектуры есть своё предназначение, в зависимости от того, какие задачи решаются и как они должны решаться, архитектура может сильно отличаться. Нет какой-то стандартной модели слоёв, рассматривать их как примеры в вакууме (т.е. в отрыве от контекста применения) — как-то бессмысленно.

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

Сейчас на руках ~100 проектов разной сложности (как пример больше половина завязаны на сап: где то biz talk adapter, a где то sap script) от 4х различных "разработчиков", которые об архитектуре ни когда не думали а о паттернах ни когда не слышали. Все это добро теперь у меня на поддержке + нужно будет писать что-то новое. У самого с 10ок средней руки проектов, ни как не маштабируемы.В этой ситуации надо конкретные проблемы понять и искать варианты их решения, а не MVC/MVP пробовать.

Проекты никак не масштабируемы, то есть скорее всего они монолитны и их надо разбивать на части (модули, микросервисы), каждая из которых может иметь свою архитектуру.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39140661
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G, ответьте для себя на вопрос: Как разнесение на такие вот слои поможет мне решить проблему масштабирования?
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39140743
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kmawАртем GСейчас на руках ~100 проектов
тут 0 не лишний?
Нет не лишний. Это количество того, что уже создано. Есть еще список в два раза больше опять же приблизительно что требует бизнес создать. Создать отчеты из сапа или наоборот сделать проводки в сапе стоят денег, плюс нехватка кадров. Вопрос решается локальными приложениями.

skyANAАртем G, ответьте для себя на вопрос: Как разнесение на такие вот слои поможет мне решить проблему масштабирования?
Конкретно разнесение по слоям не даст маштабируемость. И тут вопрос то есть вы советуете этого не делать?
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39140764
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GКонкретно разнесение по слоям не даст маштабируемость. И тут вопрос то есть вы советуете этого не делать?

Конкретно нельзя ничего сказать, не зная требований к проекту. Как можно сказать, какой дому требуется фундамент, если неизвестно ни сколько этажей будет, ни как будет дом эксплуатироваться, ни какая сейсмическая активность в районе и какие атмосферные условия, где будет строится дом?

Тоже самое можно сказать про архитектуру. Немаловажно ещё учитывать, каким образом будет вестись разработка, по какой методологии, сколько будет команд и чем они будут заниматься. Какие требования к качеству, требуется ли близкое к 100% покрытие тестами, в каком режиме будут проводится такие регламентные работы, как обновление и хотфиксы. А может это будет многоступенчатый деплой. Требуется ли изолированность модулей, может ли поставка продукта различаться по набору компонентов. Что там по нагрузке? Кто и как будет пользоваться продуктом? В каких условиях?

В общем, один и тот же продукт в различных условиях может иметь самую разную архитектуру. А если это проектик с небольшим циклом разработки с одним разработчиком, то можно вообще взять один из готовых бутстрапов, из опенсорс, или из своих наработок и выполнить с наименьшими трудозатратами задачу.
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39140768
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GskyANAАртем G, ответьте для себя на вопрос: Как разнесение на такие вот слои поможет мне решить проблему масштабирования?
Конкретно разнесение по слоям не даст маштабируемость. И тут вопрос то есть вы советуете этого не делать?Я советую решать конкретный проблемы, наиболее подходящими для этого способами. Причём в порядке приоритетности.

А то Вы потратите кучу времени на какой-то тестовый проект, потом его покажете коллегам, а они спросят: И что нам с этого?
...
Рейтинг: 0 / 0
Вопрос по архитекутре приложения
    #39140772
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProНо не менее важно то, что кто-то уже плясал по граблям годами или даже десятилетиями, пока не был выработан способ, позволяющее эффективно подойти к решению задачи. И это решение описано в паттерне, описание большинства граблей, которые возникнуть, если отступить от паттерна, зачастую отсутствуют, и не совсем очевидно, почему стоило бы следовать паттерну при кажущемся усложнении реализации через него.

Это путь к знаниям. Сначала что-то узнаешь, но не понимаешь, как и где это реально можно использовать. А потом с опытом понимаешь. Если поступать наборот кривая обучения выглядит длиннее. Если же описывать паттерны полно, со всеми вариантами использования на всех популярных языках со всеми вариантами граблей, то это будет история в десяти томах, так что Дональд нервно покурит в сторонке
...
Рейтинг: 0 / 0
52 сообщений из 52, показаны все 3 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вопрос по архитекутре приложения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]