Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
demimurych opened this issue Apr 11, 2022 · 2 comments

Comments

@demimurych
Copy link

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

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

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

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

@tshemsedinov
Copy link
Member

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

@demimurych
Copy link
Author

demimurych commented Apr 20, 2022

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

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

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

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants