Проблема с нами, разработчиками, заключается в том, что мы находимся под постоянным давлением, чтобы делать вещи быстро. Это то, что, по крайней мере, происходит со мной и большинством моих друзей-разработчиков в отрасли. Делая это быстро, мы почти забываем все хорошие практики и принципы кодирования, но где-то глубоко внутри мы чувствуем, что сделали что-то не так в нашей работе. Я также заметил, что очень хорошие разработчики никогда не идут на компромисс в отношении этих принципов, чего бы это ни стоило. Они поймут, что нужно делать, даже если у них много ограничений. Так почему мы должны оставаться позади?
С этого поста я планирую начать серию, в которой объясню все практики чистого кода. Это поможет нам быть очень довольными нашей работой. В этом посте я расскажу о принципе единой ответственности. Это первый принцип SOLID. Принципы SOLID — это своего рода основа для написания чистого кода.
Так что же такое принцип единой ответственности (SRP)? SRP говорит, что ваши функции или классы должны делать только одну вещь, и они должны делать это очень хорошо.
Рассмотрим пример, который мы писали много раз в нашей жизни.
const addNumbers = (a, b) => { const c = a + b; console.log(c); }
Так в чем проблема с вышеуказанной функцией?
Приведенная выше функция складывает два числа и печатает результат. Он делает 2 вещи: - Добавление и запись в стандартный вывод, Явное нарушение SRP.
Итак, как мы можем улучшить приведенную выше функцию, чтобы она соответствовала SRP? Просто, просто создайте 2 функции. Первый добавит результаты, а второй распечатает их.
const addNumbers = (a, b) => { return a + b; } const printNumber = (num) => { console.log(num); }
Так какой смысл преодолевать трудности? Предположим, у вас есть функция, которая умножает 2 числа. Теперь в первом случае, если бы вы хотели это сделать, вы бы написали код, как показано ниже: -
const addNumbers = (a, b) => { const c = a + b; console.log(c); } const multiplyNumbers = (a, b) => { const c = a * b; console.log(c); }
Недостатком в приведенном выше случае является то, что вы пишете логику логирования 2 раза. В нашем примере это просто инструкция console.log, но она не работает, если у вас довольно сложная логика. Теперь рассмотрим случай, когда мы разделили нашу функцию printNumber, в этом случае наш пример кода будет выглядеть так, как показано ниже.
const addNumbers = (a, b) => { return a + b; } const multiplyNumbers = (a, b) => { return a * b; } const printNumber = (num) => { console.log(num); }
И волшебство!!!! так как нет повторения логики печати, мы сэкономили много проблем в будущем.
Так что надеюсь, вы получили некоторое представление о SRP. Если у вас есть какие-либо предложения, не стесняйтесь добавлять их в комментариях ниже. Пожалуйста, хлопайте, если вам понравился материал. Вы можете прочитать больше моих блогов на моем сайте https://blog.csschool.io/