понедельник, 20 апреля 2020 г.

OO VS FP

Объекты (классы) – не структуры данных ... Использование объектов в качестве структур данных – признак плохого проектирования ... Извне вам доступны только методы (функции), поэтому объекты про поведение, а не состояние ... ORM не отображают реляционные данные на объекты. Они отображают реляционные данные на структуры данных. Эти структуры – не объекты. Объекты группируют поведение, а не данные ... Функциональные программы, как и объектно-ориентированные являются композицией функций преобразования данных ... Термин «переменная» вообще не применим к функциональным ЯП, потому что однажды присвоив значение его нельзя изменить ... Апологеты ФП часто указывают на то что функции – объекты первого класса ... Ключевое отличие не в этом, а в отсутствии удобного оператора присваивания ... ООП навязывает дисциплину в работе с указателями на функции ...

У полиморфизма всего одно преимущество, но оно значительно. Это инверсия исходного кода и рантайм-зависимостей ... рантайм-зависимости и зависимости на уровне исходного кода однонаправленны. Вызывающий модуль зависит от вызываемого модуля. Но в случае полиморфизма вызывающий модуль все еще зависит от вызываемого в рантайме, но исходный код вызываемого модуля не зависит от исходного кода вызываемого модуля. Вместо этого оба модуля зависят от полиморфного интерфейса. Эта инверсия позволяет вызываемого модулю вести себя как плагину. Действительно, плагины так и работают. Архитектура плагинов крайне надежна, потому что стабильные и важные бизнес-правила могут храниться отдельно от подверженных изменениям и не столь важных правил ...

Секции, содержащие прямое изменение состояния, могут быть отделены от многопоточного доступа ... все принципы и паттерны.
https://habr.com/ru/post/338136

3 комментария:

  1. Принцип единственной ответственности
    Принцип открытости/закрытости
    Принцип подстановки Барбары Лисков
    Принцип разделения интерфейса
    Принцип инверсии зависимостей

    https://ru.wikipedia.org/wiki/SOLID_(объектно-ориентированное_программирование)

    ОтветитьУдалить
  2. Рассмотреть адресацию и контент ... все упирается в распределение памяти!

    https://www.semanticscholar.org/paper/Extended-Sparse-Distributed-Memory-and-Sequence-Snaider-Franklin/20298cddb815e5bcbc055415c6a62865c076b3b9

    ОтветитьУдалить
  3. Все-таки эт слабое обощение. Все данные. И объекты и процессы. И все это структуры.
    https://sites.google.com/view/metatronix/библиотека/берс

    ОтветитьУдалить