Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подходы к построению архитектуры в функциональном программировании / 25 сообщений из 207, страница 1 из 9
30.01.2020, 12:20
    #39920433
redkij
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подходы к построению архитектуры в функциональном программировании
Всем привет.
Для ООП есть ряд книг, которые признаны более или менее классическими и описывают подходы к процессу разработки и построению архитектуры крупного приложения. Шаблоны банды четырех, DDD Эрика Эванса, SOLID и Clean architecture Боба Мартина, Рефакторинг Фаулера, книги по TDD, труды Бертрана Мейера, Dependency Injection in .NET Марка Симана и тд
То есть книги описывают не только сам подход ООП, но и как на нем построить какое-то более-менее сложное приложение для реальных нужд. Своего рода best practices.
Есть ли что-то подобное для функционального программирования?
...
Рейтинг: 0 / 0
30.01.2020, 14:45
    #39920514
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подходы к построению архитектуры в функциональном программировании
Есть: Кнут (трёхтомник), Вирт (структуры + алгоритмы = программа).
...
Рейтинг: 0 / 0
30.01.2020, 15:00
    #39920522
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подходы к построению архитектуры в функциональном программировании
...
Рейтинг: 0 / 0
30.01.2020, 15:00
    #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
30.01.2020, 16:31
    #39920577
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подходы к построению архитектуры в функциональном программировании
Мне кажется человек интересуется именно подходом к разработке в функциональном стиле применительно в архитектуре. Язык и технологии не особо важны. ФП-шные подходы к разработке можно (и нужно) успешно применять в Java, Python, C#, и практически в любом современном языке.

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

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

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

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

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

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

Большая?

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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