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

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

Date: 2013-02-06 11:34 am (UTC)

Date: 2013-02-06 11:34 am (UTC)
From: [identity profile] jamhed.livejournal.com
а почему собственно select очевиднее filter?

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

(no subject)

From: [personal profile] alll - Date: 2013-02-06 03:00 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 03:04 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2013-02-06 06:56 pm (UTC) - Expand

(no subject)

From: [personal profile] alll - Date: 2013-02-06 07:40 pm (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2013-02-07 05:25 am (UTC) - Expand

(no subject)

From: [identity profile] norguhtar.livejournal.com - Date: 2013-02-07 02:23 am (UTC) - Expand

Date: 2013-02-06 11:35 am (UTC)
From: [identity profile] Шура Люберецкий (from livejournal.com)
Правильный ответ - с помощью filter, map и fold можно реализовать select, where и group by, а также еще много чего.

Date: 2013-02-06 11:48 am (UTC)
From: [identity profile] eleon.livejournal.com
25? :)

Date: 2013-02-06 11:54 am (UTC)
From: [identity profile] metaclass.livejournal.com
За эти деньги человек еще и требования сам соберет и с заказчиками общаться поедет:)

(no subject)

From: [identity profile] eleon.livejournal.com - Date: 2013-02-06 11:59 am (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 12:04 pm (UTC) - Expand

(no subject)

From: [identity profile] eleon.livejournal.com - Date: 2013-02-06 12:05 pm (UTC) - Expand

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2013-02-06 12:07 pm (UTC) - Expand

Date: 2013-02-06 11:51 am (UTC)
From: [identity profile] blackyblack.livejournal.com
15$. А вообще можно убедить заказчика как в первом так и во втором варианте. Всё равно хрен проверишь, а к концу проекта можно уже будет греть кости на пляжу.

Date: 2013-02-06 11:53 am (UTC)
From: [identity profile] metaclass.livejournal.com
Заказчику (если это не модуль к готовой системе) в норме пофиг должно быть, на чем оно написано. Все равно более адекватного по соотношению цена/качество, чем у функциональщиков, обслуживания он не получит.

(no subject)

From: [identity profile] blackyblack.livejournal.com - Date: 2013-02-06 12:00 pm (UTC) - Expand

Date: 2013-02-06 12:04 pm (UTC)
From: [identity profile] plumqqz.livejournal.com
Самоочевидно ли то
Мне лично самоочевидно, что очень вероятны проблемы с балансом. Кроме того, еще более вероятны проблемы с производительностью. Ну и, скорее всего, вероятны проблемы с типами (в функциональщине вообще есть тип с фиксированной точностью?)

Date: 2013-02-06 12:11 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Да, Decimal (в жабовой и дотнетовой функциональщине - точно есть).
Баланс в условиях двойной записи нарушить можно только явными багами в расчетах :)
А с производительностью все очень просто: первоначальная выборка производится в СУБД, средствами SQL, а окончательная генерация отчета по невменяемым правилам - функциональщиной. Ну и SQL тоже функциональщина генерирует, если по хорошему.

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 12:20 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 12:22 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 12:27 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 12:29 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 12:32 pm (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2013-02-07 04:10 am (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 12:35 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 12:38 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 12:44 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 12:47 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 12:50 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 01:00 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 01:04 pm (UTC) - Expand

(no subject)

From: [identity profile] volodymir-k.livejournal.com - Date: 2013-02-06 01:13 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 01:16 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2013-02-06 06:59 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-07 08:27 am (UTC) - Expand

(no subject)

From: [identity profile] geniepro.livejournal.com - Date: 2013-02-07 06:39 am (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-07 07:34 am (UTC) - Expand

(no subject)

From: [identity profile] vinslivins.livejournal.com - Date: 2013-02-07 09:05 am (UTC) - Expand

(no subject)

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

(no subject)

From: [identity profile] vinslivins.livejournal.com - Date: 2013-02-07 09:18 am (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-07 09:24 am (UTC) - Expand

(no subject)

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

(no subject)

From: [identity profile] vinslivins.livejournal.com - Date: 2013-02-07 09:26 am (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-07 09:28 am (UTC) - Expand

(no subject)

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

(no subject)

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

Date: 2013-02-06 12:11 pm (UTC)
From: [identity profile] dmzlj.livejournal.com
это как раз просто --- можно хранить всё в бигинте (в т.ч. с произвольной точностью) и определить необходимые функции конверсии/отображения.

а джойнить данные будет неприятно

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 12:13 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 12:19 pm (UTC) - Expand

(no subject)

From: [identity profile] dmzlj.livejournal.com - Date: 2013-02-06 12:23 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 12:24 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 12:28 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 12:33 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 12:28 pm (UTC) - Expand

(no subject)

From: [identity profile] dmzlj.livejournal.com - Date: 2013-02-06 12:30 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 12:33 pm (UTC) - Expand

(no subject)

From: [identity profile] nealar.livejournal.com - Date: 2013-02-06 05:33 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-07 04:13 am (UTC) - Expand

(no subject)

From: [identity profile] potan.livejournal.com - Date: 2013-02-06 03:17 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 03:21 pm (UTC) - Expand

(no subject)

From: [identity profile] si14.livejournal.com - Date: 2013-02-07 11:05 am (UTC) - Expand

Date: 2013-02-06 12:12 pm (UTC)
From: [identity profile] stdray.livejournal.com
В конце концов, filter/map/fold большей частью будут отображены на select .. where .. group by. А доступные примитивные типы данных зависят от конкретного языка (платформы), но как правило все тоже самое.

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 12:22 pm (UTC) - Expand

Date: 2013-02-06 12:19 pm (UTC)
From: [identity profile] avnik.livejournal.com
Да
При этом будет нельзя сложить например рубли с долларами.(ну и вообще теплое с мягким)

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 12:24 pm (UTC) - Expand

(no subject)

From: [identity profile] avnik.livejournal.com - Date: 2013-02-06 01:11 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 01:12 pm (UTC) - Expand

(no subject)

From: [identity profile] sorhed.livejournal.com - Date: 2013-02-06 01:35 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-02-06 01:36 pm (UTC) - Expand

(no subject)

From: [identity profile] jdevelop.livejournal.com - Date: 2013-02-06 02:16 pm (UTC) - Expand

(no subject)

From: [identity profile] vshabanov.livejournal.com - Date: 2013-02-06 05:29 pm (UTC) - Expand

(no subject)

From: [identity profile] jdevelop.livejournal.com - Date: 2013-02-06 05:36 pm (UTC) - Expand

(no subject)

From: [identity profile] vshabanov.livejournal.com - Date: 2013-02-06 06:11 pm (UTC) - Expand

(no subject)

From: [identity profile] jdevelop.livejournal.com - Date: 2013-02-06 06:17 pm (UTC) - Expand

(no subject)

From: [identity profile] jdevelop.livejournal.com - Date: 2013-02-06 06:18 pm (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2013-02-07 04:03 am (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2013-02-07 04:00 am (UTC) - Expand

(no subject)

From: [identity profile] jdevelop.livejournal.com - Date: 2013-02-07 04:41 am (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2013-02-07 05:26 am (UTC) - Expand

(no subject)

From: [identity profile] jdevelop.livejournal.com - Date: 2013-02-07 01:28 pm (UTC) - Expand

(no subject)

From: [identity profile] blackyblack.livejournal.com - Date: 2013-02-07 05:29 am (UTC) - Expand

(no subject)

From: [identity profile] swizard.livejournal.com - Date: 2013-02-07 10:27 am (UTC) - Expand

Date: 2013-02-07 03:50 am (UTC)
From: [identity profile] theiced.livejournal.com
вот. крокодил в очередной раз показал себя тупым мудаком перепутав "функциональщину" и "типизацию".

более того, код писанный в функциональном стиле в общем случае работает быстрее и обычно работает с иммутабельными данными - то есть никаких "проблем с балансом" быть не может принципиально.

иди секурити аудит проводи, говнище.

Date: 2013-02-06 12:09 pm (UTC)
From: [identity profile] dmzlj.livejournal.com
это не так. рано или поздно придется использовать что-то вроде IxSet, что есть подобие левой руки.
джойны вручную --- это разве предел мечтаний?

хотя проблема в том, что 50/50. т.е когда я пилил сложную логику на сиквеле, мне остро не хватало встроенного туда нормального функционального языка.
Edited Date: 2013-02-06 12:11 pm (UTC)

Date: 2013-02-06 12:12 pm (UTC)
From: [identity profile] metaclass.livejournal.com
джоины можно и в СУБД сделать, перед тем как передать результат в функциональщину.
Кроме того - джоины в 90% случаев - это ссылки на справочник, "подпишем ка этот аналитический код".

(no subject)

From: [identity profile] dmzlj.livejournal.com - Date: 2013-02-06 12:14 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 12:16 pm (UTC) - Expand

(no subject)

From: [identity profile] dmzlj.livejournal.com - Date: 2013-02-06 12:27 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 12:33 pm (UTC) - Expand

(no subject)

From: [identity profile] dmzlj.livejournal.com - Date: 2013-02-06 12:38 pm (UTC) - Expand

(no subject)

From: [identity profile] swizard.livejournal.com - Date: 2013-02-06 02:02 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 02:12 pm (UTC) - Expand

(no subject)

From: [identity profile] tonsky.livejournal.com - Date: 2013-02-07 05:28 am (UTC) - Expand

(no subject)

From: [identity profile] swizard.livejournal.com - Date: 2013-02-07 10:32 am (UTC) - Expand

(no subject)

From: [identity profile] tonsky.livejournal.com - Date: 2013-02-08 10:14 am (UTC) - Expand

(no subject)

From: [identity profile] dmzlj.livejournal.com - Date: 2013-02-06 12:16 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 12:22 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 12:19 pm (UTC) - Expand

(no subject)

From: [identity profile] geniepro.livejournal.com - Date: 2013-02-06 12:27 pm (UTC) - Expand

(no subject)

From: [identity profile] ko-bx.livejournal.com - Date: 2013-02-06 01:44 pm (UTC) - Expand

Date: 2013-02-06 12:10 pm (UTC)
From: [identity profile] vp.livejournal.com
Я думаю, что ценность должно представлять умение решать проблемы как таковое. Инструментарий - это все-таки вторично. Но это следует из первого: развитое умение решать проблемы позволяет выбрать эффективный инструментарий, да.

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

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2013-02-06 12:14 pm (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2013-02-07 03:51 am (UTC) - Expand
(deleted comment)

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

(no subject)

From: [identity profile] volodymir-k.livejournal.com - Date: 2013-02-06 01:15 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 01:51 pm (UTC) - Expand
(deleted comment)

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 02:00 pm (UTC) - Expand
(deleted comment)

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 02:19 pm (UTC) - Expand

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

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

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

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

(no subject)

From: [identity profile] demonim.livejournal.com - Date: 2013-02-06 02:00 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 02:11 pm (UTC) - Expand

(no subject)

From: [identity profile] demonim.livejournal.com - Date: 2013-02-06 02:19 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-02-06 02:21 pm (UTC) - Expand

(no subject)

From: [identity profile] demonim.livejournal.com - Date: 2013-02-06 02:25 pm (UTC) - Expand

(no subject)

From: [identity profile] falcrum.livejournal.com - Date: 2013-02-06 04:42 pm (UTC) - Expand

(no subject)

From: [identity profile] dlebedev8.livejournal.com - Date: 2013-02-07 02:48 am (UTC) - Expand

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

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

Date: 2013-02-06 02:46 pm (UTC)

Date: 2013-02-06 05:01 pm (UTC)
From: [identity profile] black-angel-by.livejournal.com
42 ответ на всё ! :)

Date: 2013-02-07 02:35 am (UTC)
From: [identity profile] dlebedev8.livejournal.com
Самоочевидно ли то, что с помощью filter/map/fold можно реализовать бухгалтерскую отчетность более простым и очевидным образом, чем с помощью select .. where .. group by?
А с помощью select .. where .. group by можно реализовать бухгалтерскую отчетность? Данные вносить в систему тоже будете через запросы к БД?

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

Date: 2013-02-08 08:33 pm (UTC)
From: [identity profile] nicka-startcev.livejournal.com
давным-давно, обитатели R.O.C на все подобные вопросы отвечали "$50 в час".

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. 3rd, 2025 01:00 am
Powered by Dreamwidth Studios