metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-06-29 06:21 pm

Обучение частным случаям частных реализаций

http://d4s.livejournal.com/210142.html
Вопрос про обучение SQL. Не про продажу человеко-часов конкретному кастомеру с конкретной СУБД.
В комментариях ад содома и гоморры, с приведением каких-то дичайших конструкций из частных реализаций.

Людей нужно хотя бы обучить тому, что такое реляционная модель, что такое индексы и как вообще связаны эти буковки с результатом. А уж конкретные извращения можно изучить в процессе работы с конкретной БД, очевидно, что засирать этим голову ДО понимания базовых вещей совершенно не нужно.

[identity profile] dr-hyder.livejournal.com 2012-06-29 08:41 pm (UTC)(link)
Мускль скейлить упаришься, а nosql решения легко, that's the point. То есть win-win такой, отказались от реляционности, асид послали в жопу и оказалось что скейлится всё куда проще(не то чтобы неожиданно оказалось, это я так шучу). Конечно и подход к сложным запросам пришлось поменять, никаких тебе волшебных group by, надо ручками map-reduce делать. Я вообще обожаю эту тему страшно, что SQL люблю, что nosql :)

[identity profile] bydl0coder.livejournal.com 2012-06-29 08:48 pm (UTC)(link)
Да в чем эта теория состоит? Сколько лет пишу SQL-запросы, а теории так и не знаю.

[identity profile] tzirechnoy.livejournal.com 2012-06-29 08:55 pm (UTC)(link)
>Посмотрите на всё(ну хорошо, не на всё, но
>значительную часть) nosql движение,

Никакого nosql не существует, это buzzword. Потому смотреть на него на весь нет ни малейшэго смысла.
А так -- чего там только нет. И пристойная древовидной база с поиском, и недореляцыонки от дебилов, которые двух слов связать не могут, и вообще не базы, а кэшырущие прокси какие-то. В общем, увидеть там можно практически что угодно, и в этом смысле смотреть в ту сторону вполне безсмысленно.

[identity profile] tzirechnoy.livejournal.com 2012-06-29 08:57 pm (UTC)(link)
+1

[identity profile] tzirechnoy.livejournal.com 2012-06-29 09:00 pm (UTC)(link)
Хм. Если что-то одновременно не нашли при рефакторинге и не покрыли юнит-тэстами -- то оно вылезет при боевом тэстировании. Но... У меня обычно всё находится ри рефакторинге. И я знаю что надо делать, если юнит-тэсты покрывают недостаточно функцыональности.
А вот что будут делать любители не-хаскелль компилятора когда он молча проглотит бывшый правильным тайпкастинг -- вот это мне интересно.

[identity profile] dr-hyder.livejournal.com 2012-06-29 09:04 pm (UTC)(link)
Экий вы резкий!

[identity profile] henu3detb.livejournal.com 2012-06-29 09:19 pm (UTC)(link)
Чаво? Какой ОРМ ругается на этапе компиляции?

[identity profile] w00dy.livejournal.com 2012-06-29 10:12 pm (UTC)(link)
мапинг в орме то руцями пишется (или чем-то генерируется). Не?

[identity profile] falcrum.livejournal.com 2012-06-30 04:19 am (UTC)(link)
Оно ж в кавычках неспроста: речь о "сначала, пусть и в голове, составить алгоритм, а уж потом начинать кодировать". А эти - валят некий код, а потом резко выясняется, что тот работает не всегда - если вообще работает корректно. Без шуток - пишется нечто, выдающее правдоподобный ответ, без понимая сути.

[identity profile] jakobz.livejournal.com 2012-06-30 09:26 am (UTC)(link)
Проблема в том, что минимум половина юзает SQL не как оно задумывалось, а пытается из этой сволочи выжать себе тупые и быстрые persistent хеши, по ходу забарывая оптимизатор. На ACID кладется болт вообще в момент создания базы.

Многие такие пацаны даже знают что какой-нибудь noSQL им покатит, но там либо ссыкотно, либо влом, либо заказчик - банк.

Короче DBA - это в основном борцы с проблемами, которые приносит ненужный дополнительный слой. Если юзать SQL-базу чисто как оно там по реляционной теории, то DBA нахрен не нужен - там и юнга справится.

