metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-08-19 03:44 pm

SQL

SQL — высокоуровневый декларативный специализированный язык четвёртого поколения, в отличие от того же Java или C#, по-прежнему относящихся к третьему поколению языков императивных. Единственный оператор SQL на три десятка строк, выполняющий нечто посложнее выборки по ключу, потребует для достижения того же результата в разы, если не на порядок, больше строк на C#.
http://habrahabr.ru/company/piter/blog/165327/

А кто не согласен - того мы скормим крокодилам.

[identity profile] bydlorus.livejournal.com 2013-08-19 12:51 pm (UTC)(link)
В C# есть свой декларативный Linq, есличо.

Дочитал, короче основная претензия что свой Linq медленнее, чем ручной SQL. Так никто не запрещает писать ручной SQL, nhibernate его отлично мапит. А учитывая premature optimization и бдыщь-и-в-продакшн, нафиг кому надо писать ручной sql.
Edited 2013-08-19 13:20 (UTC)

[identity profile] w00dy.livejournal.com 2013-08-19 01:39 pm (UTC)(link)
написал ручной sql, поменял схему, а потом бдыщь - и ничего в продакшене не работает.

[identity profile] veremeenko-alex.livejournal.com 2013-08-19 01:44 pm (UTC)(link)
Хочешь устроить для команды геморрой:
1. Переименуй столбец
2. Поменяй тип столбца
3. Вкомитай и иди домой, все же коммпилится.

[identity profile] w00dy.livejournal.com 2013-08-19 01:46 pm (UTC)(link)
переименование не так страшно. mssql и pgsql на эту тему внятно ругаются. А вот изменить тип - это да, знатный тролинг.

[identity profile] tzirechnoy.livejournal.com 2013-08-19 03:46 pm (UTC)(link)
То ли дело ORM: ничего не работает с самого начала. Можно сказать, избавляемся от множэства лишних телодвижэний -- там, схему менять, бдыщь опять жэ.

[identity profile] w00dy.livejournal.com 2013-08-19 03:52 pm (UTC)(link)
А можно конкретно что не работает? А то я много лет пользую linq2sql и у меня всё работает. Голый sql по нужде использоваться только один раз 3 года назад, ибо там было performance critical место.

[identity profile] tzirechnoy.livejournal.com 2013-08-19 04:26 pm (UTC)(link)
Ну, у кого-то и дэльфёвый MVC-style database engine что-то делает. Смысла только в нём 0.

[identity profile] zelanton.livejournal.com 2013-08-19 01:42 pm (UTC)(link)
по ссылке "не только медленнее, но и менее выразительно, соотв. менее читабельно".

[identity profile] w00dy.livejournal.com 2013-08-19 01:44 pm (UTC)(link)
а то что он проверяется в compile time никого не волнует?

[identity profile] metaclass.livejournal.com 2013-08-19 01:50 pm (UTC)(link)
Нихуя он не проверяется. Зайдут крокодилы в базу, alter table сделают и пиздец всему.

[identity profile] w00dy.livejournal.com 2013-08-19 01:51 pm (UTC)(link)
Не пускайте крокодилов в базу. Запускайте sqlmetal в pre-build. Можно ещё чего-то придумать.

[identity profile] metaclass.livejournal.com 2013-08-19 01:52 pm (UTC)(link)
Так оне в продакшене поменяют. В одном из 500.

[identity profile] w00dy.livejournal.com 2013-08-19 01:58 pm (UTC)(link)
ну я не знаю ребе. У нас есть ответственные за клиента. Есть протоколы доступа. Есть исполнители. Если кто-то из наших накосячит, дадут по ушам. Если кто-то из клиентских без согласования с нами - сейлзы выкатывают доп.счёт на доп.услуги, потому что исправлять то нам приходится.

[identity profile] veremeenko-alex.livejournal.com 2013-08-19 01:54 pm (UTC)(link)
Без периодического sql schema compare никуда!!!

[identity profile] hshhhhh.livejournal.com 2013-08-19 02:09 pm (UTC)(link)
Раз в 10 секунд

[identity profile] bydl0coder.livejournal.com 2013-08-19 06:14 pm (UTC)(link)
Он далеко не все проверяет.

[identity profile] bydlorus.livejournal.com 2013-08-19 02:15 pm (UTC)(link)
Это я игнорировал т.к. субъективно, мнения хардкорных dbmщиков игнорируем