Правильное понимание Single Responsibility Principle (SRP) в Dart/Flutter SRP оказался самым сложным принципом из всех SOLID принципов в понимании и как в следствии неправильное применение в кодировании. Множество разработчиков уровня junior / middle, которых я собеседовал на позицию Flutter разработчика давали ответ, что SRP - это принцип единой отвественности. Это конечно правильный ответ согласно книги Роберта Мартина "Чистая архитектура". Но мне хотелось услышать как понимает этот принцип наш кандидат в разработчики. Ведь от этого зависит расширяемость и простота читаемости нашего проекта, ведь мы расширяем команду и хотелось бы чтоб мы писали код в единой концепции. В большинстве случаев разработчики понимают этот принцип, как класс, который он создал должен содержать только один метод. И всё что мы написали в этом методе, несёт единственную ответственность, ведь он решает одну задачу. И на этом кандидат заканчивает свою мысль. Ну что же, неплохо, но и не совсем правильно. Да, такой принцип тоже есть, но он применяется на низшем уровне системы. Действительно для удобства чтения не надо всё сваливать в один метод. Практичнее будет если мы каждому методу разрешим делать что то одно и название этого метода будет понятно другому разработчику, что делает этот метод. SRP же применяется на среднем уровне программы. В общем, я делаю вывод что кандидат не читал книгу "Чистая архитектура", либо это делал очень невнимательно... SRP это про другое! Сам Роберт Мартин столкнулся с такой же проблемой, неправильное понимание того, что он имел ввиду под SRP и попробовал её решить, написав другое определение и разъяснение к нему. Давайте почитаем! Читать далее https://habr.com/ru/articles/784528/?utm_source=habrahabr&utm_medium=rss&utm_campaign=784528
SRP vs. SLAP: как не перепутать? Когда только знакомишься с принципами чистого кода, SRP и SLAP легко перепутать. Оба про порядок и ясность. Но всё же это разные вещи. Давайте разберёмся. SRP — Один класс, одна задача Single Responsibility Principle (SRP) говорит: у класса должна быть только одна причина для изменения. То есть один класс — одна задача. Если ваш класс отвечает и за логику отображения, и за работу с базой, то рано или поздно будет беда. Разделяйте обязанности! SLAP — Один уровень абстракции на метод Single Level of Abstraction Principle (SLAP) про методы: не мешайте высокий и низкий уровни абстракции в одном месте. Например, если метод сначала вызывает сторонний сервис, потом парсит данные, а потом ещё что-то форматирует — это три разных уровня. Лучше разбить такой метод на три, где каждый будет заниматься своим делом. Запомнить можно так: SRP наводит порядок среди классов, SLAP — среди строк. Первый помогает избежать «многостаночников», второй — «спагетти-кода». @kodbaza ⚫ #cleancode #srp #slap