[identity profile] henu3detb.livejournal.com 2012-06-30 09:27 am (UTC)(link)
Чем пишется?
Компилятор может только откомпилировать. Проверить что схема и маппинги совпадают можно в лучшем случае при старте, если фреймворк это сделает. Как правило о проблемах маппинга узнают в рантайме.
На самом деле, если брать хибернейт в частности, то некорректный маппинг это одна сотая часть проблем с ним. Остальные проблемы с которыми сталкиваешься можно найти на форуме. Вот статистика оттуда: Topics: 61805, Posts: 190164.

[identity profile] eternal-leave.livejournal.com 2012-06-30 09:59 am (UTC)(link)
О как, значит, я ошибся. Один хрен второе предложение становится лишь чуточку дальше от истины :)

(Anonymous) 2012-06-30 08:07 pm (UTC)(link)
Вы не поверите. Я тут попал в МТС и ребята на слово ОРМ спрашивают что это такое. Кстати ребята сами по себе неплохие.

(Anonymous) 2012-06-30 08:10 pm (UTC)(link)
Вы не поверите. Я тут попал в МТС и ребята на слово ОРМ спрашивают что это такое. Кстати ребята сами по себе неплохие.

select(from=stock_company).left_join(key=company_key).in(top.max(id),where=stock_cycle)

(Anonymous) 2012-06-30 08:47 pm (UTC)(link)
Ничего они про NoSQL не знают.

Блин да у них в привычке высосать select в .NET хэш и работать с ним. Я когда это вижу падаю в обморок. Откуда они знают, что в справочнике подразделений не может быть 5 миллиардов строк? У нас нет столько подразделеинй? Сегодня или когда или база поехала...

[identity profile] http://users.livejournal.com/_windwalker_/ 2012-06-30 09:59 pm (UTC)(link)
юнит тесты не могут спасать от разницы между базой данных и маппингом.

это может быть оформлено как unit-test, но будет являться чем-то большим.

[identity profile] http://users.livejournal.com/_windwalker_/ 2012-06-30 10:26 pm (UTC)(link)
говорит специалист в пхп

[identity profile] http://users.livejournal.com/_windwalker_/ 2012-06-30 10:29 pm (UTC)(link)
Как девстенница ?

[identity profile] theiced.livejournal.com 2012-07-01 12:19 am (UTC)(link)
реляционные понятия не нужны в 99.99999% случаев. те пидорюги который городят неныжный сикль там где он соответсвенно не нужен (а не нужен он - см. выше %) должны сдохнуть от диареи сожрав собственное говно.

[identity profile] metaclass.livejournal.com 2012-07-01 12:28 am (UTC)(link)
Я не знаю, как белорусскую налоговую отчетность делать на мап-редьюс и eventual consistency.
Вернее знаю, но это какой-то закат солнца вручную, откровенный.

[identity profile] theiced.livejournal.com 2012-07-01 08:54 am (UTC)(link)
логика не должна быть в базе. база - тупой сторэж который может сделать select * from foo where bar=baz и ничего более.

[identity profile] metaclass.livejournal.com 2012-07-01 09:10 am (UTC)(link)
Нет.
Объясняю почему: у тебя лежит 50 гигабайт проводок, тебе нужны итоги по ним.
Ничто, кроме select chervie, sum(total) from .. group by chervie это не вытянет с достаточной производительностью. Если суммировать на аппсервере - оно только фетчить-маршалить-десериализовать будет годами.

[identity profile] theiced.livejournal.com 2012-07-01 09:13 am (UTC)(link)
это исключение нужное очень редко. ну и любой орм это умеет автоматом энивэй.

[identity profile] w00dy.livejournal.com 2012-07-01 09:39 am (UTC)(link)
Ну ребе, любой вменяемый орм позволяет дёрнуть sql напрямую, если сильно нужно конечно.

[identity profile] si14.livejournal.com 2012-07-01 09:40 am (UTC)(link)
Нихера не работает. Не знаю ни одной приличной конторы, включая нашу, где использовался бы MongoDB и на него не ругались бы матом. Это пиздец чистейшей воды, прокатывает разве что для прототипа или для чего-нибудь, где мало кода и у базы один клиент. Как только в эту базу начинает ходить больше одного куска кода — можно закапывать, отсутствие схемы — постоянная проблема. «Ой, мы опечатались и записали вместо creation_time cretaion_time, тесты прошли, но почему-то на половине записей всё отваливается».

Page 3 of 4