Темы
-
принципы ООП
- абстракция - это модель некоего обьекта или явления из реального мира, в которой опущены незначительные детали.
- инкапсуляция - способность обьектов скрывать часть своего состояния и поведения от внешнего мира, предоставляя ему только определенный интерфейс взаимодействия с собой.
- наследование - возможность создания новых обьектов на основе существующих.
- полиморфизм - способность программы выбирать различные реализации при вызове операции с однм и тем же названием.
-
принцыпы SOLID
-
ООП без обьектов
-
шаблоны проектирования
- фабрика - позволяет скрыть условные конструкции, изолировать процес создания обьекта, в какой-то степени убрать дублирование кода.
- декоратор - позволяет разширить функционал некоего обьекта.
- компоновщик (composite pattern) - обьединяет обьекты в древовидную структуру для создания иерархии. Позволяет обращаться к отдельным обьектам и к групам обьектов одинаково.
- адаптер - имролзуется когда нужно использовать код не поддерживающий необходимый интерфейс. Создается обертка над обьектом, которая нужна для поддержки нужного интерфейса. Позволяет обьектам с разными интерфейсами работать вместе.
-
парадигмы программирования
-
идемпотентность - действие. многократное выполнение которого даст тот же результат, что и однократное. Проще говоря, это когда функция при вызове всегда возвращает оди и тот же результат, не зависимо от количества вызовов.
Стек - абстрактный тип данных, организован по принцыпу LIFO (last in - first out).
Каринг - конвертация функции, которая принимает несколько аргументов в функции, которая принимает один аргумент. ПРи каждом последующем вызове функцияпринимает один аргумент и возвращает другую функцию, которая так же принимает один аргумент до тех пор, пока все аргументы не будут обработаны.
Predicate - это функция, которая возврацает true или false. Используется в filter.
Lambda - анонимная функция, которую можно использовать как значение. Их часто передают в качестве аргументов в функции высокого порядка.
-каждая функция в JS виртуальная с поздним связыванием;
Объект первого рода — Сущность в языке, которая рассматривается как данные. Это значит что ее можно записывать в переменную, передавать в функции и возвращать из функций. В JS функции это обьекты первого рода.
Monkey patching - подход когда поведение программы меняеться во время ее работы.
Middleware - промежуточный слой выполняющий дополнительную обработку данных