|
|
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
defecatorАфалинаПолучается, что зесь практически никто не использовал в своих Delphi-проектах ORM-фреймворки? Зачем ? Спасибо, я вас поняла. Может, кто-то другой использовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 15:30:01 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаВ качестве СУБД хранения наверное, выберу FireBird 2.1.Не круто. Начинайте уже на 1.0 или хотя б 1.5, раз мертвячину любите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 16:03:31 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаПолучается, что зесь практически никто не использовал в своих Delphi-проектах ORM-фреймворки?Готовое редко используют. Свои пишут. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 16:05:26 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
YuRockАфалинаВ качестве СУБД хранения наверное, выберу FireBird 2.1.Не круто. Начинайте уже на 1.0 или хотя б 1.5, раз мертвячину любите. Как раз "круто". :) Есть серьезные причины, никак не связанные с данной темой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 16:19:44 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаЕсть серьезные причины, никак не связанные с данной темой.Я и не сомневался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 19:20:43 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Афалина, Мне нравится Laravel. Правда это не Delphi. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 20:05:30 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаJava-разработчики чаще используют ORM. Я бы не рекомендовал равняться на Java-разработчиков в этой части. Такая срань, простите за мой хранцусский, получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 20:23:14 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Причина обычно проста и прозаична. На этом же компе крутится какой-то кривософт, который на новых версиях fb просто не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 20:39:17 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Самый дельфовый ОРМ - DataAbstract от RemObjects. Пользовал, доволен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 20:44:27 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
makhaonПричина обычно проста и прозаична. На этом же компе крутится какой-то кривософт, который на новых версиях fb просто не работает.Ну понятно. А новый, как и отдельный сервер для базы заранее даже не проектируется. Стоит ли начинать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 20:54:31 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
YuRockmakhaonПричина обычно проста и прозаична. На этом же компе крутится какой-то кривософт, который на новых версиях fb просто не работает.Ну понятно. А новый, как и отдельный сервер для базы заранее даже не проектируется. Стоит ли начинать. Дорогие телепаты! :) Если вы хотите знать, как одновременно использовать несколько серверов FireBird - прочтите об этом: http://www.ibase.ru/inst_manual/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 21:13:50 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
БьютиферСамый дельфовый ОРМ - DataAbstract от RemObjects. Пользовал, доволен. Очень инетересно. Расскажите, пожалуйста (насколько это возможно) - для какой прикладной области решалась задача, какие планировались нагрузки и объемы данных. Ну и вообще - как все шло и чем все закончилось. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 21:15:46 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаЕсли вы хотите знать, как одновременно использовать несколько серверов FireBirdНу тогда причина начинать новый проект на мертвой версии СУБД - действительно серьезная. На спор на много денег, например) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 22:02:18 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Просто скажите что вам не интересно изучать SQL но хочется работать с БД. Используя орм вы заранее отказываетесь от плюшек БД. Каких-то специальных конструкций и т.п. К примеру преславутый entity framework для .Net не умеет использовать рекурсивные cte в mssql. И тогда начинается солянка, часть в функциях, часть в хп, часть в клиентском коде. Может в каком нибудь проекте уровня "Мне тут программка надо накладные считать", сказал Вася Иванов владелец ларька и у него из БД только Access и тот ломаный, может и покатит. Тем более если другой владелец ларька Петя Петров имеет только Excel, такой же ломаный, тоже хочет такую программку. Я бы сказал, что в Delphi ORM не распространены. Большинство толковых разработчков Delphi хорошо владеют SQL чтобы писать быстрые запросы. Наши разработчики использующие C/AL и .Net (в обоих свои ОРМ) понятия не имеют как работает MSSQL и постоянно у них в воздухе висит вопрос, а почему на 3-ех терабайтной БД все тупит и тормозит и иногда возникают неожиданные артефакты в данных (непонимание изолированности транзакций) и то, что с данными в SQL надо работать как с множеством, и не итеративно. Там действует совершенно другая алгебра. В то время как службы написанные Delphi разработчиками работают уже лет 5 и никто не вспоминает про них, хотя они также активно работают с БД. Но если вы твердо уверенны в использовании какой-нибудь ОРМ в своем проекте, то посмотрите в сторону DevArt. У них сильные компоненты работы с БД. Я думаю и EntityDAC тоже будет хороша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 22:39:06 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Как везде, советы дают те, кто никогда не использовал. ... Спасибо всем. Хороших выходных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 23:52:13 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаКак везде, советы дают те, кто никогда не использовал. к примеру. Bold for Delphi - появился еще в Delphi 7, поставлялся в комплекте Delphi 7 Architect, но в России популярности так и не снискал. Борланд заявлял о сотне тысяч использующих этот ORM. Потом, Bold перекочевал в какой-то другой ORM, который был сделан в Delphi 2005, но базировался он в основном на .Net. Я уже забыл, как эта хрень называлась, но помню что были видео, как 14-летняя девочка писала приложения на этой системе простым мышетыканьем. Однако, оказалось, что для многопользовательских систем это все не годится. Только для однопользовательских. В 2007 году Borland понял, что этот ORM не имеет популярности, и .Net тоже говно, и вообще забил на .Net болт (включая ORM). В результате, с ORM в поставке Delphi было покончено. С тех пор ORM для Дельфи пишут только энтузиасты, и в основном пишут для себя (для своих решений). Попытки распространять такие решения, увы, проваливаются еще с начала 2000. Никому эти "чужие" ORM нафиг не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 00:10:50 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
добавлю, что ORM до сих пор имеют популярность, но сфера их применения достаточно мутная, и статистики как таковой нет (я не видел). Как правило, ORM генерирует весьма универсальные запросы к СУБД, в результате чего получается полное дерьмо, т.к. "универсального оптимизатора" не существует, и запросы нужно дотачивать для конкретной СУБД. Классическим примером является Hibernate. В итоге. Либо люди используют какой-то внешний ORM, и мучаются, или используют собственный ORM, который кроме них нафиг никому не нужен. Вот такая беда с ORM. В частности http://use-the-index-luke.com/blog/2013-04/the-two-top-performance-problems-caused-by-ORM-tools и многое другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 00:17:24 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
kdv, Простой пример: большая система. поменяли структуру базы. Вопрос: как узнать, что все запросы остались рабочими без ОРМ? Ответ без ОРМ: ??? Ответ с ОРМ: проект достаточно просто перекомпилировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 00:50:36 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Бьютиферkdv, Простой пример: большая система. поменяли структуру базы. Вопрос: как узнать, что все запросы остались рабочими без ОРМ? Ответ без ОРМ: ??? Ответ с ОРМ: проект достаточно просто перекомпилировать. Вернее, с ОРМ - проект просто достаточно попытаться перекомпилировать. Ну, по крайней мере, станет понятно, где изменилась структура. Это да. ... А без ОРМ - либо с помощью запуска набора тестов (ну мы же тесты все время пишем, по ходу расширения системы, да?) :) Либо с помощью разных приемов, которых у каждого разработчика/руководителя проекта со временем набирается достаточно, чтобы выжить, обычно эти приемы просты, утомительны и всем известны. Вообще, маленькие модификации вписываются обычно хорошо, а большие не вписываются нигде. И просто сообщениями об ошибках в компайл-тайме вы не обойдетесь, главная проблема - в логике. А тут ни "классические" приложения, ни ОРМ-базед не спасают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 01:01:32 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Бьютиферkdv, Простой пример: большая система. поменяли структуру базы. Вопрос: как узнать, что все запросы остались рабочими без ОРМ? Ответ без ОРМ: ??? Ответ с ОРМ: проект достаточно просто перекомпилировать. Вы что-то путаете.Если меняют структуру БД, то в этом случае надо заново перемапливать объекты, а где гарантия что отношение объектов останется прежним или орм построит верные запросы. Если вы про замену БД, то это надуманная проблема. Ни разу не видел, чтобы вбуханные миллионы в сервера, ПО, так легко меняли к примеру с mssql на oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 01:04:38 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
X-CiteБьютиферkdv, Простой пример: большая система. поменяли структуру базы. Вопрос: как узнать, что все запросы остались рабочими без ОРМ? Ответ без ОРМ: ??? Ответ с ОРМ: проект достаточно просто перекомпилировать. Вы что-то путаете.Если меняют структуру БД, то в этом случае надо заново перемапливать объекты, а где гарантия что отношение объектов останется прежним или орм построит верные запросы. Если вы про замену БД, то это надуманная проблема. Ни разу не видел, чтобы вбуханные миллионы в сервера, ПО, так легко меняли к примеру с mssql на oracle. Имхо, речь - об изменении объектной бизнес - модели. На основе измененной бизнес-модели ОРМ генерирует DDL - скрипт, модифицирующий структуру базы. Именно в таком порядке. Хотя, слышал, что есть ORM "наоборот" - генерирует объектную модель на основе структуры базы. Но речь, имхо, не о реверс-генерации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 01:11:31 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Товарищ старшинаX-Citeпропущено... Вы что-то путаете.Если меняют структуру БД, то в этом случае надо заново перемапливать объекты, а где гарантия что отношение объектов останется прежним или орм построит верные запросы. Если вы про замену БД, то это надуманная проблема. Ни разу не видел, чтобы вбуханные миллионы в сервера, ПО, так легко меняли к примеру с mssql на oracle. Имхо, речь - об изменении объектной бизнес - модели. На основе измененной бизнес-модели ОРМ генерирует DDL - скрипт, модифицирующий структуру базы. Именно в таком порядке. Хотя, слышал, что есть ORM "наоборот" - генерирует объектную модель на основе структуры базы. Но речь, имхо, не о реверс-генерации. Если речь о БД только как о хранилище данных, то да, конечно, орм как нельзя кстати подходит: написал, сдал, забыл. Вот только использовать бд уровня mssql или oracle как хранилища, не используя их возможности. это кощунство. P.S. моя сфера БД исключительно промышленного уровня и мне тяжело мыслить на уровне приложений для домашних настолок. Возможно там использование орм окупит затраты на поддержку. потому что применять не осознанные DDL скрипты, где только одна таблица может весить 200 Гб печально. Один из примеров моей практики, ребята из .Net команды запустили некое обновление БД (тестовое) переводящее ее из состояния А в Б. При этом сделали это через ORM, т.к. их знаний SQL хватало только на select from. На все ушло около 2 часов. update delete alter и т.п. Проблема стала в том, что окно на обновление исключительно не более 15 минут. После чего, я потратив 30 минут на изучение что надо изменить и получить, написал за 10 минут скрипт, который перевел БД из состояния А в Б за 1 минуту. Теория множеств победила Теорию итераций. Беда в том, что современные кодеры, совершенно не понимают как работает это там внутри. Одно время я даже пробовал сам написать ормку заточенную под mssql, но когда дошел до оконных функций с кадрированием - сдался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 01:47:42 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Товарищ старшинаИмхо, речь - об изменении объектной бизнес - модели. На основе измененной бизнес-модели ОРМ генерирует DDL - скрипт, модифицирующий структуру базы. Именно в таком порядке. Хотя, слышал, что есть ORM "наоборот" - генерирует объектную модель на основе структуры базы. Но речь, имхо, не о реверс-генерации.ОРМ работает в обе стороны: Code First и Database First. В обоих случаях обновление бизнес-модели происходит либо: 1. Правятся классы в приложении - генерируется DDL на изменение БД. 2. Правятся таблицы БД - объектная модель пересоздается по клику мышки автоматом. ОРМ дает качественный CRUD код и легко обновляется при изменении бизнес-модели. Если нужно замутить вещи посложнее, то тут мужно менять подход. Вместо написания 4-х метровых sql-ей нужно сделать декомпозицию и заменить один монолит на несколько более мелких операторов и в коде их соединить. Так даже понятнее читается, чем портянка на 4-метра и для серввера БД, кстате тоже. Ну или на крайний случай замапить ОРМ на серверную вьюшку или процедуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 02:03:26 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
X-CiteОдин из примеров моей практики, ребята из .Net команды запустили некое обновление БД (тестовое) переводящее ее из состояния А в Б. При этом сделали это через ORM, т.к. их знаний SQL хватало только на select from. На все ушло около 2 часов. update delete alter и т.п. Проблема стала в том, что окно на обновление исключительно не более 15 минут. После чего, я потратив 30 минут на изучение что надо изменить и получить, написал за 10 минут скрипт, который перевел БД из состояния А в Б за 1 минуту. Теория множеств победила Теорию итераций.Ясен пончик код миграции ОРМ нужно проверять глазами и править если нужно. Только в этом случае код будет на языке приложения, а не DDL. Сначало непривычно так делать после десятилетий пользования SQL, но потом осознаешь, что вроде оно так и надо. ПС. Некоторые до сих пор и на гитаре играют без нот. Так даже лучше )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 02:24:24 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
чччДА без ОРМ - либо с помощью запуска набора тестов (ну мы же тесты все время пишем, по ходу расширения системы, да?) :) Либо с помощью разных приемов, которых у каждого разработчика/руководителя проекта со временем набирается достаточно, чтобы выжить, обычно эти приемы просты, утомительны и всем известны.от же-ж жжет напалмом. уважаю. какие приемы? кому известны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 06:03:03 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39421689&tid=2042281]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 334ms |

| 0 / 0 |
