Публикации по теме 'code-smells'
Kotlin Code Smell 017 — Нарушители шаблонов
TL;DR: Patterns are awesome, but with great powers comes great responsibility.
Проблемы
Над дизайном Читабельность
Решения
Измерьте компромисс использования шаблонов. Создавайте решения, основанные на реальных именах ( существенные ), а не на архитектурных (случайных). Выбирайте хорошие имена . Пользовательский метод MAPPER для нахождения биекций реальных сущностей.
Образец кода
Неправильный
Верно
Заключение
Выберите, когда применять шаблонное решение...
Код Smell 149 — Необязательная цепочка
Наш код стал более надежным и разборчивым. Но мы прячем NULL под ковер
TL;DR: избегайте нулей и неопределенных значений. Если вы избегаете их, вам никогда не понадобятся дополнительные параметры.
Проблемы
Нули ЕСЛИ ЗАГРЯЗНЕНИЕ
Решения
Удалить нули Сделка с неопределенным
Контекст
Optional Chaining , Options , Coalescence и многие другие решения помогают нам справиться с печально известными нулями.
Нет необходимости использовать их, когда наш код станет..
Рефакторинг 001 — Удалить сеттеры
Сеттеры нарушают неизменность и добавляют случайную связь
TL;DR: сделайте свои атрибуты приватными, чтобы способствовать изменчивости
Устраненные проблемы
Изменчивость setXXX() нарушает правильную политику именования, так как не существует на MAPPER . Случайное сцепление
Связанные запахи кода
Code Smell 28 — Setters Первое упражнение, которое делают младшие программисты. IDE, учебники и старшие разработчики продолжают обучать их этому..
Код Запаха 33 - Сокращения
Сокращение очень важно, чтобы мы выглядели умно и экономили память и разум.
Проблемы
Связь Плохое наименование Декларативность Двусмысленность Читаемость Преждевременная оптимизация
Запах кода 20 - Преждевременная оптимизация Для заблаговременного планирования нужен хрустальный шар, которого нет ни у одного разработчика. medium.com
Решения
Используйте осмысленные и декларативные имена.
Примеры
Именование..
Кодовый запах 96 - Мои объекты
Вы не владеете объектами.
TL; DR: не используйте my в качестве префикса имени .
Проблемы
Отсутствие контекста Bijection Fault
Решения
1. Удалите префикс « my» .
2. Измените на роль, предлагающую имя.
Контекст
В некоторых старых руководствах слово «мой» используется как ленивое имя. Это расплывчато и приводит к ошибкам в контексте.
Образец кода
Неправильный
Правильно
Обнаружение
[x] Автоматически
Мы можем указать нашим линтерам и статическим..