Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как работает MVC? На примере из книги по agile web develop 
V
    Опции темы
Gunslinger
Дата 18.8.2010, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Пример из книги: 
In this example, assume the application has previously displayed a product catalog page, and the user has just clicked the Add To Cart button next to one of the products. This button links back to our application using the URL http://my.url/store/add_to_cart/123, where 123 is our internal id for the selected product.
... it takes the first part of the path, store, as the name of the controller and the second part, add_to_cart, as the name of an action. The last part of the path, 123, is by convention extracted into an internal parameter called id. As a result of all this analysis, the router knows it has to invoke the add_to_cart() method in the controller class StoreController

Изначально: есть класс, где хранятся и данные, и методы работы с этими данными (доступ, различные операции и выдача результата).
MVC все разносит по классам: данные - в один (модель), методы работы - в другой (контроллер), выдача - в третий (вью).
mvc в ruby: начинается уже с урл? т.е. если проектировать структуру сайта, нужно ориентироваться на подобную схему: контроллер -- метод -- параметр для метода (какие данные из модели взять)?


PM MAIL   Вверх
Vasay
Дата 18.8.2010, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 2
Всего: 73



Цитата(Gunslinger @  18.8.2010,  19:12 Найти цитируемый пост)
mvc в ruby: начинается уже с урл? т.е. если проектировать структуру сайта, нужно ориентироваться на подобную схему: контроллер -- метод -- параметр для метода (какие данные из модели взять)?



Не обязательно. Роутинг можно переопределить. 
Посмотри: http://habrahabr.ru/blogs/ruby/45377/




--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
source777
Дата 18.8.2010, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Цитата(Gunslinger @  18.8.2010,  19:12 Найти цитируемый пост)
mvc в ruby: начинается уже с урл?

MVC во всех случаях начинается с пользовательского ввода, который передаётся на обработку контроллеру.
Вполне естественно, что для веб-приложений пользовательский ввод осуществляется через URL и HTTP-параметры(POST, GET, etc.)

Про роутинг стоит почитать отдельно для RoR 2.3.x, для RoR 3.0. Предварительно не помешает изучить архитектуру REST.


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Gunslinger
Дата 19.8.2010, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Vasay, спасибо за ссылку, интересно, хоть и понял немного. В доках по рору наверняка подробно расписывается. Получается, если есть информация, которую может запросить пользователь и работать с ней, то и есть свой контроллер. Как в примере: список статей. Или информация о партнерах и о продукции: партнеры - свой контроллер, продукция - свой контроллер. И т.д. на каждую модель свой контроллер.

Цитата(source777 @  18.8.2010,  23:29 Найти цитируемый пост)
Предварительно не помешает изучить архитектуру REST. 

Сейчас читаю статьи. Сильно отвлекают термины сервисы (rest, soap), ресурсы. Ресурсы это веб сайты с их содержимым (бд, еще что-нибудь)? А сервисы это наборы методов, которые слушают порт и обрабатывают пришедшие запросы? На контроллеры похоже.



Это сообщение отредактировал(а) Gunslinger - 19.8.2010, 10:08
PM MAIL   Вверх
source777
Дата 19.8.2010, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Цитата(Gunslinger @  19.8.2010,  10:06 Найти цитируемый пост)
Ресурсы это веб сайты с их содержимым (бд, еще что-нибудь)? 

Нет, ресурс - это некий информационный объект, который может иметь различные представления (HTML, XML, JSON, YAML, etc.). Примеры ресурсов: статья, комментарий, пользователь, категория, топик, пост.

Цитата(Gunslinger @  19.8.2010,  10:06 Найти цитируемый пост)
А сервисы это наборы методов, которые слушают порт и обрабатывают пришедшие запросы?

Веб-сервисы - это веб-приложения предоставляющие внешний API, например GitHub или Lighthouse. Любой веб-сервис работает в рамках некоторой архитектуры/протокола, например XML-RPC, SOAP, REST. 
Rails приложения обычно используют REST протокол, как наиболее удобный и идеологически правильный (соглашение превыше конфигурации). Поэтому REST очень хорошо интегрирован в RoR и если тебе понадобится сделать внешний API для твоего веб-приложения, то сделать это будет довольно легко.
Я тебе нагуглил русский ликбез на тему REST, хотя в идеале рекомендую прочитать книгу "Practical REST on Rails 2 Projects".



Это сообщение отредактировал(а) source777 - 19.8.2010, 12:25


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Gunslinger
Дата 19.8.2010, 19:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



source777, большое спасибо! Книгу на торренте нашел.
Думаю смысла дальше разговаривать пока нет. Сначала усвою rest, затем примусь за ror, а там уже можно будет про архитектуру продолжить, если будут вопросы.
Спасибо за помощь!
PM MAIL   Вверх
Vasay
Дата 19.8.2010, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 2
Всего: 73



Gunslinger, 

Цитата

Книгу на торренте нашел.


Я не думаю, что Вам надо так сильно отвлекаться от RoR на REST. 

Думаю, того что написано,  скажем в книге "Путь Rails." про Rest будет Вам вполне достаточно. 


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
source777
Дата 19.8.2010, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Соглашусь c Vasay, для старта хватит и ликбеза, а книгу чуть позже прочитаешь, тем более что она предполагает наличие у читателя знаний по RoR 2.x, так что на данном этапе тебе подойдёт только первая глава "Why REST?". 
Вот эту главу стоит прочитать даже до ликбеза, потому что там расписано зачем это вообще нужно, какие даёт преимущества и даже приведён небольшой исторический экскурс.


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Gunslinger
Дата 20.8.2010, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Цитата(Vasay @  19.8.2010,  20:05 Найти цитируемый пост)
Я не думаю, что Вам надо так сильно отвлекаться от RoR на REST. 
Думаю, того что написано,  скажем в книге "Путь Rails." про Rest будет Вам вполне достаточно.  


Цитата(source777 @  19.8.2010,  20:46 Найти цитируемый пост)
глава "Why REST?"

ок. "Why REST?"--ликбез--ruby 1.8.7\1.9.x&&RoR 2.x.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby on Rails"
source777
  • С чего начать? начинаем
  • Документацию смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby On Rails | Следующая тема »


 




[ Время генерации скрипта: 0.0578 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.