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

Характеристики чистого кода

  1. Ваш код должен быть элегантным. Это должно быть не только легко читать, но и доставлять читателю удовольствие от чтения. Это должно быть приятно.
  2. Ваш код должен быть сфокусирован. Каждая функция, класс или что-то еще — они должны фокусироваться на одной и только одной цели. Не складывайте все вместе.
  3. Чистые коды испорчены. И под избалованными я подразумеваю, что о них хорошо заботятся. Кому-то нужно уделить большое внимание деталям в коде и сделать его настолько простым, насколько это возможно.
  4. Чистые коды должны запускать все тесты.
  5. Реализует D.R.Y — дубликаты не допускаются!
  6. Имеет минимальное количество сущностей.

Написание чистого кода — наша реализация!

Итак, теперь, когда вы знаете, что такое чистый код, вот несколько шагов, чтобы вы также могли реализовать его в своем коде!

  • Используйте осмысленные имена

Как вы можете видеть выше, есть три функции, которые показывают три разные ошибки. Вместо того, чтобы называть ее просто «ошибка1», «ошибка2», «ошибка3», я позаботился о том, чтобы назвать все функции одинаково, а также не требующими пояснений. Таким образом, любой, кто взглянет на мой код, сразу поймет, для чего нужны эти функции, без необходимости глубоко копаться в функциях. Я также разделил их на три разных метода, поэтому каждый из них очень сосредоточен на выполнении одной вещи.

Убедитесь, что вы также последовательны в выборе названия. Не используйте разные слова, чтобы объяснить одну вещь. Скажем, в одной части кода вы бы сказали getName(), а затем через несколько строк после того, как вы сказали бы fetchAddress(). Это не униформа. Это вызывает много путаницы у читателей.

  • Правила функций

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

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

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

  • Объект и структуры данных

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

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

Много работать! Изучить хорошо!