SQL

Aug. 19th, 2013 03:44 pm
metaclass: (Default)
[personal profile] metaclass
SQL — высокоуровневый декларативный специализированный язык четвёртого поколения, в отличие от того же Java или C#, по-прежнему относящихся к третьему поколению языков императивных. Единственный оператор SQL на три десятка строк, выполняющий нечто посложнее выборки по ключу, потребует для достижения того же результата в разы, если не на порядок, больше строк на C#.
http://habrahabr.ru/company/piter/blog/165327/

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

Date: 2013-08-19 12:46 pm (UTC)
From: [identity profile] falcrum.livejournal.com
Чё-та я не въехал: ты за коммунистов аль за большевиков? :)

Date: 2013-08-19 01:18 pm (UTC)
From: [identity profile] zelanton.livejournal.com
Он проползает между двумя лагерями, стреляет в одну сторону, стреляет в другую. И смотрит как они мочат друг друга. А после добивает выживших и собирает трофеи.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Date: 2013-08-19 01:07 pm (UTC)
From: [identity profile] veremeenko-alex.livejournal.com
С появлением Linq пускай идут лесом со своим SQL.

Date: 2013-08-19 01:41 pm (UTC)
From: [identity profile] w00dy.livejournal.com
зря вы так, три года назад в одном performance critical месте с помощью sql удалось ускорить приложение. Видите какой полезный sql, не то что этот linq от мекрософта.

Date: 2013-08-19 01:46 pm (UTC)
From: [identity profile] veremeenko-alex.livejournal.com
Это как вставка на ассемблере. Можно, только осторожно. И все равно когда-нибудь выстрелит.

Date: 2013-08-19 04:24 pm (UTC)
From: [identity profile] tzirechnoy.livejournal.com
Всяким embedded SQL лет почти столько жэ, сколько самому SQL.

И, во всяком случае, когда я начинал (первая половина 90-х) -- это был вполне себе трэнд.

Не взлетело. И, видимо, невзлетит (есть объективные причины, по которым работать с текстом -- проще).

Date: 2013-08-19 06:17 pm (UTC)
From: [identity profile] bydl0coder.livejournal.com
Как не взлетело-то? Везде ж генераторы SQL.

Date: 2013-08-19 01:14 pm (UTC)
From: [identity profile] nivanych.livejournal.com
> скормим крокодилам

А Крокодилы таких едят?

Date: 2013-08-19 01:22 pm (UTC)
From: [identity profile] zelanton.livejournal.com
XQuery и XPath всё равно круче всех :P

Date: 2013-08-19 01:24 pm (UTC)
From: [identity profile] kiryl.livejournal.com
xml же говно.

Date: 2013-08-19 01:26 pm (UTC)
From: [identity profile] zelanton.livejournal.com
говно. Но круче всех! :)

Набрасывать, так уж набрасывать

Date: 2013-08-19 01:29 pm (UTC)
From: [identity profile] zelanton.livejournal.com
ну и кстати говно говном, а допускает применение внутри того же TSQL и оракла
Не приведи господь макароны конечно
Edited Date: 2013-08-19 01:29 pm (UTC)

Date: 2013-08-19 01:52 pm (UTC)
From: [identity profile] sbj-ss.livejournal.com
xml - какое-никакое решение для хранения структурированных данных в реляционной базе. Но при использовании на всю катушку можно всё чудовищно затормозить.

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

Date: 2013-08-19 03:37 pm (UTC)
From: [identity profile] alexeyk77.livejournal.com
все верно написано. орм не нужен.

Date: 2013-08-19 03:56 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Я в общем-то согласен, но на скале в сквериле те же сиквелы пишутся и компилируются. Думаю, и в сишарпе это можно.

Что не отменяет правильности общей концепции.

Date: 2013-08-19 05:19 pm (UTC)
From: [identity profile] theiced.livejournal.com
Единственный оператор SQL на три десятка строк отправит вас верной дорогой в дурку.

Date: 2013-08-19 06:10 pm (UTC)
From: [identity profile] berezovsky.livejournal.com
бля, прочитал аккаунт гитлер :-(

Date: 2013-08-19 07:55 pm (UTC)
From: [identity profile] gds.livejournal.com
да это ещё и не особо забористый sql. Но для "попугать слабого противника" годится.

Date: 2013-08-20 06:27 am (UTC)
From: [identity profile] vinslivins.livejournal.com
НЕЕЕЕЕЕЕЕЕЕЕТ

Date: 2013-08-20 06:56 am (UTC)
From: [identity profile] veremeenko-alex.livejournal.com
Добавь триггеров для полного счастья.

Date: 2013-08-20 08:20 am (UTC)
From: [identity profile] metaclass.livejournal.com
Они там есть. И хранимки есть. И исполняемый код в UDF. И GTT. И контекстные переменные.

Date: 2013-08-19 06:55 pm (UTC)
From: [identity profile] firebie.livejournal.com
Как тут уже выше заметили, для большинства приложений, где требуется чуть больше CRUD - LINQ хватит выше крыши. А где не хватит - можно будет использовать чистый SQL.
В результате в коде всё строго типизированно, а не жуткая мешанина из SQL. Само собой, что знание SQL никто не отменяет.
А вообще правильная ORM - это lightweight ORM, основная задача которой - статически типизированный мапинг. А вот разные entity management, встроенные в ORM - это зло.
Лучшие lightweight ORM на текущий момент - bltoolkit (linq часть), linq2db.

Date: 2013-08-19 09:07 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Ключевое слово: "нечто"

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 Sep. 23rd, 2025 06:41 pm
Powered by Dreamwidth Studios