Skip to content

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

Description

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

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

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

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

Activity

  1. tshemsedinov commented on Apr 11, 2022

    @tshemsedinov
    Member

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

  2. demimurych commented on Apr 20, 2022

    @demimurych
    Author

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

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

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

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions