Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Что такое MVC и каковы его преимущества?
Я нашел, что такое mvp и mvc, и в чем разница , но это действительно не ответило на этот вопрос.
Я недавно начал использовать MVC, потому что это часть фреймворка, который собираюсь использовать я и мой партнер по работе. Мы выбрали его, потому что он выглядел легко и отделил процесс от отображения, есть ли преимущества помимо этого, о которых мы не знаем и которые могли бы упустить?
Плюсы
- Отображение и обработка разделены
Аферы
- Пока ни одного
MVC-это разделение m odel, v iew и c ontroller — ни больше, ни меньше. Это просто парадигма; идеал, который вы должны иметь в глубине своего сознания при проектировании классов. Избегайте смешивания кода из трех категорий в один класс.
Например, в то время как табличное представление сетки, очевидно, должно представлять данные после их отображения, оно не должно иметь кода о том, откуда извлекаются данные или какова его собственная структура ( модель). Аналогично, хотя он может иметь функцию суммирования столбца, фактическое суммирование должно происходить в контроллере .
Диалоговое окно 'save file' (представление ) в конечном счете передает путь, однажды выбранный пользователем, на контроллер , который затем запрашивает модель для данных и делает фактическое сохранение.
Такое разделение обязанностей обеспечивает гибкость в будущем. Например, поскольку представление не заботится о базовой модели, Поддержка нескольких форматов файлов проще: просто добавьте подкласс модели для каждого.
Разделение забот - это большая проблема.
Возможность раздразнить эти компоненты делает код более легким для повторного использования и независимого тестирования. Если вы на самом деле не знаете, что такое MVC, будьте осторожны, пытаясь понять мнения людей, поскольку все еще существует некоторое противоречие о том, что такое "Model" (является ли это бизнес objects/DataSets/DataTables или представляет собой базовый уровень сервиса).
Я видел все виды реализаций, которые называют себя MVC, но это не совсем так, и, как показывают комментарии в статье Джеффа , MVC-спорный момент, с которым я не думаю, что разработчики когда-либо полностью согласятся.
Хороший обзор всех различных типов MVC доступен здесь .
Я думаю, что еще одно преимущество использования шаблона MVC заключается в том, что он открывает двери для других подходов к дизайну, таких как MVP/Presenter first и многие другие шаблоны MV*.
Без этой фундаментальной сегрегации конструкции "components" внедрение этих методов было бы намного сложнее.
Я думаю, что это поможет сделать ваш код еще более интерфейсным.. Не только в рамках отдельного проекта, но вы можете почти начать разрабатывать общие "views", что означает, что вы можете создать гораздо больше шаблонов кода "grunt", используемых в ваших приложениях. Например, очень абстрактный "data view", который просто берет кучу данных и бросает их в общий макет сетки.
Редактировать:
Если я правильно помню, это довольно хороший подкаст на MV* паттернов (слушал его некоторое время назад!)
Он разделяет модель и вид, управляемый контроллером, Что касается модели, то ваши модели должны следовать архитектуре OO, будущие усовершенствования и другое обслуживание базы кода должны быть очень простыми, а база кода должна быть многоразовой.
Одна и та же модель может иметь любые no.of представлений, например, одна и та же информация может отображаться в виде различных графических представлений. Один и тот же вид может иметь различные модели no.of, например, различные детализированные данные могут быть показаны в виде одного графика, например, в виде гистограммы. Это то, что является повторным использованием как вида, так и модели.
Усовершенствования в представлениях и другая поддержка новых технологий для построения представления могут быть легко реализованы.
Парню, который работает над view dose, не нужно знать о базовой кодовой базе модели и ее архитектуре, и наоборот для модели.
Если вы следите за подкастами stackoverflow, вы можете услышать Джеффа (и Джеффа?) обсудите его величие. http://blog.stackoverflow.com/2008/08/podcast-17/ . Но помните, что использование этих отдельных слоев означает, что в будущем все будет проще-и сложнее сейчас. И слои могут сделать вещи медленнее. А вам они могут и не понадобиться. Но не позволяйте этому помешать вам узнать, что это такое-когда вы строите большие, надежные, долговечные системы, это бесценно.
Одна из фишек, которую я могу придумать, - это если вам нужен действительно быстрый доступ к вашим данным в вашем представлении (например, данные анимации игры, такие как позиции костей.) В этом случае очень неэффективно сохранять слой разделения.
В противном случае, для большинства других приложений, которые больше управляются данными, чем графикой, это кажется логичным способом управлять UI.
MVC-это просто общий шаблон проектирования, который в контексте разработки бережливого веб-приложения позволяет разработчику легко хранить HTML markup в слое представления приложения (представление) отдельно от методов, которые получают и обрабатывают запросы клиентов (контроллеры) и представления данных, возвращаемые в представлении (модели). Все дело в разделении забот, то есть в сохранении кода, который служит одной функциональной цели (например обработка клиентских запросов), изолированных от кода, который служит совершенно другой функциональной цели (например, представление данных).
Это тот же самый принцип, по которому любой, кто потратил более 5 минут на создание веб-сайта, может оценить необходимость хранения ваших HTML markup, JavaScript и CSS в отдельных файлах: если вы просто сбросите весь свой код в один файл, вы получите спагетти, которые впоследствии практически не редактируются.
Поскольку вы спросили о возможном "cons" : я не специалист по проектированию архитектуры программного обеспечения, но, основываясь на моем опыте разработки в MVC, я думаю, что также важно отметить, что следование строгому, без излишеств MVC шаблону проектирования наиболее полезно для 1) легких веб-приложений или 2) как уровень UI более крупного корпоративного приложения. Я удивлен, что эта спецификация не обсуждается больше, потому что MVC не содержит явных определений для вашей бизнес-логики, доменных моделей или вообще чего-либо в уровне доступа к данным вашего приложения. Когда я начал развиваться в ASP.NET MVC (т. е. еще до того, как я узнал о существовании других программных архитектур), я бы в конечном итоге получил очень раздутые контроллеры или даже модели просмотра, битком набитые бизнес-логикой, которая, если бы я работал над корпоративными приложениями, затруднила бы другим разработчикам, незнакомым с моим кодом, его модификацию (т. е. больше спагетти).
Одно из главных преимуществ MVC, которое здесь не упоминалось, заключается в том, что MVC предоставляет RESTful URL-адреса, которые позволяют SEO. Когда вы мудро называете свои контроллеры и действия, поисковым системам будет проще найти ваш сайт, если они только взглянут на URL-адреса вашего сайта. Например, у вас есть сайт продажи автомобилей и страница, на которой отображаются доступные автомобили Lamborghini Veneno, вместо www.MyCarSale.com/product/6548 , ссылающегося на страницу, вы можете выбрать www.MyCarSale.com/SportCar/Lamborghini-Veneno url для SEO цели.
Вот хороший ответ на преимущества MVC и вот статья, Как создать SEO дружественный Url.
Главное преимущество архитектуры MVC заключается в дифференциации уровней проекта по модели, виду и контроллеру для повторного использования кода, простоты обслуживания кода и обслуживания. Самое лучшее, что разработчик чувствует себя хорошо, чтобы добавить некоторый код в промежутке между обслуживанием проекта.
Здесь вы можете увидеть еще несколько пунктов Об основных преимуществах архитектуры MVC .
!
[архитектура mvc][1]
Model-view-controller (MVC) - это программный архитектурный шаблон для реализации пользовательских интерфейсов. Он разделяет данное программное приложение на три взаимосвязанные части, чтобы отделить внутренние представления информации от способов, которыми эта информация представляется пользователю или принимается от него.