MiK
Если класс дорос до 1000 имён, это значит, что будет не только много имён, но и много списков, и они опять же будут принадлежать разным переменным, а это значит, что снова возникнет вопрос, который я поднял в шапке темы.
Срочно к чтению:“Рефакторинг” - Мартина Фаулера.
“Чистый код” - Боба Мартина.
и т.п.
Одна из основных ошибок начинающих программистов - попытка написания с первого раза идеального кода подходящего на 100% под некую задачу и учитывающего все варианты развития событий. Причем код по их мнению должен быть написан таким образом чтобы в дальнейшем его ни за что не менять, прямо высечь его на каменных скрижалях.
Реальность же имеет изменчивую природу, а код как и всё в нашем бренном мире, имеет свойство устаревать, и ваш только что готовый идеальный код может внезапно стать совершено не годным после первых двух фраз при общении с заказчиком. Вы можете не правильно понять задачу, заказчик может её неправильно понять, не учесть каких-то моментов, мелочей, не продумать до конца задачу, да к тому же внешние условия постоянно меняются - это нормальное развитие событий. В методике управления проектами, например, нет понятия длительности проекта, есть понятие длительности этапа проекта, проект же сам по себе имеет начало и бесконечную длительность во времени.
Вы всегда должны быть готовы к изменению кода, а для этого код должен быть понятен, если вы через неделю открываете свой код и пытаетесь понять что он делает - этот код хреновый! Если вы работаете в команде это усугубляется. Не пишите хреновый код, никогда не решайте виртуальных задач. Пишите понятный код.
Если задача требует изменения архитектуры приложения - меняйте архитектуру, даже не пытайтесь сделать хак, и прилепить какую-нибудь несуразицу, которая будет выдавать временно нужный результат. Потому как вслед за одним изменением последует другое, за ним третье - так и получается говнокод, с которым уже ничего нельзя сделать, только переписать всё заново. Чем раньше вы делаете изменение архитектуры - тем оно дешевле в конечном счете.