metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-02-06 02:33 pm
Entry tags:

Функциональщина в бухгалтерии

Самоочевидно ли то, что с помощью filter/map/fold можно реализовать бухгалтерскую отчетность более простым и очевидным образом, чем с помощью select .. where .. group by?

Нет, наверно я хотел задать не этот вопрос. Правильный вопрос: сколько в час денег попросит человек, способный за неделю-две разобраться в вышеописанном вопросе?

[identity profile] plumqqz.livejournal.com 2013-02-06 12:44 pm (UTC)(link)
Алгебраические типы данных
Ну то есть записи, если по-простому.

+Вектора(массивы)
Ага, массивы - это, оказывается, теперь что-то новое и неизведанное.

[identity profile] metaclass.livejournal.com 2013-02-06 12:47 pm (UTC)(link)
>Ну то есть записи, если по-простому.
Это не записи. Записи - декартово произведение, вариантные(АТД) - сумма.

Про массивы - не во всех СУБД они есть в виде пригодных для использования типов.

[identity profile] plumqqz.livejournal.com 2013-02-06 12:50 pm (UTC)(link)
Это не записи. Записи - декартово произведение
Стало быть, когда я пишу struct thestruct{ int i; char *ptr} - это у меня получается декартово произведение?

Про массивы - не во всех СУБД они есть в виде пригодных для использования типов.
И, что характерно - даже там, где они есть, лучше от их использования воздерживаться.

[identity profile] metaclass.livejournal.com 2013-02-06 01:00 pm (UTC)(link)
Да, декартово произведение - значением этой структуры является декартово произведение множеств допустимых значений отдельных полей.

[identity profile] plumqqz.livejournal.com 2013-02-06 01:04 pm (UTC)(link)
Поистине удивительно, до чего серьезные проблемы удается так ловко решать.

[identity profile] volodymir-k.livejournal.com 2013-02-06 01:06 pm (UTC)(link)
Вообще-то эта идея -- начала реляционной теории, есть учебник БГУ 1986 что ли года, у нас был одним из 5 рекомендованных книг по курсу программирования и СУБД.

То есть вопрос такой: сколько денег в час попросит студент, который даже осилил прочитать учебники?
Зависит от его опыта, конечно, и ситуации. Найти учебник, найти там главу, почитать... можно в интернете поискать наверное.

[identity profile] volodymir-k.livejournal.com 2013-02-06 01:07 pm (UTC)(link)
Потрафить самовосхвалению, мол какой я умный -- основываясь на искажённой картине модности трендов.

[identity profile] avnik.livejournal.com 2013-02-06 01:11 pm (UTC)(link)
да == "типы есть"
А если и нет, то можно написать, один раз.

Кто-то ([livejournal.com profile] sorhed?) рассказывал как биржевой софт писали на хаскеле именно по этой причине, он гарантировал несмешение валют, которые формально все decimal но при этом разные.

[identity profile] plumqqz.livejournal.com 2013-02-06 01:12 pm (UTC)(link)
Я не знаю, что там с биржевым софтом, я знаю, что проблемы с неправильных сложенией рублей с долларами весьма редки, а вот с неправильным сложением рублей с рублями сплошь и рядом.

[identity profile] volodymir-k.livejournal.com 2013-02-06 01:13 pm (UTC)(link)
адт -- это варианты (union in C), причём можно комбинировать а структуры данных

такие задачи плохо ложатся в реляционную модель (типа "субъектами договоров могут быть частные лица с паспортом, контакты в скайпе, местные организации с ИНН, госорганы и НКО, а также иностранные предприятия разных стран, в том числе разные офисы ТНК")

да тот же ldap например

в СУБД тогда изобретают разные костыли типа классической object name + { attributes values } с последующей её настройкой по кластерам таблиц

[identity profile] volodymir-k.livejournal.com 2013-02-06 01:15 pm (UTC)(link)
блобы везде есть
где надо, и типы данных

двумерные массивы зверь непростой может быть

[identity profile] plumqqz.livejournal.com 2013-02-06 01:16 pm (UTC)(link)
такие задачи плохо ложатся в реляционную модель

Это почему это они плохо ложатся?

[identity profile] metaclass.livejournal.com 2013-02-06 01:21 pm (UTC)(link)
Осилил прочитать, понять и сопоставить с решаемыми задачами. Много попросит :)

[identity profile] sorhed.livejournal.com 2013-02-06 01:35 pm (UTC)(link)
Да, но типизация всё равно помогает.

[identity profile] plumqqz.livejournal.com 2013-02-06 01:36 pm (UTC)(link)
Конечно помогает, если не очень мешает.

[identity profile] ko-bx.livejournal.com 2013-02-06 01:44 pm (UTC)(link)
IxSet вот только жаль, что убог (на моём опыте). Много памяти, не умеет банальный OR делать, ну и так далее. В остальном идея ведь "сделай логику, а мы сами БД докрутим" у AcidState шикарная, и в теории действительно мощнее всяких SQL-баз.

[identity profile] metaclass.livejournal.com 2013-02-06 01:51 pm (UTC)(link)
Более прямые методы решения типичных для предметной области задач.
Избавление от заморочек различных БД с разницей в их процедурных расширениях.
Выселение бизнес-логики из СУБД - поддержка ее там меня огорчает.

[identity profile] demonim.livejournal.com 2013-02-06 01:51 pm (UTC)(link)
Очень интересно, что какой смысл вкладывается в эти два слова "бухгалтерская отчетность"? Тут походу надо так
"Самоочевидно ли то, что с помощью filter/map/fold можно реализовать 'сферического коня в вакууме' более простым и очевидным образом, чем с помощью select .. where .. group by?"

[identity profile] metaclass.livejournal.com 2013-02-06 02:00 pm (UTC)(link)
В общем, кажется мне, что процедурные расширения и вообще логику в СУБД надо держать, когда альтернативы по производительности нет. По всем остальным критериям логика в СУБД это мрак.

[identity profile] demonim.livejournal.com 2013-02-06 02:00 pm (UTC)(link)
какая разница куда выводить, бухгалтерская отчетность, а точнее учет, и до экранов была и после будет :) меня другое интересует, причем тут вообще бухгалтерия :) нельзя что ли написать про астрономию-физику-химию и т.д., о про мат статистику и теорию вероятностей ? :)

[identity profile] kometa-zxc.livejournal.com 2013-02-06 02:00 pm (UTC)(link)
эммм, а ты зачем?

[identity profile] swizard.livejournal.com 2013-02-06 02:02 pm (UTC)(link)
> что-то написал и подумал, что уж это точно проще было загрузить целиком и
> обработать на нормальном языке


Я вот периодически размышляю, что надо-то ровно наоборот: загружать в базу куски кода на нормальном языке вместо запросов.

Эдакий удалённый REPL к машине с данными.

[identity profile] metaclass.livejournal.com 2013-02-06 02:11 pm (UTC)(link)
Я знаю бухгалтерию и цифровую обработку сигналов.
Функциональщина лучше подходит для первого, по причине того, что в бухгалтерии, вместо математики - достаточно абсурдные высосанные из пальца и часто изменяющиеся правила, которые нужно закодировать и поддерживать в работоспособном состоянии.

[identity profile] metaclass.livejournal.com 2013-02-06 02:12 pm (UTC)(link)
Я тоже думаю, но у меня за прикладными задачами времени не хватает это реализовать в пригодном для повторного использования виде.

[identity profile] metaclass.livejournal.com 2013-02-06 02:13 pm (UTC)(link)
Одного меня мало.

Page 3 of 6