mirror of
https://github.com/twirl/The-API-Book.git
synced 2025-01-23 17:53:04 +02:00
Уровни абстракции
This commit is contained in:
parent
58da4edc13
commit
1becd397e6
16
API.ru.html
16
API.ru.html
@ -129,7 +129,21 @@
|
||||
|
||||
<p>Перейдём теперь непосредственно к проектированию api.</p>
|
||||
|
||||
<h3></h3>
|
||||
<h3>Уровни абстракции</h3>
|
||||
|
||||
<p>"Разделите свой код на уровни абстракции" - пожалуй, самый общий совет для разработчиков программного обеспечения. Что под этим обычно подразумевается?</p>
|
||||
|
||||
<p>Вспомним, что программный продукт - это средство связи контекстов, средство преобразования терминов и операций одной предметной области в другую. Чем дальше друг от друга эти области отстоят - тем большее число промежуточных контекстов можно ввести. Например, модель OSI, которую часто приводят как эталон разделения уровней абстракции, насчитывает семь промежуточных этапов по дороге от аппаратного обеспечения к протоколам уровня приложений.</p>
|
||||
|
||||
<p>Если говорить о разделении уровней абстракции именно с точки зрения api, то оно очень желательно по нескольким причинам:</p>
|
||||
|
||||
<ul><li>Разделение проекта на несколько независимых частей; архитектура каждой из них, таким образом, становится проще, и упрощается интеграция;</li>
|
||||
<li>с помощью такого разделения гораздо легче добиваться кроссплатформенности путём отделения платформо-зависимой логики в отдельный уровень (или уровни) абстракции.</li></ul>
|
||||
<p>И главное:</p>
|
||||
<ul><li>Упрощается задача для ваших клиентов; правильно разделённые уровни абстракции означают, что разработчикам не придется разбираться со всей номенклатурой сущностей вашего api - им достаточно будет работать только с объектами высокого уровня, отвечающими непосредственно за решение их задач.</li></ul>
|
||||
|
||||
<p>Если мы вернёмся к нашему примеру с погодным api, то увидим, что один уровень абстракции выделился автоматически: http api. Мы можем построить прочие виды api поверх базового http. Можем ли мы выделить ещё какие-то уровни, скажем, внутри самого http api?</p>
|
||||
|
||||
|
||||
<!--
|
||||
<h2>О проектировании API</h2>
|
||||
|
Loading…
x
Reference in New Issue
Block a user