Публикации по теме 'code-smells'
Kotlin Code Smell 20 — Настройки/Конфигурации
Изменение поведения системы на плате управления может быть мечтой заказчика, но может стать кошмаром для инженера-программиста.
Проблема
Дублированный код Если загрязнение Глобальное использование "Связь" Тестируемость и бурный рост сценариев тестирования Сложность
Решение
Избегайте прямого использования настроек Создавайте полиморфные объекты и внедряйте их извне.
Образец кода
Неправильный
class VerySpecificAndSmallObjectThatDealWithPersistence {
fun..
Code Smell 105 — Комедийные методы
Используйте профессиональные и значимые имена
TL;DR: не будьте неформальными или оскорбительными
Проблемы
Читабельность Непрофессиональная работа
Решения
1. Выбирайте хорошие и профессиональные имена.
Контекст
Наша профессия имеет творческую сторону.
Иногда нам становится скучно, и мы пытаемся быть забавными.
Образец кода
Неправильный
function erradicateAndMurderAllCustomers();
//unprofessional and offensive
Верно
function deleteAllCustomers();
//more..
Код пахнет с примерами :
Работая в Thoughtworks, я познакомился с концепцией Code Smells. Я нашел эту концепцию очень интересной и начал читать о ней больше. Меня больше интересовало, почему запахи кода вызывают проблемы.
В этой серии сообщений в блоге я планирую поделиться своим пониманием различных типов запахов кода, почему именно мы должны их рефакторить, какие более глубокие проблемы связаны с каждым запахом кода и как их реорганизовать на примере.
Что такое запах кода?
Этот термин был впервые введен..
Code Smell 133 — Жестко закодированные условия IF
Жесткое кодирование — это нормально. Ненадолго
TL;DR: не оставляйте жестко запрограммированный беспорядок в IF.
Проблемы
Тестируемость Жестко закодированные значения Нарушение открытого/закрытого принципа
Решения
Замените все ЕСЛИ динамическим условием или полиморфизмом .
Контекст
Жесткое кодирование условий iF отлично подходит для разработки через тестирование .
Нам нужно убрать вещи.
Образец кода
Неправильный
private string FindCountryName..
Код Запах 179 — Известные ошибки
В каждом программном обеспечении есть список известных ошибок. Почему?
TL;DR: не отслеживайте ошибки. Исправьте их.
Проблемы
Трудно отслеживаемые списки Технический долг Функциональный долг
Решения
Хватит называть это ошибкой Воспроизведите Дефект . Покройте сценарий автоматизацией Сделайте самое простое исправление (даже решения с жестким кодированием) Рефакторинг
Добро пожаловать в ТДД!
Контекст
Мы не любим, когда нас прерывают.
Затем мы создаем..
Код Запах 157 — Баланс на 0
Сегодня я ожидал платежа в своем кошельке. Баланс был 0. Я запаниковал.
TL;DR: Null не равно 0. Error не равно 0. просто 0 равно 0.
Проблемы
Нули UX Удобство использования
Решения
Сделайте четкое различие между нулем и ошибкой.
Контекст
Я много читал о проблемах безопасности.
Особенно на крипте.
На прошлой неделе я прочитал о треде о взломе криптовалюты .
Когда мой кошелек показал мне 0 в качестве баланса, я запаниковал.
Это был просто запах UX...
Код Запах 118 — Возврат False
Неудобно проверять, возвращает ли логическое условие логическое значение
TL;DR: не возвращайте явные логические значения. Большинство логических значений — это запахи кода.
Проблемы
декларативность Код ниндзя Внедряющие решения
Решения
Верните логическое предложение вместо проверки отрицания. Ответ должен быть формулой бизнес-логики, а не алгоритмом.
Контекст
При работе с булевыми формулами более читабельно показать бизнес-логическую формулу, чем вводить..