Публикации по теме 'code-smells'
Kotlin Code Smell 002 — «Функции слишком длинные»
TL;DR: Refactor and extract functions longer than 5–10 lines of code.
Проблемы
Низкая сплоченность Высокая связь Трудно читать Низкое повторное использование
Решения
Рефакторинг . Создайте небольшие объекты, решающие некоторые задачи, и выполните их модульное тестирование. Методы составления.
Примеры
Библиотеки
Образец кода
Неправильный
class ChessBoard() {
init {
placeOnBoard(whiteTower)
placeOnBoard(whiteKnight)
// All other..
Ваш код плохо пахнет?
Ваш код плохо пахнет?
Прежде чем мы перейдем к запаху кода, представьте имя любого из ваших коллег, которого вы хотите наказать за плохой код. Я предполагаю, что вы многое имеете в виду. Если бы у вашего коллеги было такое же наблюдение о вас, что бы тогда было? Поэтому, если вы хотите быть хорошим коллегой, вы также должны быть хорошим программистом.
Код Запах!!!
Запахи кода — это не ошибки программы. Ваша программа может работать идеально, даже если есть запахи кода. Они..
Kotlin Code Smells 010 — Null
TL;DR: Null does not exist in the real world. His creator regrets it, and
programmers around the world suffer from it. Don't be a part of it.
Программисты используют null для разных флагов. Это может указывать на отсутствие, неопределенное значение, ошибку и т. д. Множественная семантика приводит к связанности и ошибкам.
Проблемы
Связь между вызывающими и отправляющими. Несоответствие между вызывающими и отправляющими. if / when Загрязнение. Null не полиморфен реальным..
Вы все еще чувствуете его запах? Сравнение Java и Kotlin.
Kotlin - это язык, который приобрел большую известность в сообществе мобильных разработчиков. Итак, я хотел бы поделиться с вами своей статьей, в которой я сравнил запахи кода между Java и Kotlin .
Мы знаем, что Java - один из наиболее часто используемых языков в мире. Но Java - очень необузданный и сложный язык, и это большой недостаток. В некоторых случаях написание слишком большого количества кода может привести к появлению определенных запахов кода, которые являются нарушением..
Code Smell 188 — Избыточные имена параметров
Используйте контекстные и локальные имена
TL;DR: не повторяйте названия параметров. Имена должны быть контекстными.
Проблемы
Дублирование Читабельность
Решения
Удалить повторяющуюся часть имени
Контекст
При использовании имен мы часто упускаем из виду, что слова зависят от контекста и их нужно читать как целое предложение.
Образец кода
Неправильный
class Employee
def initialize(@employee_first_name : String, @employee_last_name : String,..
Code Smell 185 — Злые регулярные выражения
Регулярные выражения — это запах кода. Иногда также уязвимость
TL;DR: постарайтесь свести к минимуму рекурсивные правила регулярных выражений.
Проблемы
Проблемы с безопасностью Читабельность Преждевременная оптимизация
Решения
Покройте случаи тестами, чтобы увидеть, остановятся ли они Используйте алгоритмы вместо регулярных выражений Добавить обработчики тайм-аута
Контекст
Это известно как атака ReDos , подтип атаки отказ в обслуживании .
Атаки ReDoS можно..
Code Smell 88 - Ленивая инициализация
Еще один шаблон преждевременной оптимизации
TL; DR: не используйте отложенную инициализацию. Вместо этого используйте поставщик объекта.
Проблемы
Удивительные побочные эффекты Преждевременная оптимизация Неудачное быстрое нарушение Реализация связи Нарушение принципа наименьшего удивления Нулевое использование Изменчивость Проблемы с транзакционными и многопоточными приложениями Проблемы отладки
Решения
Внедрить обязанности с помощью объектов первого класса..