Edit key features pages

This commit is contained in:
Roman Mogylatov 2020-09-03 13:36:19 -04:00
parent f5758d842f
commit f32363d259
2 changed files with 24 additions and 49 deletions

View File

@ -3,66 +3,37 @@ Key features
.. meta:: .. meta::
:keywords: Python,DI,Dependency injection,IoC,Inversion of Control :keywords: Python,DI,Dependency injection,IoC,Inversion of Control
:description: This article describes key features of "Dependency Injector" :description: This article describes key features of the Dependency Injector
framework. It also provides some cases and recommendations framework.
about usage of "Dependency Injector" framework.
``Dependency Injector`` is a dependency injection framework for Python. It takes the
responsibility of assembling your objects.
``Dependency Injector`` is a dependency injection framework for Python. Key features of the ``Dependency Injector`` are:
It was designed to be a unified and developer-friendly tool that helps
implement a dependency injection design pattern in a formal, pretty, and - **Pythonic design**. Simple & explicit.
Pythonic way. - **High performance**. Written in ``Cython``.
- **Maturity and production readiness**. Downloaded over 200.000 times a month.
It stands on two principles: It stands on two principles:
- Explicit is better than implicit (PEP20). - **Explicit is better than implicit (PEP20)**.
- Do no magic to your code. - **Do not do any magic to your code**.
How does it different from the other frameworks? How is the ``Dependency Injector`` different from the other frameworks?
- **No autowiring.** The framework does NOT do any autowiring / autoresolving of the dependencies. You need to specify everything explicitly. Because *"Explicit is better than implicit" (PEP20)*. - **No autowiring.** The framework does NOT do any autowiring / autoresolving of the dependencies. You need to specify everything explicitly. Because *"Explicit is better than implicit" (PEP20)*.
- **Does not pollute your code.** Your application does NOT know and does NOT depend on the framework. No ``@inject`` decorators, annotations, patching or any other magic tricks. - **Does not pollute your code.** Your application does NOT know and does NOT depend on the framework. No ``@inject`` decorators, annotations, patching or any other magic tricks.
``Dependency Injector`` makes a simple contract with you: In addition ``Dependency Injector`` is:
- You tell the framework how to build you code - Tested.
- The framework does it for you - Documented.
- Supported.
- Semantically versioned.
- Distributed as pre-compiled wheels.
The power of the ``Dependency Injector`` is in its simplicity and straightforwardness. It is a simple tool for the powerful concept. The power of the ``Dependency Injector`` is in its straightforwardness. It is a simple tool for
the powerful concept.
The key features of the ``Dependency Injector`` framework are:
+ Easy, smart, and Pythonic style.
+ Does NOT pollute client code.
+ Obvious and clear structure.
+ Extensibility and flexibility.
+ High performance.
+ Memory efficiency.
+ Thread safety.
+ Documented.
+ Semantically versioned.
+ Distributed as pre-compiled wheels.
``Dependency Injector`` containers and providers are implemented as C extension
types using ``Cython``.
``Dependency Injector`` framework can be used in the different application types:
+ Web applications based on the ``Flask``, ``Django`` or any other web framework.
+ Asynchronous applications ``asyncio``, ``aiohttp``, ``Tornado``, or ``Twisted``.
+ Standalone frameworks and libraries.
+ GUI applications.
``Dependency Injector`` framework can be integrated on the different project
stages:
+ It can be used in the beginning of the development of a new application.
+ It can be integrated into application that is on its active development stage.
+ It can be used for refactoring of legacy application.
Components of ``Dependency Injector`` framework could be used:
+ In composition with each other.
+ Independently from each other.
.. disqus:: .. disqus::

View File

@ -7,6 +7,10 @@ that were made in every particular version.
From version 0.7.6 *Dependency Injector* framework strictly From version 0.7.6 *Dependency Injector* framework strictly
follows `Semantic versioning`_ follows `Semantic versioning`_
Development version
-------------------
- Update "Key Features" documentation page.
3.36.0 3.36.0
------ ------
- Update providers overriding documentation and rework examples. - Update providers overriding documentation and rework examples.