powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подходы к построению архитектуры в функциональном программировании
25 сообщений из 207, страница 1 из 9
Подходы к построению архитектуры в функциональном программировании
    #39920433
redkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Для ООП есть ряд книг, которые признаны более или менее классическими и описывают подходы к процессу разработки и построению архитектуры крупного приложения. Шаблоны банды четырех, DDD Эрика Эванса, SOLID и Clean architecture Боба Мартина, Рефакторинг Фаулера, книги по TDD, труды Бертрана Мейера, Dependency Injection in .NET Марка Симана и тд
То есть книги описывают не только сам подход ООП, но и как на нем построить какое-то более-менее сложное приложение для реальных нужд. Своего рода best practices.
Есть ли что-то подобное для функционального программирования?
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920514
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть: Кнут (трёхтомник), Вирт (структуры + алгоритмы = программа).
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920522
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920523
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФП книжки больше по языкам профилируются.

Из ФП подобной теории я не встречал. ФП пришло из математики поэтому ихние первоисточники
скорее всего читать будет невозможно для простого it-мозга. Функциональщики втаскивают в предмет
обсуждения монады, комбинаторы и формальные логические системы наподобие prolog, грамматики.
Для них - это легко. А для нежного мышления испорченного J2EE/Spring это будет смерти подобно.
Вы 90% ничего не поймете даже по мотивации к применению.

Из наиболее "теоретичного" я помню Романа Душкина с его Haskell. Книжка - негодная для изучения
практики Haskell. Ну по крайней мере она мне лично показалась в этом смысле бесполезной. Хотя
она касалась целей и назначений Хаскела. Там хотя-бы описываются цели и задачи.
И даётся кратая вводная по математике. Это какраз то про что на youtube вообще ничего не говорят.
Там - сразу идут - упражнение №1. Частично-вычислимые функции и так далее. Рекурсии. Бесконечные
списки.

Из теоретичного - есть SICP. Только (ахтунг!) там не чистый Common Lisp, а диалект наподобие FrancLisp или Scheme
я не помню точно. SICP считается must have для всех кто изучает правильное ФП программирование.
Но мне он тоже показался нудным. Не все главы я читал.

Из best-practices - нет почти ничего. Тоесть я не находил. Но есть неплохой журнал http://fprog.ru/
который заглох и в настоящее время не публикуется.
В нем есть различные статейки по проектам и есть даже сорцы.

Еще из практики - можно поискать проекты на github по стикерам Haskell но активности в них раз в 100
меньше чем в других проектах и авторы или умерли давно или не интересуются своим проектом.

Грубо говоря функциональщики считают что если ты просто сделал декомпозицию задачи на функции -
то это есть самый главный и осново-образующий паттерн. Это 80% успеха парень. А шаблоны типа
банды четырех в ФП найух не впились. Зачем в ФП синглтон? Там его нет - и нет проблемы.

Чуть позже я могу приаттачить библиографию своих книжек которые перечислил и еще кое-что добавлю если интересно.
Но это опять-же не про паттерн
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920577
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется человек интересуется именно подходом к разработке в функциональном стиле применительно в архитектуре. Язык и технологии не особо важны. ФП-шные подходы к разработке можно (и нужно) успешно применять в Java, Python, C#, и практически в любом современном языке.

Нежели про глубокую лютую функциональщину, которую суровая реальность вертела на одном месте, вместе со всеми лиспами, хаскелями, оставляя им очень узкую нишу и дисциплину, где всё не-ФП считается святотатством и жестоко карается :)

По мне, уместная комбинация подходов порой приводит к удивительному профиту.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920584
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет смысла этим интересоваться находясь исключительно в контексте Java/C#.
Всё про эти языки уже описано Фаулером, Мартином (другим мартином) и никаких
исключительных кивков в адрес ФП они не делают.

