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

Форматирование

«Форматирование кода - это общение, а общение - это первоочередная задача профессионального разработчика». - Роберт С. Мартин

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

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

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

Не существует «лучшего» стиля, которому все должны следовать. На самом деле лучший стиль - это последовательный стиль. Если вы являетесь частью команды или вносите код в проект, вы должны следовать существующему стилю, который используется в этом проекте.

Комментирование

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

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

Код меняется и развивается со временем, а комментарии - нет. Они сидят и застаиваются, и это становится проблемой. Хорошо используйте комментарии и следите за их обновлением.

Дублирование кода

Очень распространенная ошибка новичков в программировании - это дублирование кода без использования базовых программных конструкций для упрощения рабочего процесса. Когда дело доходит до дублирования кода, вы должны помнить о принципе DRY, также известном как DIE.

СУХОЙ - Не повторяйся.

DIE - Дублирование - это зло.

Принцип гласит:

«Каждая часть знания должна иметь единственное, недвусмысленное и авторитетное представление в системе».

Назначение большинства приложений (или компьютеров в целом) - автоматизировать повторяющиеся задачи. Этот принцип следует поддерживать во всем коде. Один и тот же фрагмент кода не следует повторять снова и снова.

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

Функции

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

Есть только два золотых правила для написания чистых функций:

· Они должны быть небольшими

· Они должны делать только одно и делать это хорошо

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

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

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

Соглашения об именах

Очень важная, но часто недооцененная черта хороших разработчиков - уметь правильно называть переменные, функции и классы. Нет, «temp1», «abc» и «function2» не являются хорошими примерами хороших соглашений об именах. Независимо от того, насколько редко используется переменная, не используйте ее как оправдание, чтобы не придумать хорошее название, которое правильно описывает ее использование.

Имя функции должно описывать то, что она делает, а не то, как она это делает. Например, функция, которая принимает имя пользователя, чтобы проверить, существует ли пользователь в базе данных, должна называться «checkIfUserExists ()», а не «checkSQLUser ()», потому что базовый код может измениться для использования другой базы данных, но функция функции (простите меня) останется прежним.

Соглашения об именах также зависят от используемого вами языка программирования. Например, JavaScript, как и его название, основан на верблюжьем регистре, таком как «addThenMultiply». CSS полагается на нижний регистр с дефисами. Используйте соглашения об именах, подходящие для вашего языка и принятые вашей командой.

Организация файлов и папок

Убедитесь, что ваши файлы чистые и имеют правильные названия. Не объединяйте несвязанные группы кода вместе и не останавливайтесь на достигнутом. И не забудьте сгруппировать связанные файлы в соответствующие папки с именами. Например, если вы используете парадигму MVC, это будет означать группировку всех представлений вместе, моделей в отдельной папке и контроллеров в еще одной папке.

Ограничьте длину линии и избегайте глубокого вложения

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

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