> For the complete documentation index, see [llms.txt](https://marchenko.gitbook.io/solid/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://marchenko.gitbook.io/solid/master.md).

# Вступление

![SOLID — мнемонический акроним.](/files/-LQeGcn7r2qDP6JP0OjE)

SOLID — мнемонический акроним придуманный Майклом Физерсом, для пяти принципов, названных Робертом Мартином (aka Uncle Bob). Эти принципы определяют как объединять данные и функции в классы и как сочетать такие классы друг с другом. Соблюдение SOLID способствует улучшению качества архитектуры вашего проекта. Но это не точно.

> This is a good principle, it is good advice, but it’s not a pure truth, nor is it a rule.
>
> Uncle Bob

Воспринимайте их как рекомендации, на которые стоит обратить внимание при разработке и помните:

{% hint style="info" %}
Любую проблему в ООП можно решить путем введения дополнительного уровня абстракций... Кроме проблемы переизбытка уровней абстракций.
{% endhint %}

SOLID будем рассматривать в контексте frontend (javascript, typescript), но применять их можно к любым программным системам (и не только, написанным в парадигме ООП).

### Кратко. Пять фактов о SOLID

1. Придуманы разными людьми в разные годы 20-го века.
2. Собраны вместе (из множества других принципов) Робертом Мартином к началу 00-х. И, не в том порядке что мы знаем. Первым в списке принципов был, кажется, DIP.
3. Переупорядочены в слово *SOLID* в 2004-м году Майклом Физерсом, падким на мнемонические акронимы.
4. Носят рекомендательный характер, и не требуют слепого следования.
5. Применимы не только к ООП, а к любой системе где есть структуры данных и функции.
