Как почувствовать грязный код? Часть 1.

#разработка #опрос



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



Одной из причин является недостаток опыта предыдущего разработчика. Мне кажется, что на начальном этапе необходимо делать так, чтобы код выполнял требуемые функции. Ведь ты не знаешь, что пишешь «грязный» код. Однако даже опытные разработчики не спрашивают себя: а что такое «грязный» код и не пишу ли я подобный код? Хочу поделиться несколькими признаками плохого и «грязный» кода. 



отсутствие логирования ошибок. На мой взгляд, без обработок и логирования ошибок код является не завершенным. В будущем подобные косяки вызывают значительную потерю времени других разработчиков в случае реального возникновения ошибок. Кстати, рекомендую плагин для RxJava, который подсвечивает незалогированные ошибки.

memory leaks. Чтобы предотвратить подобные ошибки рекомендую использовать плагин LeakCanary

неправильное именование функций и переменных. Этим часто грешат начинающие разработчики. Чаще всего стоит использовать camelCase. Также стоит использовать понятные названия функций, и не думать о красивом и коротком названии. Например, название getFullName() несет больше смысла, чем name().

гигантские классы. Иногда тяжело разбивать участок кода на несколько кусков. Однако чаще большие классы возникают от нежелания программиста разбивать его на более мелкие. Необходимо стремиться к такому классу, который отвечает только за определенную функциональность.

функции делают слишком много. Такое бывает и у опытных разработчиков. Часто встречаю в проектах функцию типа init(), где огромная мешанина из условий, переменных и вызовов других функций. Стремитесь, чтобы таких методов было как можно меньше. Кстати, слышал, что в некоторых компаниях есть ограничения на длину функции. Если она больше определенного числа строк, то это повод разбить ее на несколько и без этого разбиения нельзя сделать коммит.



Это далеко не все признаки грязного кода. Вскоре напишу еще сигналы, которые помогут делать наш код чище. А какие признаки грязного кода знаете вы? Пишите мне, обязательно опубликую в следующей части.



Находили подобный код в проектах?