Book icon indicating copy to clipboard operation
Book copied to clipboard

Глава: 2-6-Function.md. Неоднозначная семантика терминов: колбек. фабрика функций, функция-обертка, фабрики классов и прототипов соответственно

Open demimurych opened this issue 3 years ago • 2 comments

  1. Если функция передается в другую функцию в качестве аргумента, то это колбек.
  2. Если функция фозвращается в качестве результата, то это фабрика функций на замыканиях.
  3. Если возвращаемая функция имеет ту же семантику, что и получаемая в аргументах, но с дополнительным (расширенным) поведением, то это функция-обертка.
  4. Редко бывает, что возвращаемая функция не связана с функцией из аргументов, или связана не прямо, а также имеет другую семантику и функцией-оберткой она не является.
  5. Если на выходе класс или функция-конструктор, то это фабрики классов и прототипов соответственно. Функция-обертка (Wrapper)

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

Фактически, все заявленные термины являются типичной композицией функций.

В этой связи совершенно не понятно, зачем им определено место в разделе, цель которого определения фундаментальных терминов.

demimurych avatar Apr 11 '22 05:04 demimurych

Не вижу, при чем тут композиция, это функции высшего порядка. А термины колбек, лисенер, обертка, фабрика функций... они так или иначе, все равно используются в программистской среде, в js это уже традиционные термины стали, ни какой проблемы в этой классификации не вижу.

tshemsedinov avatar Apr 11 '22 22:04 tshemsedinov

в этой классификации не вижу.

  1. Идея книги декларируется как программировании на уровне абстракций, что должно принести в работу программиста новый уровень его эффективности.
  2. При этом, заявленные термины характерны исключительно для императивного стиля программирования. И не имеют никакого практического значения при функциональном программировании. В функциональной парадигме никто понятия не имеет о том что такое callback, фабрика, потоки, асинхронное программирование и прочая мишура императивной парадигмы, по той причине что программист в плоскости функциональной парадигмы оперирует абстракциями далекими от конкретной реализации того или иного способа оперирования обьектами, промисами или любой другой части конкретного языка и конкретной архитектуры. По этой причине функциональные языки и называют мета языками. Но сейчас не об этом.

Очень странно выглядит идея предельного уровня абстракции, на фоне спеицифических терминов связанных исключительно с реализацией одной из парадигм, причем той которая находится дальше всех от абстракций в принципе.

То есть не ясно как можно говорить о абстракциях на фоне узкоспециализированных решений. То есть либо абстракции на самом деле не такие уж и абстракции раз есть место условным callback , либо callback-ам нет места при заявленном уровне абстракций.

По этой причине я и сделал свой комментарий.

demimurych avatar Apr 20 '22 03:04 demimurych