О SOLID

Привет!

Если вы думали, что пора бы основательно разобраться с SOLID, - вы попали куда надо! Если же впервые слышите о нём - вам тоже сюда.

Цель нашего проекта - дать максимально полную картину и развеять неопределённость при изучении SOLID. А также после прохождения материала вы сможете ответить на вопрос: "Когда использовать SOLID" и нужно ли его вам использовать вообще.

Во время прохождения курса мы будем не только обсуждать теорию, рассматривать схемки и примеры, но и проверять знания на практике. Для этого у нас есть блоки с практическими заданиями, где вам нужно будет отредактировать или написать свой код в соответствии с принципами SOLID.

Ну а это вводный урок по SOLID. Из него вы узнаете, что такое SOLID и для чего он нужен. А ещё кто его придумал и почему о нём все знают.


Итак SOLID

SOLID компоненты
SOLID компоненты

SOLID - это аббревиатура, каждая буква которой отражает принцип. Взять, например, первую...

SRP (Single Responsibility Principle) - принцип, который призывает разделять ответственности ваших классов, модулей и в целом кода. Это часто помогает облегчать поиск багов, рефакторинг и много чего ещё.

Подробнее мы рассмотрим его в отдельной лекции. И помимо SRP есть ещё 4 других, которые также имеют свои преимущества в определённых ситуациях.

И вернее всего, к SOLID нужно относиться как к инструменту. Он не всегда применим, но знать о его существовании и вовремя его достать - большое удовольствие!

Могу ли я использовать SOLID в своём стеке?

SOLID — не привязан к конкретным языкам или стекам технологий. Однако изначально создан для применения в объектно-ориентированном программировании, но основные идеи можно использовать в любом языке, даже функциональном или скриптовом.

Например, в JavaScript и PHP можно использовать принцип разделения ответственностей (SRP) и реализовать зависимость от абстракций. А на функциональных языках вроде Scala использовать принцип открытости/закрытости (OCP).

Так что, даже если вы не можете по каким-либо особенностям вашего стека использовать некоторые принципы - ничего страшного. Главное - понять саму суть и то, какими качествами должен обладать ваш код.


Кажется, здесь легко запутаться...

Да пожалуй, здесь легко потеряться, особенно из-за дублирования информации в открытых источниках, которая редко бывает полной и доступной.

Кстати, за такое продолжительное время, принципы эволюционировали и временами менялись, как и их формулировки. Так что нередко можно встретить один принцип, но увидеть разные его трактовки даже в книгах и статьях одного автора. (даже у Дядюшки Боба).

Мы же постараемся разобраться в самой сути, которая привела к формированию этих принципов.

Ну и, конечно, многие из принципов могут показаться неопределёнными и сложными... Например, что за высокоуровневые модули и почему они должны зависеть от абстракций в Dependency Inversion или кто есть актор в SRP? Не пугайтесь, это и многое другое мы обсудим, а главное, поймём, когда эти знания можно применить и какие у этого будут преимущества.

И помни, что SOLID - это не панацея, а скорее сладкая ситуативная конфетка от головной боли.


Дальнейший разбор принципов уже написан и будет опубликован в ближайшее время

Комментарии (0)