не имеют никакого отношения к ООП!?
можно натягивать сову, но какое отношение между ООП и матрицами? то, что ML конвейер можно сделать через ООП не означает, что это надо было так делать. Большие данные в центре, их инкапсулировать не только не полезно, но и вредно. Функциональный подход очень к месту.
Никакого, я просто тут пытаюсь гнуть свою линию!))
Обычно классы делают данные приватными и обеспечивают доступ к ним через методы. Если этих данных много (терабайты), то прятать их внутрь — как-то негуманно. Если есть конвейер, то его можно построить как последовательность функций. Но можно и через ООП делать, если внутри хранить не данные а URI данных в хранилище. ООП для другого придумали. Обычно использую аналогию скульптора. Глыба — одна, инструментов — целая мастерская.
я понял, что вы имеете ввиду, да, ООП это не очень для работы с данными, но есть. Я больше хотел услышать обоснование почему именно ФП
да кому как. кто с физикой/математикой дружит, тому функции давно стали рядовым инструментом. Если всю биг-дату в процессе обработки рассматривать как "указатель на глыбу", то рядовой конвейер превращается в последовательность функций, который можно обратно разложить через пайпы. просто удобно
спасибо, да, я понял ответ, пайпы удобство работы с данными
пайп — вывернутая наизнанку цепочка функций/отображений
пришла в голову мысль, что пайпы это бесконечные подзапросы Select From (Select From (Select From)) 🙂
Почему? Мы в Cte можем сколько угодно обращаться к таблицам (джойнить), а в запросе только к прошлому подзапросу
возможно, да. аналогии не всегда сохраняют смысл при рекурсии
В продуктах, рассчитанных на конечных пользователей, в определенный момент все скатывается к графическим IDE и мышке. NodeRed etc. Класcический ETL идеально на это раскладывается. Кубики являются отражением DSL, построенного на предметной области. А сам DSL перекладывается на функции используемого бэкенда. Пользователь рисует лабиринты траекторий данных мышкой, а в DSL, фактически, это все свертывается во вложенные функции. Что лежит в бэкенде и какого размера данные — вообще становится безразлично. Движок и данные разделены. Понятно, что у каждого архитектора свои ромашки, я просто описал апробированный подход с одного из продуктов на стапеле, без квантора всеобщности.
Обсуждают сегодня