@MaxLich
java developer

Какое максимальное количество строк кода должно быть в классе?

Здравствуйте. Хотелось бы узнать у опытных товарищей, какого размера лучше всего делать классы. Слышал, что если размер класса больше какого-то размера строк, то это уже говно-код, и надо делать рефакторинг (либо с самого начала так не писать). Только не помню, после какого количество строк уже начинается говно-код. Подскажите, плиз.

ЗЫ Сейчас на огромном запутанном проекте, и там в одном классе 4000 строк. Ориентироваться там, конечно, архи-сложно...
  • Вопрос задан
  • 2281 просмотр
Пригласить эксперта
Ответы на вопрос 2
Therapyx
@Therapyx
Data Science
Есть обычные принципы, которые еще никуда не делись
- связанность => Каждый класс должен делать только 1 заданную задачу. Эти задачи должны выполняться с помощью аттрибутов и методов этого класса. Поэтому в идеале надо добиваться сильной связанности этих аттрибутов и функций.
- След за этим идет сразу же DRY-Принцын - Dont Repeat Yourself - Когда ты многие функции, аттрибуты раскидываешь как попало и переписываешь заного из-за малейшего изменения, так и плодиться уйма не нужного кода со слабой связанностью.
- Возможность тестирования => мне очень интересно какой рак это тестить класс из 4000 строк...)))
- И самое главное "Читабельность, Понимание" => Я конечно верю, что существуют проэкты или задачи, где 4000 строк это было бы норма для 1го класса, даже с идеальной проектировкой. Но я не думаю, что в этом случае это те самые исключения. Лично по моему скудному мнению, если класс уже с 1000-2000 строк, то надо хотябы задуматься о том, что что-то надо бы изменить или начертить UML диаграмму этой области(если ее нету).
Есть конечно и остальные, но это основное, что касается 4000+ строк
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev
software engineer
Нет привязывайтесь к строкам.

Если вы можете взять класс и быстро в нем разобраться для внесения изменений - значит нормальный размер.

Если класс слишком сложный, внесение изменений или исправление ошибок занимает слишком много времени - значит можно подумать насчет разделить класс на два или больше классов. Но опять таки, не в ущерб логике.

P.S. Понятно, что оценка времени и сложности класса у начинающего разработчика отличается от опытного, а ориентироваться нужно на оценку опытного разработчика.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы