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

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

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

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

[identity profile] berezovsky.livejournal.com 2012-06-29 05:03 pm (UTC)(link)
целебный курс реляционной алгебры с жертвоприношениями 12-летних девственниц в храм Бэкуса-Наура

[identity profile] w00dy.livejournal.com 2012-06-29 05:11 pm (UTC)(link)
Я в том смысле как это видится в том же nhibernate. Т.е. схема она в базе, маппинги в коде. Меняем схему, меняем маппинг и компилятор показывает что где сломалось. Если же в коде наличествует sql в больших кол-вах, то получается ад и израиль, ибо нужно теперь и его каким-то образом ослеживать. Конечно от этого спасают хранимки, но результат их работы тоже куда-то нужно мапить (тем же ормом?)

PS кончено же static typing рулит и бибикает :)

[identity profile] dr-hyder.livejournal.com 2012-06-29 05:16 pm (UTC)(link)
Всё то же самое происходит ежели использовать hibernate и писать на hql :) Если писать SQL то такая проблема есть конечно, надо осторожно, плюс тесты должны быть. Если же его не используют а пишут на всяких питонах, то там точно тесты должны быть :)

[identity profile] w00dy.livejournal.com 2012-06-29 05:18 pm (UTC)(link)
hql, если я правильно понимаю, это некий аналог linq из .net?

[identity profile] dr-hyder.livejournal.com 2012-06-29 05:25 pm (UTC)(link)
Нет, не совсем, это такой SQL для хайбернейт, тобишь оперирует он не напрямую над БД, а над уже замаплеными сущностями хайбернейта, есть ещё jpql (http://en.wikipedia.org/wiki/Java_Persistence_Query_Language), то же самое фактически, для JPA.

[identity profile] vp.livejournal.com 2012-06-29 05:42 pm (UTC)(link)
Дык о чем и псто. Теряется первопричина, реляционная теория. Технология вопсринимается сразу с какого-то +n уровня на нее наслоения, это же неправильно. В голове будет гарантированный сор.

[identity profile] falcrum.livejournal.com 2012-06-29 05:59 pm (UTC)(link)
Я уже массово встречаюсь с "программистами", пропустившими мимо себя "этап рисования блок-схем". И это - страшно.

[identity profile] avnik.livejournal.com 2012-06-29 06:06 pm (UTC)(link)

[identity profile] w00dy.livejournal.com 2012-06-29 06:49 pm (UTC)(link)
Ребе, а вам то чего переживать? Будет вам на старости куда икорочку намазать, ибо будете хранителем тайных знаний и вуду-шаманом в одном флаконе.

[identity profile] vp.livejournal.com 2012-06-29 06:56 pm (UTC)(link)
Дык мы ж тут обсуждаем не персоналии, а тщет всего сущего :)

[identity profile] d4s.livejournal.com 2012-06-29 07:50 pm (UTC)(link)
во-первых, и дневников тоже. скорее даже в основном их -- заочников в нагрузку дали :-(
во-вторых, БД в принципе и SQL в частности -- совершенно не моя область знаний и им я не учу и не собираюсь.

как-то так, да.

[identity profile] d4s.livejournal.com 2012-06-29 07:51 pm (UTC)(link)
э-э-э... где можно записаться?

[identity profile] berezovsky.livejournal.com 2012-06-29 08:02 pm (UTC)(link)
в новинках очевидно, там и процiдурки на месте

[identity profile] d4s.livejournal.com 2012-06-29 08:03 pm (UTC)(link)
а, т.е. вы не в теме. жаль.

[identity profile] familom.livejournal.com 2012-06-29 08:09 pm (UTC)(link)
По-моему, там в комментах отличная иллюстрация packing vs mapping из Programmer's Stone.

[identity profile] berezovsky.livejournal.com 2012-06-29 08:13 pm (UTC)(link)
в какой теме? O_O

[identity profile] tzirechnoy.livejournal.com 2012-06-29 08:14 pm (UTC)(link)
От этого спасают юнит-тэсты.

Не, то есть есть варианты там embedded SQL или навесок к lintам всяким, но я предпочитаю полагаться на юнит-тэсты.

[identity profile] dr-hyder.livejournal.com 2012-06-29 08:16 pm (UTC)(link)
Это как раз индусы, судя по всему. У НЕ-индусов как правило есть один-два умнейших человека которые без всякой демократии насаждают своё жёсткое вИдение, а остальные индусы :)

>слой объектной абстракции доступа к реляционной СУБД (ORM/ОРП) в большинстве случаев скрывает не базу данных от приложения, а некомпетентность авторов приложения в области баз данных. Скрывает, разумеется, до поры до времени.

Это надо высекать на камне и ебошить этим камнем любителей ORM, пока SQL не выучат. Проще говоря - это общеизвестно.

[identity profile] tzirechnoy.livejournal.com 2012-06-29 08:19 pm (UTC)(link)
А, то есть Вы тожэ подтверждаете, что работать в рамках реляцыонной модэли через ORM невозможно. Ну да, ну да.

Внимание, вопрос: а нафига нужна реляцыонная база данных, если не работать с реляцыонной модэлью данных?

[identity profile] tzirechnoy.livejournal.com 2012-06-29 08:21 pm (UTC)(link)
А что хорошэго в блок-схемах?

А то я более-менее научился их читать (без особой практической пользы, просто первые детские книги по бейсику...), но в общем очень рад, что судьба позволила избежать такой глупости, как их рисование.

[identity profile] w00dy.livejournal.com 2012-06-29 08:27 pm (UTC)(link)
А если что-то не покрыли тестами. Вот не надёжно это. С компилятором ведь всё просто - либо собралось, либо не собралось, а потом уже сверху тестами полирнуть.

[identity profile] dr-hyder.livejournal.com 2012-06-29 08:31 pm (UTC)(link)
Ну вообще говоря реляционные базы данных очень часто используют просто как storage, все эти реляции им нафиг не упали, только мешают. Посмотрите на всё(ну хорошо, не на всё, но значительную часть) nosql движение, например. Люди наконец осознали что в принципе для их потребностей городить огороды не обязательно, достаточно документа со плавающей схемой на энтити, как в каком нибудь MongoDB и всё, реляционность, транзакции и прочие триггеры там не нужны. И ничо, работает, нормально.

Пытаться же из ORM выжать функциональность SQL, только в "удобном, обьектном" виде - это лучше себе сразу ногу прострелить, не мучица.

[identity profile] dr-hyder.livejournal.com 2012-06-29 08:32 pm (UTC)(link)
Ну привет с другой стороны Ла-манша :)
Edited 2012-06-29 20:33 (UTC)

[identity profile] w00dy.livejournal.com 2012-06-29 08:34 pm (UTC)(link)
Всё можно, если осторожно. Конкретно по запросу - нет контекста в котором он используется. А без контекста делать что-то безсмысленно.

А база нужна потому что на неё объектная модель красиво ложится. Между объектами ведь тоже есть отношения всякого рода и их нужно хранить и уметь выбирать.

[identity profile] w00dy.livejournal.com 2012-06-29 08:36 pm (UTC)(link)
> Люди наконец осознали что в принципе для их потребностей городить огороды не обязательно

А до этого юзали мускль и не жужжали. Видать последник толи изговнился, толи стал толстым.

Page 2 of 4