Context
System APIs are also designed to try and solve incompatible problems. For example, the following tasks are to provide an opportunity for detailed management of the system resource, and at the same time, to simplify the work with the resource for the developer. Such tasks / goals give rise, for example, the following systemic contradiction - the API should be minimal in order to be easy / safe / with a minimum number of errors to use, and at the same time, the API should be detailed in order to be usable maximum possibilities for managing system resources.
The last contradiction in the system API could be:
not allowed at all (this happens, for example, if the goal of development is to minimize the cost of system resources during code execution);
partially resolved (using, for example, several API levels or providing several / a number of system APIs adapted for their subtasks);
be resolved with the help of API development with additional adaptation libraries (for example, adapting to the capabilities of more powerful languages).
On the other hand, when developing ad hoc for a specific project (s), you can get development bonuses by adapting the system API (s) to the needs of this project and this development team.
For example, you can get the following benefits:
highlighting the most important part of the API for a given project;
highlighting several API levels (highlighting several levels of API detail) from the point of view of this project (in most cases, a developer can use the simplest API level and only in some cases use more complex and more detailed deep API levels);
integration of the system API with the existing infrastructure of the project;
hiding some of the actions with the system API from the developers of this project, due to the fact that for this project we know the correct default behavior with the system API;
due to the implementation by default of some standard operations that are uniform for a given project;
using the advantages of the infrastructure (languages, other libraries, integration tools, etc.) of this project to develop the system API in order to improve the quality of API use by the project developers;
etc.
Reception
API API / / , .
API API API.
, API, API. , API . code review API. API, , API , API .
, , . , code review. API, API.