Code Smell 238 — Работа с запутанным кодом
23 января 2024 г.Вы выполняете код. Перейдите к остальным материалам и продолжите работу с предыдущим кодом
<блок-цитата>TL;DR: не путайте ход мыслей
Проблемы
- Удобочитаемость
- Неверное определение области действия.
Решения
- Расположите код ближе друг к другу
- Попробуйте извлечь метод ол>
- [x] Полуавтоматический
- Удобочитаемость
- [x] Новичок
Рефакторинг
Рефакторинг 002 — метод извлечения
Контекст
Запутанный код связан вне времени и пространства.
Вы читаете код, затем переходите к другой теме и возвращаетесь к первой.
Пример кода
Неверно
def planetary_properties(semi_major_axis,
incoming_radiation, reflected_radiation):
Gravitational_Constant = 1.0
Sun_Mass = 1.0
# Up to here, there's a preparation
# for the orbital period computation
albedo = reflected_radiation / incoming_radiation
# This is unrelated to the previous computation
# You resume the first computation
orbital_period_squared = (
(4 * math.pi**2 * semi_major_axis**3) /
(Gravitational_Constant * Sun_Mass)
)
retrun orbital_period, albedo
Верно
def planetary_properties(semi_major_axis,
incoming_radiation, reflected_radiation):
Gravitational_Constant = 1.0
Sun_Mass = 1.0
orbital_period_squared = (
(4 * math.pi**2 * semi_major_axis**3) /
(Gravitational_Constant * Sun_Mass)
)
# This is related to the first computation part
albedo = reflected_radiation / incoming_radiation
# This is related to the second part
# The final solution is to break the function into two
# This is a trivial example for illustration purposes
# Things usually get more complicated and entangled
retrun orbital_period, albedo
Обнаружение
Некоторые линтеры могут определять области действия и вносить предложения.
Теги
Уровень
ИИ-помощники
Помощники с искусственным интеллектом подсказывают код без этой ошибки и исправляют ее, когда об этом просят.
Заключение
Это небольшой совет и краткий пример наведения порядка< /п>
Отношения
Код Smell 107 — повторное использование переменных< /п>
Отказ от ответственности
Запахи кода — это мои мнение.
Кредиты
Фото Майкла Хэмментса на Unsplash
<блок-цитата>
Отладка в два раза сложнее, чем написание кода. Поэтому, если вы пишете код как можно умнее, вы по определению недостаточно умны, чтобы его отлаживать.
Брайан Керниган
Великие цитаты о программной инженерии
:::совет Эта статья является частью серии CodeSmell: Как найти «Вонючие» части вашего кода
:::
Оригинал