Тоесть автору надо определиться в какую сторону языковых наук он пойдет. Чистая теория ООП и ФП
расходится в разные стороны именно на языках.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920616
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может нужно отталкиваться от того, для каких бизнес-задач данный язык более-менее преднозначен

Знал в 90-ые людей пишуших на Прологе для фирмы-создателя Пролога... с каким же вожделением они смотрели на Borland C, Turbo C и Windows API, когда им нужно было на Прологе интерфейсы дли прикладной системы рисовать )))

Вроде, в результате, потом интерфейсы на C и стали рисовать.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920639
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Назначение у Пролога было другое.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920646
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
однако если вспомнить, то прообраз хаскеля - миранда, использовалась как раз для создания менеджера окон X Window System (xmonad)
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920650
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никогда не видел на функциональных языках ничего UI-ного.
Я думаю что их сфера применения - это какой-то back-end.
Вроде как фейсбук использует Хаскель для умных спамо-фильтров.
Вот - применение.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920663
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучшее доказательство того что чисто функциональные языки не годятся для создания реальных сопровождаемых систем это размер доказательства теоремы Ферма в сравнении с решаемой проблемой.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920670
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
Лучшее доказательство того что чисто функциональные языки не годятся для создания реальных сопровождаемых систем это размер доказательства теоремы Ферма в сравнении с решаемой проблемой.
вы не путаете функциональное и символьное?
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920676
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)
вы не путаете функциональное и символьное?

Это неважно в данном контексте.
Функциональное - в смысле разработанное на основе математики и математиками.
Судя по всему математиков не интересуют вопросы сопровождаемости их "кода".
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920680
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
Лучшее доказательство того что чисто функциональные языки не годятся для создания реальных сопровождаемых систем это размер доказательства теоремы Ферма в сравнении с решаемой проблемой.

Большая?

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

Давайте хоть зайдем со стороны простых доказательств.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920707
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
Судя по всему математиков не интересуют вопросы сопровождаемости их "кода".

вброшу ещё раз, это всегда актуально :
авторВ сравнении с программистами, математики это "плохой (ужасный) код":
1. высшая степень абстракции (все операции в уме, а на выходе набор букв с цифрами);
2. "буквы" в прямом смысле - все переменные однобуквенные, нихрена непонятные;
3. им не хватает букв на все переменные, но математики продолжают жрать кактус;
4. никакого форматирования;
5. 0 (ноль) комментариев;
6. даже при наличии "готового кода", напиленного предыдущими математиками, они его постоянно дублируют;
7. часто (особенно в вышке) требуется визуализация (рисование графиков и функций), чтобы хоть понять, о чём речь вообще;
8. чтобы было чем заняться постоянно приходится выдумывать несуществующую ахинею, которой нет и быть не может: шестимерные пространства, семимерные фигуры;
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920710
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто может формально доказать что Jesus Christ является сыном Бога (The God) ?
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920711
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но причём тут математики? Человек же спрашивает про ООП и процедурное...
в кач-ве процедурного по-моему лучше C/C++ нету ничего
можно весь код разбросать по .h-файлам, при этом он аккуратно будут уложен в любые неймспейсы
потом просто дёргать:
db::func();
core::func();
легко сопровождать, легко работать
идеально!
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920718
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух
но причём тут математики? Человек же спрашивает про ООП и процедурное...

Читайте еще раз тему топика )))
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920730
redkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt
Мне кажется человек интересуется именно подходом к разработке в функциональном стиле применительно в архитектуре.


Да. Это я и имел ввиду.
Если сформулировать подробнее - в ООП тоже можно выделить некую теоретическую основу. Наследование, инкапсуляция, полиморфизм и его виды (разные существуют, если не ошибаюсь). Системы типов наверное тоже сюда можно включить. Но, когда все это знаешь, это не означает, что автоматически ты получаешь возможность грамотно спроектировать крупное приложение. То есть, архитектура тут выглядит чем-то отдельным от теоретических основ ООП. Есть подходы к построению архитектуры, для которых ООП является основной, но сами по себе они не становятся ясны и интуитивно понятны сразу.

