про смешивание кода, данных и интерфейса
От: cr lf  
Дата: 29.05.07 04:44
Оценка:
Hi all,
вот тут кое-кто обвинил меня в сабже, и хотя я с предъявленными обвинениями
не согласен, захотелось поглубже разобраться в предмете. На самом деле, я
никогда не встречал сколько-нибудь внятных рассуждений на эту тему.
Может кто поделится ссылками, а лучше ссылкой, а еще лучше текстом, где
четко и не двусмысленно описывается данная концепция с примерами кода.
Спасибо
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>

31.05.07 22:42: Перенесено из 'Образование и наука'
Re: про смешивание кода, данных и интерфейса
От: _Jane_ Украина  
Дата: 29.05.07 17:37
Оценка: +2
Здравствуйте, cr lf, Вы писали:

CL>Hi all,

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

http://java.sun.com/blueprints/patterns/MVC.html
http://en.wikipedia.org/wiki/Model-view-controller
Jane
Re: про смешивание кода, данных и интерфейса
От: bastrakov Россия http://bastrakof.livejournal.com/
Дата: 31.05.07 08:34
Оценка: :)
Здравствуйте, cr lf, Вы писали:

CL>вот тут кое-кто обвинил меня в сабже, и хотя я с предъявленными обвинениями

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

вот смотри: стоит у меня на столе грамота за хорошую работу.
рамочка из магазина, грамота сделана в фотошопе, ну там имя мое, за что она дана, и подпись начальника.

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

надеюсь понятно.

во
Re: Подарки в сентябре.
От: DmitryElj Россия  
Дата: 31.05.07 11:44
Оценка:
Здравствуйте, cr lf, Вы писали:

CL>вот тут кое-кто обвинил меня в сабже, и хотя я с предъявленными обвинениями

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

Ответ сугубо практический — если данные и интерфейс разделены, то гораздо меньше времени потребуется на доработку, если например начальник скажет "этот диалог а вот ещё добавь вывод в HTML (RTF, etc подставить по вкусу)". Или если поменяется дизайн/концепция интерфейса и пр.
Re[2]: Re: про смешивание кода, данных и интерфейса
От: DmitryElj Россия  
Дата: 31.05.07 11:46
Оценка:
Сообщение не дописалось, глюк Оперы, но суть наверно ясна
Re[2]: про смешивание кода, данных и интерфейса
От: mishaa Россия http://kmmbvnr.livejournal.com
Дата: 01.06.07 02:31
Оценка:
Здравствуйте, _Jane_, Вы писали:

_J_>http://java.sun.com/blueprints/patterns/MVC.html

_J_>http://en.wikipedia.org/wiki/Model-view-controller

Не MVC единым:
http://www.martinfowler.com/eaaDev/ModelViewPresenter.html

CL>вот тут кое-кто обвинил меня в сабже ... захотелось поглубже разобраться в предмете


Могу привести два крайних примера:

1. Список в котором отображается код клиента, двоеточие, имя клиента. И при любом действии над клиентом берется выделенная строка и парситься для получения кода.

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

В первом варианте кода немного меньше, но вместо того чтобы что-то менять — проще выкинуть, во втором кода больше (databinding немного улучшает ситуацию), менять проше, сложную логику и runtime валидацию осуществлять проще.
-- Главное про деструктор копирования не забыть --
Re: про смешивание кода, данных и интерфейса
От: nvoynov Украина http://nvoynov.blogspot.com
Дата: 01.06.07 07:49
Оценка:
Здравствуйте, cr lf, Вы писали:

CL>вот тут кое-кто обвинил меня в сабже, и хотя я с предъявленными обвинениями

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

Есть основополагающие принципы ООП проектирования. Их просто необходимо знать любому программисту. На этих принципах построено масса паттернов (не только MVC). Почитать шаблоны проектирования GoF и обязательно Роберта К. Мартина. У Мартина есть принципы проектирования и применение паттернов проектирования на реальных проектах.

Но еще на мой взгляд (и не только) — главное это изменения. Т.е. нужно ловить ось изменения и оптимизировать работу по этой оси. И еще "правило трех ударов" Кеннета Бека.

Немного по теме есть в блоге здесь
С уважением, Николай
Re: про смешивание кода, данных и интерфейса
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 01.06.07 08:43
Оценка:
Здравствуйте, cr lf, Вы писали:

CL>Может кто поделится ссылками, а лучше ссылкой, а еще лучше текстом, где

CL>четко и не двусмысленно описывается данная концепция с примерами кода.
Местные статьи по теме:
Model-View-Controller в .NET
Автор(ы): Иван Бодягин
Дата: 25.07.2006
В наше время сложно найти разработчика, который не слышал бы о паттерне под названием Model-View-Controller или сокращенно MVC, что вообщем не удивительно, с задачей отделения данных от их представления сталкиваешься практически на каждом проекте. Однако, как ни странно, столь же сложно найти разработчика, который действительно четко себе представляет, что такое на самом деле паттерн MVC и как его можно реализовать в конкретной ситуации. Основная причина такой неоднозначности в том, что по историческим причинам данной аббревиатурой принято называть не один единственный паттерн, а целое семейство паттернов, призванное отделять представление от модели. Произошло это в силу разных обстоятельств. Отчасти из-за того что MVC не просто паттерн, а довольно объемное архитектурное решение, в котором каждый новый разработчик видел что-то свое и ставя во главу угла особенности своего проекта, реализовывал его по своему. Отчасти же из-за возраста данного паттерна, во времена его изобретения и сами приложения, и графические интерфейсы были существенно беднее чем в наше время, с тех пор они сильно эволюционировали и вместе с ними изменялся и сам паттерн. Данная статья посвящена также одному из паттернов входящих в это семейство, причинам его появления, особенностям применения, преимуществам и недостаткам, а так же описанию сопутствующих паттернов.

Обобщенный Model-View-Controller
Автор(ы): Сергей Рогачев
Дата: 23.03.2007
В статье рассматривается вариант реализации шаблона проектирования Model-View-Controller в виде каркаса приложения на основе обобщенного программирования языков Java и C#. В описании предлагаемого решения, кроме того, будут рассмотрены шаблоны проектирования Mediator, Observer и Command и показаны варианты их применения в рассматриваемой реализации Model-View-Controller. Предполагается наличие у читателя знания базовых шаблонов проектирования, языка UML, диаграммами которого будут сопровождаться описания, а также одного из указанных языков программирования.
... << RSDN@Home 1.2.0 alpha rev. 677>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.