:: Не фоксом единым
Часы и минуты - архитектура
S-type

Сообщений: 2969
Дата регистрации: 24.04.2004
Программа ASP MVC. Надо сделать так:

[attachment 29718 s1.png]

В базе одно поле, содержащее время в минутах. Предположим, в базе содержится "121". Тогда на экране должно быть "2 ч. 1 мин.". Как это реализовать - возможны варианты.

    Делаем в модели (которая MVC) одно свойство, а конвертирование делаем в JS.
    Делаем в модели два свойство, конвертирование делаем в самом свойстве.


Как правильно с точки зрения архитектуры?
Ratings: 0 negative/0 positive
Re: Часы и минуты - архитектура
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
В Rich domain model логичен второй вариант, в Anemic domain model скорее первый.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Часы и минуты - архитектура
S-type

Сообщений: 2969
Дата регистрации: 24.04.2004
habr.com

Цитата:
Anemic Domain Model — есть только состояние
Rich Domain Model — с состоянием и поведением (бизнес-логикой).

Так?

Преобразование "121" => "2 ч. 1 мин." разве относится к бизнес-логике? Это ведь просто конвертация формата, которая нужна для отображения.



Исправлено 1 раз(а). Последнее : S-type, 21.07.18 14:58
Ratings: 0 negative/0 positive
Re: Часы и минуты - архитектура
S-type

Сообщений: 2969
Дата регистрации: 24.04.2004
Если так подумать - то это действительно бизнес логика. Потому, следует вообще вынести преобразование за пределы MVC - в слой бизнес логики.
Ratings: 0 negative/0 positive
Re: Часы и минуты - архитектура
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Это не только преобразование, это ещё и валидация. А что, у тебя в MVC М это не "бизнес логика"? Или всё же речь про MVC+SOA, где "логика" вся в сервисах спрятана?


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Часы и минуты - архитектура
S-type

Сообщений: 2969
Дата регистрации: 24.04.2004
Да, MVC+SOA. Проект большой, в разное время делали разные люди, и не всегда правильно. Глянул в JS, зародились сомнения, что так не надо. Пытаюсь делать всё правильно.
Ratings: 0 negative/0 positive
Re: Часы и минуты - архитектура
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Нет никакого "правильно" - есть целесообразность в конкретных условиях При изменении условий она вполне может изменяться.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Часы и минуты - архитектура
Аспид
Автор

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Мне кажется, раз в базе 121, значит и БЛ, оперирует этим значением .
Для показа его, создал бы ViewModel, в которой преобразовал бы все, как нужно вьюшке.
Нашел бы красивую вью, для управления часами-минутами.
И все это слепил вместе.)
Сейчас есть гораздо более интересные, чем у тебя приведено на рис.

Вообще, есть модель для БЛ, а есть модель для показа.
Они конечно связаны, но это разные вещи.


------------------




Исправлено 1 раз(а). Последнее : Аспид, 24.07.18 08:09
Ratings: 0 negative/0 positive
Re: Часы и минуты - архитектура
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Для веба обычно не делают MVVM, потому там нет отдельного ViewModel - а каким должна быть Model - совпадающей с БД, или нет - зависит от того что за модель, что в ней за код. Раз уж это C# на бэкэнде, то вообще для интервала времени можно использовать TimeSpan - если с ним идёт какая-то работа.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Часы и минуты - архитектура
Аспид
Автор

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Игорь, как всегда прав, в своей строгости определений)))
Я главное имел ввиду...

[attachment 29753 time.png]

Конечно никаких MVVM. просто иногда, что бы показать что то во вью, приходится для нее спецом модель создать.
А другие, успешно решают это же, на JS
В вебе, главное UI.
(О логике просто глупо говорить, она безусловно должна быть правильной, еще до создания UI)


------------------
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 7 (Гостей: 7)

© 2000-2024 Fox Club 
Яндекс.Метрика