Найти тему
#ITGIRLSCHOOL

SOLID, KISS и DRY

В вакансиях часто можно встретить такие слова как SOLID, KISS и DRY (и их очень любят спрашивать работодатели на собеседованиях)

Это не какие-то заумные технологии (как могло бы показаться), а всего несколько принципов, которые программисты стараются использовать в своей работе.

1️⃣ KISS расшифровывается как Keep It Simple and Straightforward

Принцип KISS утверждает, что большинство систем работают лучше всего, если они остаются простыми, а не усложняются. Поэтому в области проектирования простота должна быть одной из ключевых целей, а ненужной сложности следует избегать. Особенно этот принцип будет полезен новичкам, потому что я даже по своим ученицам вижу порой склонность к излишнему переусложнению кода. Как будто людям не верится, что все может быть НАСТОЛЬКО просто))) Может! И именно к этому и надо стремиться 😉

2️⃣ DRY (Don’t repeat yourself) говорит о том, что надо как можно меньше повторяться (а лучше не повторяться вообще).

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

Не раз и не два получалось сократить код, скажем, с 1500 строк кода до 300 как раз благодаря этому подходу.

3️⃣ SOLID - это самый сложный принцип, а точнее даже 5 принципов. Они расшифровываются вот так:

• Single responsibility — принцип единственной ответственности

• Open-closed — принцип открытости / закрытости

• Liskov substitution — принцип подстановки Барбары Лисков

• Interface segregation — принцип разделения интерфейса

• Dependency inversion — принцип инверсии зависимостей

Каждый принцип сам по себе является целой идеологией и все они не зависят друг от друга. Но вместе они позволяют делать код более понимаемым, лучше описаным и поддерживаемым.

Его одним постом, конечно, не объять))

Но расскажу хотя бы про первый пункт - принцип единственной ответственности.

Оригинально это звучит так: A module should be responsible to one, and only one, actor.

Есть два варианта трактовок этой фразы:

📝 Первая встречается чаще всего: Модуль должен иметь только одну обязанность. Это говорит нам о том, что каждый блок кода должен иметь лишь одну ответственность: отвечать только за одну вещь (функциональность).

📝 Но есть еще один вариант, который ближе к оригиналу на английском. Все несколько хитрее.

В этом принципе речь идет о том, что изменения в каком-то куске кода (модуле) может запрашивать одна и только одна роль (или человек). А не так, что один пользователь просит сделать тетрис, другой морской бой, а третий говорит, что делайте что угодно, то только без игрушек. И программисты такие - а что в итоге делать-то? 🤷🏼‍♀️

И есть еще два принципа - мы их разберем в следующий раз 😉