Чистый код Базовые принципы на примерах
Содержание
Все программы состоят из очень похожих элементов, а все задачи программирования сводятся к работе с ограниченным набором действий. Многие из этих действий могут быть описаны в одних и тех же терминах, например, извлечение элемента из коллекции. В подобных ситуациях правильно инкапсулировать реализацию в более абстрактном классе.
Третьей проблемой было то, что эти функции были крайне непредсказуемыми. Недописанный или некорректно работающий код всегда нужно комментировать, используя соответственно одно из двух ключевых слов «TODO» или «FIXME». В таком случае программист будет сразу понимать, что код не готов и его нужно дописывать. Также часто разработчики комментируют функции или части кода, чтобы когда-то к ним вернуться, и это переходит из ветки в ветку.
Префикс I, столь распространенный в старом коде, в лучшем случае отвлекает, а в худшем — передает лишнюю информацию. Я не собираюсь сообщать своим пользователям, что они имеют дело с интерфейсом. Прочитав имя функции и код внутри нее, мы и без комментариев понимаем, что она делает.
Не больше двух переменных экземпляра (instance variable) на класс
С оператором switch связано много спорных решений. Функция с ним по определению не может выполнять одну операцию, даже если switch содержит всего пару условий. Если обойтись без switch не получается, то можно опустить его в низкоуровневую логику приложения. Все описанные ниже примеры максимально упрощены и многие детали опущены для лучшего понимания. Можно считать это некоторым подобием псевдокода.
- Либо функция изменяет состояние объекта, либо возвращает информацию об этом объекте.
- Как написать успешное мотивационное письмо – читайте в нашей статье.
- Составьте список соглашений о кодировании, в которых вы обозначаете то, как переменные должны объявляться, соглашения об именах и т.
- Причиной этого может быть низкое качество кода, который просто не готов к изменениям.
- Ответить на данные вопросы можно разными способами, но если задуматься, все эти вещи – не что иное, как связующее звено между программистом и базовой логикой приложения.
Мой практический опыт научил меня (ценой многих проб и ошибок), что функции должны быть очень маленькими. Желательно, чтобы длина функции не превышала 20 строк. Перенесли логику displayOutput() в ее собственный метод. Таким образом, если нам нужно будет изменить вывод, нам как написать чистый код придется вносить изменения только в одном месте. На самом простом уровне это означает, что следует уменьшать количество дубликатов в коде. (Заметьте, я сказал «уменьшать», а не «полностью исключать», потому что в некоторых случаях дублирующийся код это не конец света!).
ЧТО ТАКОЕ ЧИСТЫЙ КОД?
Весь этот совет завершается листингом исходного кода в конце главы 3. Этот пример кода является предпочтительным рефакторингом Мартина класса Java, происходящего из опенсорсного инструмента тестирования FitNesse. Многие исходные файлы, я бы даже сказал, большинство исходных файлов, нельзя аккуратно иерархизировать таким образом.
Естественно, проблемы возникают из-за того, что эти буквы почти не отличаются от констант «1» и «0» соответственно. Не используйте слова со скрытыми значениями, отличными от предполагаемого. Остерегайтесь малозаметных различий в именах. Например, XYZControllerForEfficientHandlingOfStrings и XYZControllerForEfficientStorageOfStrings. Они осуществляют вычисления, но также и отображают результаты.
Название класса должно отображать его ответственность. И к ним также применяется принцип единой ответственности. Мартин говорит о том, что по отношению к классам, как и по отношению к функциям, важно применять принцип компактности.
«Чистый код» Роберт Мартин. Конспект. Как писать понятный и красивый код?
Отдавайте предпочтение ясности перед развлекательностью. Шутки можно приберечь для презентации, которая происходит «здесь и сейчас». Хороший код способен выйти далеко за границы вашей культуры.
Многие скажут, что об этом даже странно упоминать, но такое случается часто. Вероятно, это потому, что он работает в некоторых ситуациях, но, как правило, это антипаттерн, и команда разработчиков React рекомендует этого не делать. Реквизиты должны обновляться из родительского компонента, а состояние должно обновляться с помощью функций setState или set. Написание чистого кода обычно предпочтительнее, независимо от того, какую технологию мы используем. Это один из лучших способов упростить понимание кода без добавления таких вещей, как комментарии или документация. Чтение документации, следование передовым практикам и изучение чужого кода помогает мне улучшить читаемость кода.
Суть непрерывной интеграции в том, что она позволяет быстро получить множество отзывов о текущем состоянии кода. Это простой принцип для понимания и исполнения. По крайней мере два человека, включая автора кода, проверяют код. Очень важно разделять ответственность за качество между ее участниками. Чем больше команда, тем сложнее поддерживать продукт в хорошем состоянии.
Это общая практика, которая позволяет быстро пропускать области видимости, не относящиеся к текущей ситуации. Не поддавайтесь искушению нарушить правила расстановки отступов для коротких команд. Уже в 80-е годы считалось, что функция должна занимать не более одного экрана. Экраны VT100 состояли из 24 строк и 80 столбцов. В наши дни на экране можно разместить гораздо больше инфорфмации, но лучше ограничиться тем же объемом. Самоограничение позволяет видеть точку объявления каждой используемой переменной и держать в уме всю «историю», которую рассказывает функция.
Глава 2. Содержательные имена
Это, скорее всего, недостаток, который может привести к негативным последствиям в любой момент. Но не всегда и не везде стоит уделять чистоте слишком много внимания.Не стоит забывать о целесообразности и сроке жизни вашего кода. Высокое качество исполнения сделает переход или интеграцию с новыми частями более простыми, бесшовными и быстрыми. Оно наверняка упростит жизнь в тех случаях, когда несколько версий кода придется поддерживать одновременно.
Использование аргументов-флагов
Без каких-то жестких и быстрых решений алгоритмы будут работать более исправно. Несомненно, программирование – это тяжелая работа. Одно дело – изучать языки и алгоритмы, но это далеко от того, что называется создать работающее приложение, от вида кода которого не хочется выколоть глаза. Создание, анализ и рефакторинг» Роберт Мартин. Говоря коротко, программист с чувством кода — это художник, который может превратить пустой экран в изящное произведение искусства, которое запомнится на долгие годы. Блоки try-catch-finally в каком-то смысле определяют охват кода.
«Шесть советов по написанию более понятного программного кода», Джефф Вогел. Если будете знать, как работает библиотечная функция или конструкция языка, сможете ее оптимально использовать. https://deveducation.com/ Перед тем как начать писать функцию, вспомните, что она не должна делать много вещей одновременно. Разбейте ее на несколько, как разбиваете большую задачу на несколько маленьких подзадач.
Они стали постоянно выдавать одинаковый результат при одинаковом вводе. Кроме того, проблема с придумыванием названий для функций свелась к минимуму. В то же время какие-то вещи следует держать в голове. Использование понятных обозначений не означает, что мы должны использовать любое количество символов и слов при их создании.
Очень рекомендую ознакомиться как минимум с первыми двумя источниками из этой статьи. По возможности избегайте использование null в вашей бизнес-логике. Это создает лишнюю работу и проблемы на вызывающей стороне. Вместо кучи проверок на null лучше бросить исключение. В крайнем случае опускайте эту переменную на низкий уровень абстракции.
Leave a Reply
Want to join the discussion?Feel free to contribute!