Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Всем привет. Для ООП есть ряд книг, которые признаны более или менее классическими и описывают подходы к процессу разработки и построению архитектуры крупного приложения. Шаблоны банды четырех, DDD Эрика Эванса, SOLID и Clean architecture Боба Мартина, Рефакторинг Фаулера, книги по TDD, труды Бертрана Мейера, Dependency Injection in .NET Марка Симана и тд То есть книги описывают не только сам подход ООП, но и как на нем построить какое-то более-менее сложное приложение для реальных нужд. Своего рода best practices. Есть ли что-то подобное для функционального программирования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 12:20 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Есть: Кнут (трёхтомник), Вирт (структуры + алгоритмы = программа). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 14:45 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
redkij, https://wiki.nsunc.com/haskell http://anton-k.github.io/ru-haskell-book/files/ru-haskell-book.pdf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 15:00 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
ФП книжки больше по языкам профилируются. Из ФП подобной теории я не встречал. ФП пришло из математики поэтому ихние первоисточники скорее всего читать будет невозможно для простого 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% успеха парень. А шаблоны типа банды четырех в ФП найух не впились. Зачем в ФП синглтон? Там его нет - и нет проблемы. Чуть позже я могу приаттачить библиографию своих книжек которые перечислил и еще кое-что добавлю если интересно. Но это опять-же не про паттерн ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 15:00 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Мне кажется человек интересуется именно подходом к разработке в функциональном стиле применительно в архитектуре. Язык и технологии не особо важны. ФП-шные подходы к разработке можно (и нужно) успешно применять в Java, Python, C#, и практически в любом современном языке. Нежели про глубокую лютую функциональщину, которую суровая реальность вертела на одном месте, вместе со всеми лиспами, хаскелями, оставляя им очень узкую нишу и дисциплину, где всё не-ФП считается святотатством и жестоко карается :) По мне, уместная комбинация подходов порой приводит к удивительному профиту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 16:31 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Нет смысла этим интересоваться находясь исключительно в контексте Java/C#. Всё про эти языки уже описано Фаулером, Мартином (другим мартином) и никаких исключительных кивков в адрес ФП они не делают. Тоесть автору надо определиться в какую сторону языковых наук он пойдет. Чистая теория ООП и ФП расходится в разные стороны именно на языках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 16:44 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Может нужно отталкиваться от того, для каких бизнес-задач данный язык более-менее преднозначен Знал в 90-ые людей пишуших на Прологе для фирмы-создателя Пролога... с каким же вожделением они смотрели на Borland C, Turbo C и Windows API, когда им нужно было на Прологе интерфейсы дли прикладной системы рисовать ))) Вроде, в результате, потом интерфейсы на C и стали рисовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 17:53 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Назначение у Пролога было другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 18:14 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
однако если вспомнить, то прообраз хаскеля - миранда, использовалась как раз для создания менеджера окон X Window System (xmonad) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 18:23 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Никогда не видел на функциональных языках ничего UI-ного. Я думаю что их сфера применения - это какой-то back-end. Вроде как фейсбук использует Хаскель для умных спамо-фильтров. Вот - применение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 18:32 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Лучшее доказательство того что чисто функциональные языки не годятся для создания реальных сопровождаемых систем это размер доказательства теоремы Ферма в сравнении с решаемой проблемой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 19:00 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky Лучшее доказательство того что чисто функциональные языки не годятся для создания реальных сопровождаемых систем это размер доказательства теоремы Ферма в сравнении с решаемой проблемой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 19:04 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan) вы не путаете функциональное и символьное? Это неважно в данном контексте. Функциональное - в смысле разработанное на основе математики и математиками. Судя по всему математиков не интересуют вопросы сопровождаемости их "кода". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 19:15 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky Лучшее доказательство того что чисто функциональные языки не годятся для создания реальных сопровождаемых систем это размер доказательства теоремы Ферма в сравнении с решаемой проблемой. Большая? Мне кажется что ее обычное доказательство в виде печатного текста настолько сложно что я-бы вообще отложил этот вопрос до лучших времен. Давайте хоть зайдем со стороны простых доказательств. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 19:20 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky Судя по всему математиков не интересуют вопросы сопровождаемости их "кода". вброшу ещё раз, это всегда актуально : авторВ сравнении с программистами, математики это "плохой (ужасный) код": 1. высшая степень абстракции (все операции в уме, а на выходе набор букв с цифрами); 2. "буквы" в прямом смысле - все переменные однобуквенные, нихрена непонятные; 3. им не хватает букв на все переменные, но математики продолжают жрать кактус; 4. никакого форматирования; 5. 0 (ноль) комментариев; 6. даже при наличии "готового кода", напиленного предыдущими математиками, они его постоянно дублируют; 7. часто (особенно в вышке) требуется визуализация (рисование графиков и функций), чтобы хоть понять, о чём речь вообще; 8. чтобы было чем заняться постоянно приходится выдумывать несуществующую ахинею, которой нет и быть не может: шестимерные пространства, семимерные фигуры; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 20:04 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Кто может формально доказать что Jesus Christ является сыном Бога (The God) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 20:08 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
но причём тут математики? Человек же спрашивает про ООП и процедурное... в кач-ве процедурного по-моему лучше C/C++ нету ничего можно весь код разбросать по .h-файлам, при этом он аккуратно будут уложен в любые неймспейсы потом просто дёргать: db::func(); core::func(); легко сопровождать, легко работать идеально! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 20:09 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
полудух но причём тут математики? Человек же спрашивает про ООП и процедурное... Читайте еще раз тему топика ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 20:21 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
hVostt Мне кажется человек интересуется именно подходом к разработке в функциональном стиле применительно в архитектуре. Да. Это я и имел ввиду. Если сформулировать подробнее - в ООП тоже можно выделить некую теоретическую основу. Наследование, инкапсуляция, полиморфизм и его виды (разные существуют, если не ошибаюсь). Системы типов наверное тоже сюда можно включить. Но, когда все это знаешь, это не означает, что автоматически ты получаешь возможность грамотно спроектировать крупное приложение. То есть, архитектура тут выглядит чем-то отдельным от теоретических основ ООП. Есть подходы к построению архитектуры, для которых ООП является основной, но сами по себе они не становятся ясны и интуитивно понятны сразу. А в случае с ФП я такого не наблюдаю. Будто подразумевается, что поняв теорию категорий, функторы, монады и тд, человек сразу готов писать в продакшн систему на миллионы строк, и никаких сложностей не будет. Вот и хочется узнать - может какие-то гайды по архитектуре для ФП все-таки есть? Или их реально нет, просто потому что мало кто пишет промышленные большие системы, используя ФП как единственный путь, а не фрагментарные вкрапления, и поэтому гайды особо некому писать, и спрос на них тоже не особый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 20:36 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
mayton Чуть позже я могу приаттачить библиографию своих книжек которые перечислил и еще кое-что добавлю если интересно. Но это опять-же не про паттерн Буду благодарен. SICP я осилил где-то 60%, но это все-таки не совсем то. Но интересно, что вообще есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 20:41 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), спасибо, увидел книжку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 20:42 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky полудух но причём тут математики? Человек же спрашивает про ООП и процедурное... Читайте еще раз тему топика ))) Давайте отвлечёмся. Зачем математики делают те или иные гипотезы или открытия или теоремы? А низачем? Вообще зачем - это какбы запрещённый вопрос. Многие великие открытия в математике были сделаны безо всякой на то мотивации. Не было заказа со стороны физиков или любых других учёных. Просто математик "играл разумом". И его никому не нужные "игры в бирюльки". Вдруг! Внезапно! Через 100 с лишним лет оказались НУЖНЫ квантовой физике. Просто потому что эти игры уже были исследованы. И описаны. Вот ФП - это игры разума. Да. Это программирование. Да. Оно позволяет решать задачи. Обычно кратко. И оригинально. И когда классическое императивное программирование устаёт само от себя - выдыхается. Оно обращает взор в ту сторону где есть большая выразительность мысли. А ведь что такое программирование вообще. Это не писание кода. Это выражение бизнес-правил на конкретном языке. Это по сути перевод с естественного языка на технический. Разумеется язык бывает разный. Бывает многсловный как Java. Это ее главный недостаток. Бывает опасный. Это С++. Можно стрельнуть себе в ногу. Бывает узко специализированный (SQL). Где только подмножетсво действий можно сделать. Бывает безтиповой типа JScript где хер ево знает что в рантайме прилетит в аргумент. Бывает язык prolog где я например доказал что Иисус является сыном божьим. Бывает scala где я писал CDC просто по причине того что мне нравились multiline strings + interpolation (честно-честно) другого мотиватора не было. А бывают такие языки где ваш покорный слуга - замирает в восхищении. Он смотрит разинув рот несколько минут и думает. Как это можно было МЫСЛЬ так красиво описать. Ведь описать красиво мысль - это же главная мечта любого разработчика. Это как для писателя - найти красивую метафору. Эстетика. И деньги тут непричём кстати. P.S. И перформанс кстати тоже непричем. Когда ты красиво описал мысль - плевать на перформанс. Эволюция компилляторов - заполирует. Главная цель - достигнута. Ты. Красиво. Описал. Свою. Мысль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 20:45 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev Может нужно отталкиваться от того, для каких бизнес-задач данный язык более-менее преднозначен Да вот и непонятно, для чего языки, которые позиционируются как в первую очередь ФП-языки, предназначены. Может быть они не выйдут из своей узкой (академической?) ниши, и можно вообще не рассматривать их как то, что понадобится для мейнстримной разработки в ближайшие 20-30 лет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 20:46 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
mayton, а платить за "папа может" будет пушкин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2020, 21:01 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39920616&tid=1339831]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
165ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 287ms |
| total: | 560ms |

| 0 / 0 |
