|
| 1 | +# Programming Dictionary |
| 2 | + |
| 3 | +## Базовые понятия |
| 4 | + |
| 5 | +- [Абстракция / Abstraction](https://github.com/HowProgrammingWorks/Abstractions) |
| 6 | + - обобщенное (абстрактное) решение задачи, в отличие от конкретного решения, подходящее для широкого круга задач |
| 7 | + - модель реального объекта (или множества объектов), являющаяся приближением к реальности, обобщением |
| 8 | + - множество свойств объекта, относящиеся к определенному его аспекту |
| 9 | + - [Слои абстракций / Abstraction Layer](https://github.com/HowProgrammingWorks/AbstractionLayers) |
| 10 | +- Парадигма программирования / Programming Paradigm |
| 11 | +- [Переменная / Variable](https://github.com/HowProgrammingWorks/DataTypes) |
| 12 | + - `let cityName = 'Beijing';` |
| 13 | +- [Константа / Constant](https://github.com/HowProgrammingWorks/DataTypes) |
| 14 | + - `const cityName = 'Beijing';` |
| 15 | +- [Типы данных / Data Types](https://github.com/HowProgrammingWorks/DataTypes) |
| 16 | + - `[5, 'Kiev', true, { city: 'Beijing' }, a => ++a ].map(x => typeof(x));` |
| 17 | +- [Скалярные типы / Scalar Types](https://github.com/HowProgrammingWorks/DataTypes) |
| 18 | +- [Ссылочные типы / Reference](https://github.com/HowProgrammingWorks/DataTypes) |
| 19 | +- [Объект / Object](https://github.com/HowProgrammingWorks/DataTypes) |
| 20 | +- Инстанциирование / Instantiation |
| 21 | + - `const rect1 = new Rectangle(-50, -50, 100, 150);` |
| 22 | +- Класс / Class |
| 23 | + - `class Point { constructor(x, y) { this.x = x; this.y = y; } }` |
| 24 | +- Прототип / Protorype |
| 25 | +- [Cтруктуры данных](https://github.com/HowProgrammingWorks/DataStructures) |
| 26 | +- Массив / Array |
| 27 | + - `const cities = ['Tehran', 'Yalta', 'Potsdam'];` |
| 28 | +- [Функция](https://github.com/HowProgrammingWorks/Function) |
| 29 | + - Объявление функции / Function definition |
| 30 | + - `function max(a, b) { return a + b; }` |
| 31 | + - Функциональное выражение / Function expression |
| 32 | + - Функциональное выражение с именованной функцией / Named function expression |
| 33 | + - `const max = function max(a, b) { return a + b; };` |
| 34 | + - Анонимное функциональное выражение / Anonymous function expression |
| 35 | + - `const max = function(a, b) { return a + b; };` |
| 36 | + - Лямбда функция / Lambda function |
| 37 | + - `const max = (a, b) => { return a + b; };` |
| 38 | + - Лябмда выражение, Функция-стрелка / Lambda expression, Arrow function |
| 39 | + - `const max = (a, b) => (a + b);` |
| 40 | + - [Чистая функция / Pure Function](https://github.com/HowProgrammingWorks/Function) |
| 41 | + - [Замыкание / Closure](https://github.com/HowProgrammingWorks/Closure) |
| 42 | + - `const add = a => b => a + b;` |
| 43 | + - Пример: |
| 44 | +```js |
| 45 | +const hash = () => { |
| 46 | + const data = {}; |
| 47 | + return (key, value) => { |
| 48 | + data[key] = value; |
| 49 | + return data; |
| 50 | + }; |
| 51 | +}; |
| 52 | +``` |
| 53 | + - [Суперпозиция / Superposition](https://github.com/HowProgrammingWorks/Composition) |
| 54 | + - `const expr2 = add(pow(mul(5, 8), 2), div(inc(sqrt(20)), log(2, 7)));` |
| 55 | + - [Композиция / Composition](https://github.com/HowProgrammingWorks/Composition) |
| 56 | + - `const compose = (f1, f2) => x => f2(f1(x));` |
| 57 | + - `const compose = (...funcs) => (...args) => (funcs.reduce((args, fn) => [fn(...args)], args));` |
| 58 | + - [Частичное применение / Partial application](https://github.com/HowProgrammingWorks/PartialApplication) |
| 59 | + - `const partial = (fn, x) => (...args) => fn(x, ...args);` |
| 60 | + - [Каррирование / Currying](https://github.com/HowProgrammingWorks/PartialApplication) |
| 61 | + - `const result = curry((a, b, c) => (a + b + c))(1, 2)(3);` |
| 62 | + - [Побочные эффекты / Side effects](https://github.com/HowProgrammingWorks/Function) |
| 63 | + - [Функция высшего порядка / Higher-order Function](https://github.com/HowProgrammingWorks/HigherOrderFunction) |
| 64 | + - Если функция только в аргументах, то это колбек |
| 65 | + - Если функция только в результате, то это фабрика функций |
| 66 | + - Если функция в аргументах и в результате, то это обертка |
| 67 | + - Функциональное наследование / Functional Inheritance |
| 68 | +- [Метод / Method](https://github.com/HowProgrammingWorks/Function) |
| 69 | + - Пример: |
| 70 | +```js |
| 71 | +const p1 = { |
| 72 | + x: 10, y: 10, |
| 73 | + quadrant() { |
| 74 | + if (this.x > 0) return this.y > 0 ? 'I' : 'IV'; |
| 75 | + return this.y > 0 ? 'II' : 'III'; |
| 76 | + } |
| 77 | +} |
| 78 | +``` |
| 79 | +- [Контекст](https://github.com/HowProgrammingWorks/Function) |
| 80 | +- [Область видимости / Scope](https://github.com/HowProgrammingWorks/Function) |
| 81 | +- [Обертка / Wrapper](https://github.com/HowProgrammingWorks/Wrapper) |
| 82 | +- Интерфейс / Interface |
| 83 | +- Прикладной интерфейс / Application Interface, API |
| 84 | +- Синглтон / Singleton |
| 85 | +- [Функция обратного вызова, колбек / Callback](https://github.com/HowProgrammingWorks/Callbacks) |
| 86 | +- [Событие / Event](https://github.com/HowProgrammingWorks/Callbacks) |
| 87 | +- [Лисенер / Listener](https://github.com/HowProgrammingWorks/Callbacks) |
| 88 | +- [Дифер / Deferred](https://github.com/HowProgrammingWorks/Callbacks) |
| 89 | +- [Промис / Promise](https://github.com/HowProgrammingWorks/Promise) |
| 90 | +- [Фьючер / Future](https://github.com/HowProgrammingWorks/Callbacks) |
| 91 | +- [Итерирование / Iteration](https://github.com/HowProgrammingWorks/Iteration) |
| 92 | +- [Итератор / Iterator](https://github.com/HowProgrammingWorks/Iteration) |
| 93 | +- [Цикл / Loop](https://github.com/HowProgrammingWorks/Iteration) |
| 94 | +- [Условие / Conditional statements](https://github.com/HowProgrammingWorks/Conditional) |
| 95 | +- [Строка / String](https://github.com/HowProgrammingWorks/String) |
| 96 | +- [Коллекция / Collection](https://github.com/HowProgrammingWorks/Collections) |
| 97 | +- [Множество / Set](https://github.com/HowProgrammingWorks/Set) |
| 98 | +- [Ключ-значение, Хешмап / Map, Key-value](https://github.com/HowProgrammingWorks/KeyValue) |
| 99 | +- [Список / List](https://github.com/HowProgrammingWorks/LinkedList) |
| 100 | +- [Дерево](https://github.com/HowProgrammingWorks/TreeNode) |
| 101 | +- [Граф / Graph](https://github.com/HowProgrammingWorks/DirectedGraph) |
| 102 | +- [Файл / File](https://github.com/HowProgrammingWorks/Files) |
| 103 | +- [Поток, Файловый поток / Stream, File Stream](https://github.com/HowProgrammingWorks/Streams) |
| 104 | +- [Буфер / Buffer](https://github.com/HowProgrammingWorks/Buffers) |
| 105 | +- [Сокет / Socket](https://github.com/HowProgrammingWorks/Socket) |
| 106 | +- [Дескриптор / Descriptor](https://github.com/HowProgrammingWorks/Files) |
| 107 | +- Состояние / State |
| 108 | +- Кэш, Кэширование / Cache |
| 109 | +- Хэш, Хэширование / Hashing |
| 110 | +- [Функциональный объект](https://github.com/HowProgrammingWorks/Functor) |
| 111 | + - [Функтор / Functor](https://github.com/HowProgrammingWorks/Functor) |
| 112 | + - Рекурсивное замыкание / Recursive closure |
| 113 | + - Объект функционального типа, хранящий в себе защищенное значение и позволяющий отобразить это значение в другой функтор через функцию |
| 114 | + - [Аппликативный функтор](https://github.com/HowProgrammingWorks/Functor) |
| 115 | + - Монада / Monad |
| 116 | +- [Мемоизация / Memoization](https://github.com/HowProgrammingWorks/Memoization) |
| 117 | +- [Примесь / Mixin](https://github.com/HowProgrammingWorks/Mixin) |
| 118 | + - Добавление свойств, методов или поведения к объекту после его инстанциирования (создания) |
| 119 | +- Декоратор / Decorator |
| 120 | +- [Наследование / Inheritance](https://github.com/HowProgrammingWorks/Function) |
| 121 | +- Множественное наследование / Multiple Inheritance |
| 122 | +- Непрямое наследование / Indirect Inheritance |
| 123 | +- [Генератор / Generator](https://github.com/HowProgrammingWorks/Generator) |
| 124 | +- [Синхронные операции](https://github.com/HowProgrammingWorks/AsynchronousProgramming) |
| 125 | +- [Асинхронные операции](https://github.com/HowProgrammingWorks/AsynchronousProgramming) |
| 126 | +- [Ввод/вывод / I/O, Input-output](https://github.com/HowProgrammingWorks/AsynchronousProgramming) |
| 127 | +- [EventEmitter](https://github.com/HowProgrammingWorks/EventEmitter) |
| 128 | +- [Чеининг / Chaining](https://github.com/HowProgrammingWorks/Chaining) |
| 129 | +- [Сериализация / Serialization](https://github.com/HowProgrammingWorks/Serialization) |
| 130 | +- [Десериализация / Deserialization](https://github.com/HowProgrammingWorks/Serialization) |
| 131 | +- Парсинг / Parsing |
| 132 | +- [Регулярные выражения / Regular Expressions](https://github.com/HowProgrammingWorks/RegExp) |
| 133 | +- [Модуль, модульность](https://github.com/HowProgrammingWorks/Modularity) |
| 134 | +- [Зависимость / Dependency](https://github.com/HowProgrammingWorks/Project) |
| 135 | +- [Линтер / Linter](https://github.com/HowProgrammingWorks/Tools) |
| 136 | +- Декомпозиция / Decomposition |
| 137 | +- [Ленивость / Lazy](https://github.com/HowProgrammingWorks/Lazy) |
| 138 | +- [Прокси / Proxy](https://github.com/HowProgrammingWorks/Proxy) |
| 139 | +- [Символ / Symbol](https://github.com/HowProgrammingWorks/Symbol) |
| 140 | +- [Обработка ошибок / Error handling](https://github.com/HowProgrammingWorks/Errors) |
| 141 | +- [Сборка мусора / Garbage Collection](https://github.com/HowProgrammingWorks/GarbageCollection) |
| 142 | + |
| 143 | +## Расширенные понятия |
| 144 | + |
| 145 | +- Неизменяемые данные / Immutable Data |
| 146 | +- Изменяемые данные / Mutable Data |
| 147 | +- Интроспекция / Introspection |
| 148 | +- Рефлексия / Reflection |
| 149 | +- Скаффолдинг / Scaffolding |
| 150 | +- [Инверсия управления / IoC, Inversion of Control](https://github.com/HowProgrammingWorks/InversionOfControl) |
| 151 | +- [Внедрение зависимостей / DI, Dependency Injection](https://github.com/HowProgrammingWorks/DependencyInjection) |
| 152 | +- [Межпроцессовое взаимодействие / IPC, Interprocess Communication](https://github.com/HowProgrammingWorks/InterProcessCommunication) |
| 153 | +- [Песочница / Sandbox](https://github.com/HowProgrammingWorks/Sandboxes) |
| 154 | +- Архитектура / Architecture |
| 155 | +- Слой доступа к данным / Data Access Layer |
| 156 | +- Курсор / Cursor |
| 157 | +- Объектно-реляционное отображение / ORM, Object-relational Mapping |
| 158 | +- Сервер приложений / Application Server |
| 159 | +- Тонкий клиент |
| 160 | +- Толстый клиент |
| 161 | +- [Проекция данных / Projection](https://github.com/HowProgrammingWorks/Projection) |
| 162 | +- [Измерение производительности / Benchmarking](https://github.com/HowProgrammingWorks/Benchmark) |
| 163 | +- [Интерфейс командной строки / CLI, Command Line Interface and Console](https://github.com/HowProgrammingWorks/CommandLine) |
| 164 | +- [Мониторинг файловой системы / File System Watching](https://github.com/HowProgrammingWorks/Files) |
| 165 | +- Метаданные |
| 166 | +- Протокол |
| 167 | + |
| 168 | +## Парадигмы программирования |
| 169 | + |
| 170 | +- [Императивное программирование / Imperative Programming](https://github.com/HowProgrammingWorks/ImperativeProgramming) |
| 171 | + - Неструктурное программирование / Non-structured |
| 172 | + - Структурное программирование / Structured Programming |
| 173 | + - Процедурное программирование / Procedural Programming |
| 174 | + - [Object-oriented programming](https://github.com/HowProgrammingWorks/ObjectOrientedProgramming) |
| 175 | + - [Prototype-oriented programming](https://github.com/HowProgrammingWorks/PrototypeOrientedProgramming) |
| 176 | +- [Функциональное программирование / Functional Programming](https://github.com/HowProgrammingWorks/FunctionalProgramming) |
| 177 | +- [Логическое программирование / Logical Programming] |
| 178 | +- [Декларативное программирование / Declarative Programming] |
| 179 | +- [Программирование управляемое данными / Data-driven Programming](https://github.com/HowProgrammingWorks/DataDrivenProgramming) |
| 180 | +- Техники программирования |
| 181 | + - [Асинхронное программирование / Asynchronous Programming] |
| 182 | + - [Реактивное программирование / Reactive Programming] |
| 183 | +- [Событийное программирование / Event-driven Programming](https://github.com/HowProgrammingWorks/EventDrivenProgramming) |
| 184 | +- [Метапрограммирование / Metaprogramming](https://github.com/HowProgrammingWorks/Metaprogramming) |
0 commit comments