Уровень абстракции (программирование): различия между версиями

обновление
(→‎Примеры: стилевые правки)
(обновление)
</ref>
это часто неверно цитируется с заменой «окольного пути» на «абстракцию». Продолжение от Кевлина Хенни гласит «…за исключением проблем с большим уровнем косвенности.»
 
=== [https://github.com/HowProgrammingWorks/AbstractionLayers/tree/master/JavaScript Cлои Абстракций / Abstraction Layer] в JavaScript ===
Абстракция - обобщенное решение задачи, которое в отличие от конкретного решения, подходит для широкого круга задач.
 
Примеры абстракций: алгоритмы, массивы, дерево, сокет, файлы и т. д. - все что связано с многозадачностью. Почти все в JavaScript является абстракцией.
 
Абстракция делиться на слои.
 
На примере <code>[https://github.com/HowProgrammingWorks/AbstractionLayers/blob/master/JavaScript/badServer.js badServer.js]</code> просматриваются разные смешанные слоя абстракции и можно заметить такие функциональные блоки:
# Слой доступа к данным (в этом примере - работы с файловой системой)
# Парсинг, сериализация и десериализация
# Сервер HTTP 3.1. Кеширование ответов 3.2. Работа с Cookie 3.3. Склеивание буфера 3.4. Логирование вызовов 3.5. Маршрутизация обработки запросов
# Бизнес-логика, относящаяся к предметной области
# Управление зависимостями
# Конфигурирование (например, порт и хост)
# Подстановка переменных в шаблоны
На этом же примере видно, что структура кода очень важна. Лучше не смешивать разные слоя абстракции и не сцеплять функциональные блоки, так как код становиться однородным.
 
На примере <code>[https://github.com/HowProgrammingWorks/AbstractionLayers/blob/master/JavaScript/goodServer.js goodServer.js]</code> мы можем увидеть преимущество расслоения и грамотное проектирование структуры кода.Такой код более читабельный и занимает меньше места, его проще поддерживать и расширять.
 
== Иерархия уровней ==
2

правки