Проблема с нами, разработчиками, заключается в том, что мы находимся под постоянным давлением, чтобы делать вещи быстро. Это то, что, по крайней мере, происходит со мной и большинством моих друзей-разработчиков в отрасли. Делая это быстро, мы почти забываем все хорошие практики и принципы кодирования, но где-то глубоко внутри мы чувствуем, что сделали что-то не так в нашей работе. Я также заметил, что очень хорошие разработчики никогда не идут на компромисс в отношении этих принципов, чего бы это ни стоило. Они поймут, что нужно делать, даже если у них много ограничений. Так почему мы должны оставаться позади?

С этого поста я планирую начать серию, в которой объясню все практики чистого кода. Это поможет нам быть очень довольными нашей работой. В этом посте я расскажу о принципе единой ответственности. Это первый принцип 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/