Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Разбор YAML 
:(
    Опции темы
aktuba
Дата 18.6.2012, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


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

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



Цитата(source777 @  18.6.2012,  00:22 Найти цитируемый пост)
Ничего. Но нет единого понимания, что должна делать каждая из этих составляющих. Например, наиболее популярная интерпретация считает что контроллеры должны быть тонкими, а модели жирными. А ты считаешь наоборот. Можно сказать, что твой подход - не MVC, а можно сказать, что это другая реализация паттерна. В зависимости от одно- или двунаправлености связей между M,V,C можно ещё выделить несколько паттернов.. и т.д. и т.п... некоторые реализации удостаиваются даже отдельных аббревиатур типа MVP, MVVM, HMVC. Но академической точки зрения в этом вопросе как не было, так и нет.

Да какая разница, какие модели и контроллеры? MVC - это принцип построения системы и реализации вообще не при чем... И MVC имеет единственное значение: Model-View-Controller.

Цитата(source777 @  18.6.2012,  00:22 Найти цитируемый пост)
Да и вся последующая статья про базы данных и SQL. Судя по всему имеет место просто неудачная правка определения, изначально там было 

По мне - как-раз твое определение ошибочно. И считаю, что его правильно поправили. Данные - это не всегда база (и даже не 99%), а ORM - это обертка над данными (точнее, конвертер).

Цитата(source777 @  18.6.2012,  00:22 Найти цитируемый пост)
Да, я считаю, что это не ORM. И де-факто отрасль так считает.. посмотреть хоть списки популярных ORM реализаций.. все работают с реляционными базами данных.

Снова ты за свое )))). Т.е., если я найду реализацию ORM над cron - смысл ORM сразу поменяется? Или ты просто скажешь, что это исключение? Популярные реализации работают над популярными решениями. Твоя фраза напоминает "популярные сайты сделаны на php - значит лучший в мире язык - php" ;).
Ок, предположим (только предположим, т.к. потом разобьем миф ;)), что ты прав и orm работает только на базах. Значит схема, в которой ORM работает поверх враппера над базой - уже не ORM? А ORM в php вообще не может существовать, т.к. работает не с базой, а с драйверами, которые работают с базой... Причем, в данном случае, можно считать, что драйвер - тот же curl, который соединяется с базой и запрашивает что-то у нее, передавая команды. В чем отличие? А если база удаленная, да еще за балансером? Вывод - ORM не существует? ))))))

Цитата(source777 @  18.6.2012,  00:22 Найти цитируемый пост)
Почему LINQ to XML не считается реализацией ORM по мнению той же википедии, на которую ты ссылался?

Если бы я знал что это такое - может и ответил бы. Но на-вскидку - причина простая. В LINQ to XML работа идет не с данными, а с оберткой, поэтому и нельзя назвать ORM. Классический пример ORM:
Код

track = new Track;
track.id = 1;
track.genre = "Rap";
track.time = "3:24";


А вот LINQ to XML:
Код

XElement track = new XElement("track");
track.Add(new XAttribute("id", 1));
track.Add(new XAttribute("genre", "Rap"));
track.Add(new XAttribute("time", "3:24"));


Как видишь - работа идет не с данными ;)

Цитата(source777 @  18.6.2012,  00:22 Найти цитируемый пост)
Ну да ладно, возможно в твоих моделях не будет связей с другими моделями, тогда действительно будет не совсем ORM, а чёрти что и с боку бантик.

В моделях - не будет. В запросах - есть иногда ). И это точно не ORM.

Цитата(source777 @  18.6.2012,  00:22 Найти цитируемый пост)
Но в этом случае в целом слоя предметной области как такового не будет.  

О как... Мы снова возвращаемся к толстым/тонким моделям. И да, бизнес-логика у меня в контроллерах.

P.S.: посмотрел список популярных ORM - улыбнулся. Есть CodeIgniter (в котором отродясь не было нормального ORM), но нету Kohana... А вообще, я согласен со следующим определением:
Цитата
Суть проблемы, которая решается с помощью ORM-слоя, заключается в необходимости преобразования объектных структур в памяти приложения в форму, удобную для сохранения в реляционных базах данных (и не только), а также для решения обратной задачи — развертывания реляционной модели в объектную, с сохранением свойств объектов и отношений между ними.

Этой фразе уже больше 4-х лет ;)

Это сообщение отредактировал(а) aktuba - 18.6.2012, 00:57


--------------------
user posted image
PM MAIL WWW Skype   Вверх
source777
Дата 19.6.2012, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(aktuba @  18.6.2012,  00:56 Найти цитируемый пост)
Да какая разница, какие модели и контроллеры?

Принципиальная  smile 
Наличие 3 концептуальных сущностей - это ещё не паттерн, а то так можно докатиться до признания набора чашка+блюдце+ложка системой, построенной по паттерну MVC. 
Самое важное какие роли эти сущности выполняют и как друг с другом комуницируют. Меняешь роль хотя бы одной сущности - получаешь принципиально другой паттерн.

Цитата(aktuba @  18.6.2012,  00:56 Найти цитируемый пост)
P.S.: посмотрел список популярных ORM - улыбнулся. Есть CodeIgniter (в котором отродясь не было нормального ORM), но нету Kohana...

Ну так это ты считаешь, что написанное в википедии неоспоримо. На мой взгляд, то же определение ORM, которое там есть в данный момент, - это бред. А список ORM, местами усугубляя бредовость, доказывает несогласованность определения с остальной информацией в википедии на эту тему.

Цитата(aktuba @  18.6.2012,  00:56 Найти цитируемый пост)
 Значит схема, в которой ORM работает поверх враппера над базой - уже не ORM? 

Не значит. База - это источник данных, способ их получения не имеет никакого значения.

Цитата(aktuba @  18.6.2012,  00:56 Найти цитируемый пост)
Как видишь - работа идет не с данными ;)

Да нет, работа идёт с данными, но с иерархическими(что лишь обуславливает небольшие синтаксические особенности), а не с реляционными. Т.е. логика тут проста до безобразия - раз работа идёт не с реляционной моделью данных, то это по определению не ORM. Теоретически можно построить реляционную модель данных на чём угодно, хоть на ini-файлах, но это не более, чем извращение, поэтому и непонятно почему ты так ратуешь за признание извращений достойной заменой реляционных СУБД.

Цитата

Суть проблемы, которая решается с помощью ORM-слоя, заключается в необходимости преобразования объектных структур в памяти приложения в форму, удобную для сохранения в реляционных базах данных (и не только), а также для решения обратной задачи — развертывания реляционной модели в объектную, с сохранением свойств объектов и отношений между ними.

Ну с этим утверждением я тоже согласен. В нём достаточно ясно указано, что реляционная модель данных - это такая же необходимая часть любого ORM, как и объектная модель. Ну а о том, что в теории РМД бывает не только в СУБД я написал выше, но это только в теории. Когда напишешь или найдёшь production-ready хранилище, поддерживающее РМД, но не являющееся СУБД, кинь ссылку мне в PM. Подивлюсь на это чудо в перьях.

На радостях, что мы нашли хотя бы одно утверждение на тему ORM, с которым оба согласны, закрываю нашу флудильню, как окончательно отошедшую от общих вопросов по Ruby.


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


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

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

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


 




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


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

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