Публикации по теме 'code-smells'


Почему геттеры и сеттеры не всегда являются решением: стратегии исправления анемичных классов
Почему геттеры и сеттеры не всегда являются решением: стратегии исправления анемичных классов Вы когда-нибудь работали над кодовой базой, которую было трудно понять? Ты не один! Одной из основных причин этого является плохая инкапсуляция. Инкапсуляция — это практика хранения данных и поведения вместе в одном классе, и это неотъемлемая часть написания чистого и поддерживаемого кода.

Как пахнет ваш код?
В книгах Мартина Фаулера он всегда говорил о чистом коде и хорошо спроектированном коде, потом в 1999 году он написал книгу под названием «Рефакторинг», рекомендую прочитать 2-е издание, написанное в 2018 году. Итак, что такое запахи кода? Запах кода — это любая характеристика исходного кода программы, которая может указывать на более глубокую проблему. Определение того, что является запахом кода, а что нет, является субъективным и зависит от языка, разработчика и методологии..

Руководство по тестированию Kotlin: устранение хрупких тестов для лучшей разработки
TL;DR: Держитесь подальше от недетерминированных тестов.. Проблема Отсутствие детерминизма Подрыв доверия Время потрачено впустую Решение Убедитесь, что тест полностью детерминирован. Искорените любую возможность непредсказуемого поведения. Устраните тестовую связь. Примеры Термины «хрупкий», «периодический», «спорадический» и «неустойчивый» часто используются как синонимы при обсуждении проблемных тестов во многих средах разработки. Однако такие тесты..

Code Smell 155 — Несколько обещаний
У вас есть обещания. Нужно подождать. Подождите их всех TL;DR: не блокируйте себя сортированным образом. Проблемы индетерминизм Узкое место в производительности Решения Ждите всех обещаний сразу. Контекст Мы слышали о семафорах, изучая операционные системы. Мы должны ждать, пока все условия не будут выполнены независимо от заказа. Образец кода Неправильный async fetchOne() { /* long task */ } async fetchTwo() { /* another long task */ } async..

Code Smell 145 — Взлом короткого замыкания
Не используйте логическое вычисление для упрощения чтения TL;DR: не используйте логическое сравнение для функций побочных эффектов. Проблемы Читабельность Побочные эффекты Решения Преобразование короткого замыкания в ПЧ Контекст Умные программисты любят писать хакерский и малопонятный код, даже если нет веских доказательств этого улучшения. Преждевременная оптимизация всегда вредит читабельности. Образец кода Неправильный userIsValid() &&..

Code Smell 127 — Изменяемые константы
Вы объявляете что-то константой. Но вы можете изменить его. TL;DR: используйте неизменяемые константы Проблемы Изменчивость Нарушение принципа наименьшего удивления Связь Решения Обеспечьте изменчивость Избегайте констант. Их трудно обмануть в тестах. Контекст Мы научились объявлять константы в нашем первом курсе компьютерного программирования. Как всегда, не важно, если что-то постоянно. Важно, если он не мутирует. Образец кода Неправильный..

Kotlin Code Smell 015 — Вспомогательные классы | Йонатан Карп-Рудин
TL;DR: Helpers don't help. They are a non-cohesive bunch of messy subroutines. Проблемы Читабельность Принцип наименьшего удивления Ошибка биекция Статические методы Решения Найдите подходящее имя. Если помощником является библиотека, разбейте все сервисы на разные методы. Методы всегда должны выполняться объектами. Статические методы — еще один запах кода. Избегайте извлечения помощников для Анонимных функций . Образец кода Неправильный Обратите..