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:20 pm (UTC)(link)
А с производительностью все очень просто: первоначальная выборка производится в СУБД, средствами SQL
Ах это...

[identity profile] metaclass.livejournal.com 2013-02-06 12:22 pm (UTC)(link)
Нема дурных фетчить 1005000 проводок, даже если считалка отчетов рядом с СУБД запущена :)

[identity profile] plumqqz.livejournal.com 2013-02-06 12:27 pm (UTC)(link)
Ну да, да - СУБД вам и изоляцию сделает, чтобы все аккуратненько было, и отфильтрует - схеширует, и вот уж тогда поверх наложицо ФП, придавая окончательный шарм всей конструкции.
Особенно сильно ей рады будут невиновные и непричастные. Приходишь - и вместо привычного говоноооп говнофп.
Отличная идея, по-моему.

[identity profile] metaclass.livejournal.com 2013-02-06 12:29 pm (UTC)(link)
Разного рода сложносочиненная постобработка на ФП выглядит гораздо гуманнее, чем на SQL.
Хотя бы потому, что структур данных, доступных там, сильно больше, чем одних реляционных множеств кортежей на все про все.

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

[identity profile] theiced.livejournal.com 2013-02-07 04:10 am (UTC)(link)
потому что ты тупой и боишься остаться без работы

[identity profile] plumqqz.livejournal.com 2013-02-06 12:35 pm (UTC)(link)
Кстати, что-то не припомню я там никаких структур. Множество, список, хеш - ничего выдающегося.

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

[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:13 pm (UTC)(link)
адт -- это варианты (union in C), причём можно комбинировать а структуры данных

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

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

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

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

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

[identity profile] thedeemon.livejournal.com 2013-02-06 06:59 pm (UTC)(link)
потому что произведение в ней есть, а копроизведения нет

[identity profile] plumqqz.livejournal.com 2013-02-07 08:27 am (UTC)(link)
Как вы только еще прямохождению не разучились.

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

АлгТД можно имитировать иерархией расширяемых записей. Одной не обойтись...

[identity profile] plumqqz.livejournal.com 2013-02-07 07:34 am (UTC)(link)
Ну да, все лучше, чем водку жрать.

[identity profile] vinslivins.livejournal.com 2013-02-07 09:05 am (UTC)(link)
не, ну правда же, что скл это язык для бабушек или там менеджеров в экселе и аксессе. как язык для написания хоть какой-нибудь логики он такая же популярная беда, как vbscript. он просто увы есть, а остановится и сделать что-нибудь нормальное руки не дошли :(

[identity profile] plumqqz.livejournal.com 2013-02-07 09:09 am (UTC)(link)
Меня вот прям трогает эта популярнейшая уверенность в том, что все вокруг убогие идиоты и лишь Васе Пупкину с неба недавно была провозглашена истина, причем про тот же "скл" знают обычно не более чем полкнижки "освой самостоятельно sql за 24 часа".

[identity profile] vinslivins.livejournal.com 2013-02-07 09:18 am (UTC)(link)
не, ну давайте, давайте переведём его на русский язык. чем плохо: ОБЪЯСНИ ВЫБРАТЬ .. ИЗ .. ГДЕ
отличное программистское 1С решение.
давайте запросы исполнять НАПИШИ ОТВЕТ ПОЖАЙЛУЙСТА

ещё надо DO WHAT I MEAN и WHAT IF

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

[identity profile] plumqqz.livejournal.com 2013-02-07 09:24 am (UTC)(link)
В общем, изучайте матчасть.
А еще лучше - не изучайне, не надо оно вам. Не дано, так сказать.

(no subject)

[identity profile] vinslivins.livejournal.com - 2013-02-07 09:27 (UTC) - Expand

[identity profile] vinslivins.livejournal.com 2013-02-07 09:26 am (UTC)(link)
не, ну реально, почему только в sql надо убивать кучу места и времени, печатая эти длинные слова? чем я это заслужил? почему во всех остальных языках по-человечески, и кто, выходит, убогие идиоты?

[identity profile] plumqqz.livejournal.com 2013-02-07 09:28 am (UTC)(link)
Какие "длинные слова"? SQL про краткости вообще какой-то APL напоминает. Хотя, конечно, смотря что писать.
В общем, мой вам совет - бросьте к чертям это дело, посвятите себя семечкам.

(no subject)

[identity profile] vinslivins.livejournal.com - 2013-02-07 09:32 (UTC) - Expand

(no subject)

[identity profile] plumqqz.livejournal.com - 2013-02-07 09:38 (UTC) - Expand