Код, который рассказывает историю, или снова о чистоте кода

clean code

Эйнштейн однажды сказал:

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

Я совершенно уверен, что мистер Эйнштейн не написал при жизни ни строчки кода, однако, для таких людей, как я (а возможно и как вы), которые пишут и видят много кода, эти слова звучат так, как будто были написаны про разработчиков ПО.

Существует целый вагон и маленькая тележка книг, рассказывающих нам о важности чистоты кода. Еще больше статей, видео, конференций и людей, говорящих нам о том же самом. Но по какой-то причине — этого не достаточно!

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

Я знаю, что не решу проблему написанием очередной статьи, но я не могу промолчать! Я просто надеюсь, что кто-нибудь прочитает это, и исправится. Хотя бы на какое-то время. Хотя бы на день… Кто знает, возможно эта статья изменит хоть что-нибудь.

Почему люди говорят о чистоте кода.

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

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

Чем сложнее понять ваш код — тем проще будет допустить в нем ошибку людям, которые будут работать с кодом после вас. Программисты просто будут бояться его, они не будут изменять и улучшать такой код, так что он будет “подгнивать” и становиться все хуже и хуже. То, что начиналось как один запутанный участок кода, съест вашу систему изнутри, строчку за строчкой.

Чистота кода защитит вас от таких проблем.

Мой код так же плох, как и у моего соседа

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

Но проходят годы, и я определено становлюсь лучше. Каждый раз, когда я сижу перед редактором, я стараюсь писать код, который рассказывает историю. Мне хочется, чтобы люди читали его, и наслаждались им так же, как я! Скорее всего, когда они будут его читать, меня рядом не будет, и я очень стараюсь писать так, чтобы им было легко его понять.

И я (так же, как и вы) могу писать лучше! Я должен писать лучше, если хочу расти как программист. В какой-то момент становится важно не то, сколько вы знаете, а то, как вы применяете свои знания. Думаю, для меня такой момент настал.

Если вам не все равно

Вы когда-нибудь слышали эту цитату:

Любой дурак может писать код который поймет компьютер. Хорошие программисты пишут код, который понимают люди.

Это сказал Martin Fowler, а он очень умный парень, так что запомните…

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

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

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

Если вы не знаете, как программировать лучше.

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

Если бы у меня было больше времени — я бы написал короче.

Эта цитата принадлежит Блезу Паскалю, который написал ее в 1656 году. Быть кратким при записи чего-либо занимает больше времени. Не менее трудно писать, чистый и понятный код.

Но все усилия того стоят!

Как я замечал выше, я всегда стараюсь писать код, который рассказывает историю. Я хочу, чтобы читая мой код, люди отлично понимали что, зачем, когда и как происходит. И каждый раз, оглядываясь на свой код, если я что то не могу сразу понять — я рефакторю это.

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

В процессе написания кода я особо выделяю такое понятие как “Уровни сложности”. Люди, читающие мой код впервые, как правило просто хотят узнать, что он делает. Это первый уровень, где я пытаюсь писать максимально “человеческий” код. Если кому-то нужно больше — он начинает копать глубже, на подуровни, где более детальный, низкоуровневый код. Чем глубже вы копаете — тем более сложный код видите.

Ну и я не могу закончить этот пост, не порекомендовав вам книгу: Рефакторинг. Улучшение существующего кода [rus] (Цена на озоне, конечно, космос просто — прим.пер.). Читайте ее! Читайте снова и снова! Эта книга сделает ваш код значительно лучше!

Надеюсь, я хоть кого-то вдохновил.

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

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

Сделайте это, посмотрите на свой код, одну строчку за раз!

Оригинал статьи на английском языке >>

Не забудьте поделиться статьей с друзьями

Подписывайтесь на меня в соц. сетях

Комментарии (2)

  1. Питончик комментирует :

    24.04.2015

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

    Не слишклм ли, блин, категорично?

    1. seyfer комментирует :

      05.06.2015

      По моему в самый раз

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *