> 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-принципы для frontend-разработки

![SOLID — мнемонический акроним.](https://39190370-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LQeEHunlKeh_8XlJvTd%2F-LQeGawsMnOoSwBNq_Xj%2F-LQeGcn7r2qDP6JP0OjE%2Fimage.png?alt=media\&token=1ab6a7b0-2715-495c-8579-ba772d7461ff)

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. Применимы не только к ООП, а к любой системе где есть структуры данных и функции.
