Примечания О Стиле Кода

Довольно часто я сталкиваюсь с вопросом, касающимся качества кода: «Почему написано так, а не такЭ» И я каждый раз объясняю.

Именно поэтому я решил написать заметку с пояснениями.

Второй вопрос, который возникает: «Где ты научился так красиво писатьЭ» Ответ на который будет в конце статьи.




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

В таких случаях не следует пренебрегать использованием переносов строк и дополнительных символов пробела.

Вспомнился бородатый анекдот, основанный на реальных событиях:

Разработчик читает свой код, написанный: - сегодня: отличный современный крутой код! Я бы всегда так писал! - вчера: Итак, я остановился здесь.

Ага! - на прошлой неделе: что я там делал?.

- прошлый месяц: так где задание с описанием? - в прошлом году: у человека, написавшего этот код, были бы сломаны ноги!




Недавно наткнулся на вот такой кусок кода (чтобы не портить его внешний вид, вставлю изображение):

Примечания о стиле кода

О существовании шаблонов даже говорить не буду — скажу лишь, что ООП было придумано для уменьшения дублирования кода, но… Этот раздел очень трудно читать.

Вам предстоит прочитать каждое слово, чтобы понять, что в нем происходит и не пропустили ли вы что-нибудь.

Это связано с большим объёмом слов на достаточно маленькой площади и является проблемой.

Мы давно пережили времена нехватки дискового пространства и не стоит ценить лишние символы.

Это обычная экономия на спичках.

Зачем усложнять жизнь не только себе, но и тем, кто будет поддерживать этот код после вас? Плохо какать там, где ешь.




Помимо вставки дополнительных символов и разрывов строк, попробуйте разделить код на логические блоки.

Логический блок — это участок кода, состоящий из нескольких строк, объединенных каким-то общим признаком.

Например, возьмем следующий раздел:
  
   

$salaryFirstBaseEmployer = $employer->salaryBases->first()->salary_base; $salaryLastBaseEmployer = $employer->salaryBases->last()->salary_base; $begin = Carbon::parse('2020-05-01')->startOfMonth()->startOfDay(); $end = $begin->clone()->endOfMonth()->endOfDay(); $endMonth = $begin->clone()->endOfMonth(); $startPeriod = new CarbonPeriod($begin, $end); $endPeriod = new CarbonPeriod($begin, $end);

В нем мы видим непонятный массив текста, который можно разделить на логические блоки, что позволяет быстро понять его смысл, существенно сокращая время на его сопровождение:

$salaryFirstBaseEmployer = $employer->salaryBases->first()->salary_base; $salaryLastBaseEmployer = $employer->salaryBases->last()->salary_base; $begin = Carbon::parse('2020-05-01')->startOfMonth()->startOfDay(); $end = $begin->clone()->endOfMonth()->endOfDay(); $endMonth = $begin->clone()->endOfMonth(); $startPeriod = new CarbonPeriod($begin, $end); $endPeriod = new CarbonPeriod($begin, $end);



Заключение

Давным-давно мне дали хороший совет:
Всегда пишите код так, как будто его будет поддерживать нестабильный, жестокий маньяк-психопат, знающий, где вы живете.

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

P.S.: Уже несколько человек написали, в том числе сообщениями за пределами Хабра, что есть такие вещи, как PSR, автозаполнение кода, форматирование кода в IDE, cs-fixer и так далее.

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

P.S.2: Так получилось, что подавляющее большинство комментаторов ухватились за примеры в статье, забывая ее основной посыл.

В связи с этим я удалил все примеры, не несущие никакой смысловой нагрузки и значения для статьи как таковой.

Теги: #программирование #языки программирования #PL #чистый код #стиль программирования #стиль кода #стиль кода #почерк

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.