Пишу сюда впервые и вы это читаете! Это означает, что мне понравилось, и будет больше контента, или мне не понравилось, и я не мог вычистить это из Интернета, потому что Интернет никогда не забывает.

Если вы знакомы с религией (христианством или даже пастафарианством), то вы, вероятно, знакомы с Заповедями. Знаешь, ты не должен…

Я хотел бы представить свой собственный, и вы можете запомнить его, используя слово «DipShit». Мои заповеди основаны на двух аббревиатурах, которые должен знать каждый программист (DRY и SOLID). Если вы попробуете их использовать, я могу гарантировать, что ваш код станет лучше! Так что же они?

  1. Вы не должны повторяться.
  2. Вы должны нести единую ответственность.

Вы не должны повторяться.

Давайте поговорим о первом, Не повторяйтесь!

Мне нравится думать, что единственная причина, по которой мы можем программировать, заключается в том, что мы не хотим повторяться. Думаю об этом. Вы читаете это в Интернете на каком-то устройстве. Устройство и Интернет — сложные вещи, и я рад, что мне не нужно перепрограммировать Интернет каждый раз, когда я создаю новое веб-приложение. Та же логика применяется в программировании, это причина существования фреймворков и пакетов. Я не хочу писать свой собственный JSON-парсер каждый раз, когда мне нужно его использовать. Давайте попробуем применить эту логику на примере.

Функция выше увеличит ввод на 5, но что мы видим? Строки со 2 по 6 повторяются, и первая заповедь — не повторяться. Итак, давайте попробуем, если мы можем удалить его, и мы можем! Мы можем удалить эти строки, увеличив число не на 1, а на 5

ПРИМЕЧАНИЕ. В некоторых случаях можно удалить повторяющийся код, но это ухудшит читабельность. Если это произойдет, НЕ удаляйте его, потому что код создан для людей!

Вы должны нести единую ответственность.

Возможно, вы знакомы с SOLID (если нет, не волнуйтесь, OLID сейчас не важен), и вы знаете, что S означает SRP, а это означает принцип единой ответственности. Но что мы имеем в виду?

Это означает, что все в вашем коде должно быть только одним.

Глупый пример, что вы думаете о пожарном, доставляющем почту?

Я думаю, это странно. Если этот человек боится пожаров, то почта не будет доставлена ​​и наоборот. Было бы лучше иметь специального почтальона, доставляющего почту, и пожарного, тушащего пожары, и у нас это есть в реальной жизни.

Давайте попробуем применить это в коде!

Вышеупомянутая функция имеет 2 функции: запрос молока и запрос печенья. Это странно. Почему они должны быть в одной функции? Они не должны быть в одной и той же функции!

ПРИМЕЧАНИЕ. Если вы называете свои функции с их точным поведением и в нем есть «и», это может быть признаком того, что они не должны быть в одной и той же функции.

После разделения это выглядит так:

Теперь есть 2 короткие функции, и сложность снижена, потому что обе они имеют только один оператор if.

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

Заключение

Примеры здесь действительно просты намеренно. Попробуйте применить мои 2 заповеди в следующий раз, когда вам нужно будет что-то запрограммировать. Это облегчит понимание кода и его модульное тестирование!