Глава: 2-6-Function.md. Неоднозначная семантика терминов: колбек. фабрика функций, функция-обертка, фабрики классов и прототипов соответственно
demimurych opened this issue · 2 comments
- Если функция передается в другую функцию в качестве
аргумента, то это колбек.- Если функция фозвращается в качестве результата, то это
фабрика функций на замыканиях.- Если возвращаемая функция имеет ту же семантику, что и
получаемая в аргументах, но с дополнительным (расширенным)
поведением, то это функция-обертка.- Редко бывает, что возвращаемая функция не связана с функцией
из аргументов, или связана не прямо, а также имеет другую
семантику и функцией-оберткой она не является.- Если на выходе класс или функция-конструктор, то это фабрики
классов и прототипов соответственно.
Функция-обертка (Wrapper)
Термины описанные выше, отличаются друг от друга только качеством исходящими данных
и совершенно не отличаются по форме(семантике), формирования подобных функций.
Не говоря уже о том, что заявленная разница, характерна только для императивного программирования.
Фактически, все заявленные термины являются типичной композицией функций.
В этой связи совершенно не понятно, зачем им определено место в разделе,
цель которого определения фундаментальных терминов.
Не вижу, при чем тут композиция, это функции высшего порядка. А термины колбек, лисенер, обертка, фабрика функций... они так или иначе, все равно используются в программистской среде, в js это уже традиционные термины стали, ни какой проблемы в этой классификации не вижу.
в этой классификации не вижу.
- Идея книги декларируется как программировании на уровне абстракций, что должно принести в работу программиста новый уровень его эффективности.
- При этом, заявленные термины характерны исключительно для императивного стиля программирования. И не имеют никакого практического значения при функциональном программировании. В функциональной парадигме никто понятия не имеет о том что такое callback, фабрика, потоки, асинхронное программирование и прочая мишура императивной парадигмы, по той причине что программист в плоскости функциональной парадигмы оперирует абстракциями далекими от конкретной реализации того или иного способа оперирования обьектами, промисами или любой другой части конкретного языка и конкретной архитектуры.
По этой причине функциональные языки и называют мета языками. Но сейчас не об этом.
Очень странно выглядит идея предельного уровня абстракции, на фоне спеицифических терминов связанных исключительно с реализацией одной из парадигм, причем той которая находится дальше всех от абстракций в принципе.
То есть не ясно как можно говорить о абстракциях на фоне узкоспециализированных решений.
То есть либо абстракции на самом деле не такие уж и абстракции раз есть место условным callback , либо callback-ам нет места при заявленном уровне абстракций.
По этой причине я и сделал свой комментарий.