А в случае с ФП я такого не наблюдаю. Будто подразумевается, что поняв теорию категорий, функторы, монады и тд, человек сразу готов писать в продакшн систему на миллионы строк, и никаких сложностей не будет.
Вот и хочется узнать - может какие-то гайды по архитектуре для ФП все-таки есть?
Или их реально нет, просто потому что мало кто пишет промышленные большие системы, используя ФП как единственный путь, а не фрагментарные вкрапления, и поэтому гайды особо некому писать, и спрос на них тоже не особый
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920734
redkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Чуть позже я могу приаттачить библиографию своих книжек которые перечислил и еще кое-что добавлю если интересно.
Но это опять-же не про паттерн

Буду благодарен. SICP я осилил где-то 60%, но это все-таки не совсем то. Но интересно, что вообще есть.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920735
redkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kealon(Ruslan),

спасибо, увидел книжку
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920740
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
полудух
но причём тут математики? Человек же спрашивает про ООП и процедурное...

Читайте еще раз тему топика )))

Давайте отвлечёмся.
Зачем математики делают те или иные гипотезы или открытия или теоремы?
А низачем? Вообще зачем - это какбы запрещённый вопрос. Многие великие
открытия в математике были сделаны безо всякой на то мотивации. Не было заказа
со стороны физиков или любых других учёных. Просто математик "играл разумом".
И его никому не нужные "игры в бирюльки". Вдруг! Внезапно! Через 100 с лишним лет
оказались НУЖНЫ квантовой физике. Просто потому что эти игры уже были исследованы.
И описаны.

Вот ФП - это игры разума. Да. Это программирование. Да. Оно позволяет решать задачи.
Обычно кратко. И оригинально. И когда классическое императивное программирование
устаёт само от себя - выдыхается. Оно обращает взор в ту сторону где есть большая
выразительность мысли. А ведь что такое программирование вообще. Это не писание
кода. Это выражение бизнес-правил на конкретном языке. Это по сути перевод
с естественного языка на технический. Разумеется язык бывает
разный. Бывает многсловный как Java. Это ее главный недостаток. Бывает опасный.
Это С++. Можно стрельнуть себе в ногу. Бывает узко специализированный (SQL).
Где только подмножетсво действий можно сделать. Бывает безтиповой типа JScript
где хер ево знает что в рантайме прилетит в аргумент. Бывает язык prolog где я
например доказал что Иисус является сыном божьим. Бывает scala где я писал CDC
просто по причине того что мне нравились multiline strings + interpolation
(честно-честно) другого мотиватора не было.

А бывают такие языки где ваш покорный слуга - замирает в восхищении. Он смотрит
разинув рот несколько минут и думает. Как это можно было МЫСЛЬ так красиво
описать.

Ведь описать красиво мысль - это же главная мечта любого разработчика. Это как
для писателя - найти красивую метафору. Эстетика.

И деньги тут непричём кстати.

P.S. И перформанс кстати тоже непричем. Когда ты красиво описал мысль - плевать
на перформанс. Эволюция компилляторов - заполирует. Главная цель - достигнута.

Ты. Красиво. Описал. Свою. Мысль.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920742
redkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev
Может нужно отталкиваться от того, для каких бизнес-задач данный язык более-менее преднозначен

Да вот и непонятно, для чего языки, которые позиционируются как в первую очередь ФП-языки, предназначены. Может быть они не выйдут из своей узкой (академической?) ниши, и можно вообще не рассматривать их как то, что понадобится для мейнстримной разработки в ближайшие 20-30 лет)
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920750
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

а платить за "папа может" будет пушкин
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39920755
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К чему банальности?
...
Рейтинг: 0 / 0
25 сообщений из 207, страница 1 из 9
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подходы к построению архитектуры в функциональном программировании
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]