metaclass: (Default)
[personal profile] metaclass
http://tonsky.livejournal.com/275048.html

Если обработаться на жабе и дотнете, то записи в таблицах БД действительно начинают казаться объектами, только заколдованными злыми DBA по чернокнижию дейта и кодда. И нужно использовать специальные магические зелья в виде ORM чтобы объекты расколдовать.

А если работать в основном с СУБД и понимать, что "базе-то не объекты, в базе именно что отношения." то внезапно оказывается, что объекты-то не так часто и нужны, а иногда и вообще вредны.

Оно конечно выглядит просто - "взял из ORM объект, показал в форме, по нажатию ОК отдал его ORM на сохранение". Но подобные решения намертво увязывают структуру БД, результаты запросов и типы объектов в программе. И вынуждают использовать в БД только структуры данных, которые хорошо в такое укладываются.

Date: 2013-04-05 11:18 am (UTC)
From: [identity profile] volodymir-k.livejournal.com
хочется поговорить предметно и детально, но вы ж не оцените, завтра всё забудете и будете снова "ой ОРМ плохой, гадкий"
жанр "срачей" это бессмысленная трата времени жизни, и удовольствия интеллектуального никакого

если коротко, можно ответить так: "не нравится ОРМ -- не используй"

по делу, могу намекнуть идею: данные внутри БД и внутри клиента располагаются и обрабатываются по-разному в ЛЮБОМ случае
чем случай с ОРМ хуже непонятно каких альтернатив в непонятно каких случаях -- вам стоило бы сесть и глядя в зеркало самому себе в глаза написать эссе


Кстати за индусов белорусы зря переживают -- у них в полный рост сейчас идут курсы и скалы, и хаскеля, и R

Date: 2013-04-05 11:57 am (UTC)
From: [identity profile] bydlorus.livejournal.com
Пропал хаскель...

Date: 2013-04-05 01:59 pm (UTC)
From: [identity profile] thesz.livejournal.com
За Хаскель я спокоен. Пропали индусы.

Date: 2013-04-05 12:44 pm (UTC)
From: [identity profile] sergiej.livejournal.com
В основном народу не нравится что надо писать get... у многих просто святая война против геттеров и сеттеров. Потом мне показывают "свою разработку без ORM" где данные из таблиц загружаются в мапы. На мой вопрос, с каких пор это уже не объект, ответ "потому что".

Date: 2013-04-05 05:08 pm (UTC)
From: [identity profile] glorphindale.livejournal.com
В народ десять лет вдалбливали, что надо писать геттеры и сеттеры. Вот маятник в другую сторону и качнулся.

Date: 2013-04-05 05:28 pm (UTC)
From: [identity profile] volodymir-k.livejournal.com
да-да,
String userId = p.getUserId();
Number amount = p.getAmount();
p.setCode(PAID_CODE);

это ужас-ужас, а правильно

String userId = (String) p.get("UserId");
Number amount = (Number) p.get("Amount");
p.set("Code", PAID_CODE);

это ж совсем другое дело, никаких get/set... o wait...

Date: 2013-04-06 02:42 am (UTC)
From: [identity profile] glorphindale.livejournal.com
Если мы моделируем сущность без поведения и у нас статическая типизация, то нам достаточно структуры с прямым доступом к полям.
Если у нас динамическая типизация - касты лишние.

Плюс к тому, надо помнить, что 99.99% геттеров и сеттеров навсегда остаются тривиальными.

Date: 2013-04-05 05:32 pm (UTC)
From: [identity profile] volodymir-k.livejournal.com
ваще агитаторов "за жизнь без ОРМ" стоило бы на полгода направлять на проект пользоваться ODBC API
желательно на GCC под линуксом с Ораклом

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 28th, 2025 01:21 am
Powered by Dreamwidth Studios