Я поддерживаю класс Java длиной 40 Кб .. проблема? - PullRequest
20 голосов
/ 26 декабря 2010

Это может быть субъективный вопрос, приводящий к удалению, но мне бы очень хотелось получить отзыв.

Недавно я перешел к другому очень крупному корпоративному проекту, где я работаю разработчиком. Я был ошеломлен, обнаружив, что большинство классов в проекте имеют длину от 8К до 50К строк с методами длиной от 1К до 8К. В основном это бизнес-логика, связанная с таблицами БД и управлением данными, полными условных операторов для обработки сценариев использования.

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

Ответы [ 12 ]

0 голосов
/ 29 декабря 2010

50К строк кода? Я думал, что KLOC - это показатель размера проекта, а не размера файла. Это похоже на всю нашу кодовую базу (включая тесты).

Я работаю с JavaScript, так что он не сопоставим напрямую, но у нас есть только несколько файлов длиной более 500 строк - и это очень проблемные.

0 голосов
/ 27 декабря 2010

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

Так что, если в вашем дизайне нет ДЕЙСТВИТЕЛЬНО веской причины навязывать 40kстрок (в чем я сильно сомневаюсь), тогда у вас уже есть свой ответ: ваш класс слишком большой.

Я процитирую мою жену (которая химик и не программирует): "40k строк кода, естьчто-то действительно не так! "

У меня были друзья, которые взялись за проекты в своих компаниях, которые были действительно старыми, от одного программиста до старшего, и мы все согласились с тем, что класс такого размера просто означает:

- исправление и исправление: людям приходилось вносить небольшие изменения тут и там, и они не хотели / не имели времени сделать это корректно.

во время выполнения может не быть никакихпроблемы с этим кодом, все работает, но обычно возникают проблемы, когда вы хотите внести какие-либо изменения:

  • требуются годы, чтобы что-то найти

  • когда есть ошибка, вы не можете ее точно определить

...

В заключение я хотел бы сесть и переосмыслить внешний вид дизайнаВаш проект и реструктуризация (по крайней мере, в классы от 1 до 5 тысяч строк), я знаю, что раздражать делать это обычно в долгосрочной перспективе лучше

...