Книга: Программист-прагматик. Путь от подмастерья к мастеру
Когда осуществлять реорганизацию?
Когда осуществлять реорганизацию?
Если вы встречаете на своем пути камень преткновения, поскольку текст программы никуда не годится, замечаете, что два объекта стали несовместимы друг с другом, или же нечто другое, что задевает вас своей «неправильностью», не стесняйтесь вносить изменения. Другого времени, кроме настоящего, не существует. Программу можно считать пригодной для реорганизации при наличии одного из указанных ниже условий:
• Дублирование. Вы обнаружили нарушение принципа DRY (см. «Пороки дублирования»).
• Неортогональность конструкции. Вы обнаружили некий фрагмент программы или конструкцию, которой можно придать большую ортогональность (см. «Ортогональность»).
• Устаревшие знания. Все изменяется, требования варьируются, и ваши знания о проблеме расширяются. Программа должна соответствовать новому уровню знаний.
• Рабочие характеристики. Для улучшения характеристик программы вам необходимо перенести функциональную возможность из одной части системы в другую.
Реорганизация программы, т. е. перемещение функциональной возможности и изменение ранее принятых решений – это упражнение в обезболивании. Скажем сразу – изменение исходного текста программы может быть весьма болезненной процедурой: она уже почти работала, а теперь ее разрывают в клочья. Многие разработчики крайне неохотно соглашаются «вспарывать» программу лишь на том основании, что она работает не совсем правильно.
Осложнения в реальном мире
Итак, вы идете к вашему шефу или заказчику и говорите: «Эта программа работает, но для ее реорганизации мне нужна еще неделя».
Они скажут вам… впрочем, это непечатное выражение.
На жесткие временные рамки часто ссылаются, оправдывая отсутствие реорганизации. Но это оправдание не должно становиться нормой: если вы не сможете провести реорганизацию сейчас, то позже (когда придется принимать во внимание большее число зависимостей) на устранение возникшей проблемы потребуется намного больше времени. А будет ли у вас это время? У нас – точно не будет.
Попробуйте объяснить этот принцип вашему шефу, пользуясь аналогией с медициной: рассматривайте программу, нуждающуюся в реорганизации, как «опухоль». Чтобы удалить ее, требуется хирургическое вмешательство. Вы можете начать сразу и извлечь ее, пока она небольшая. Но если вы будете ждать, пока она вырастет и распространится, то ее удаление станет более дорогой и опасной процедурой. Подождите еще, и вы можете потерять пациента окончательно.
Подсказка 47: Реорганизация должна проводиться часто и как можно раньше
Следите за всем, что требует реорганизации. Если вы не можете провести реорганизацию чего-либо прямо сейчас, удостоверьтесь, что она стоит в вашем плане. Убедитесь, что пользователи программы, над которой производится реорганизация, знают о запланированной процедуре и о том, как она может повлиять на их работу.
- Когда нужен постскриптум в бизнес-тексте?
- Как я нашла «правильных» потребителей, когда искала «неправильных»
- Когда старая школа молода
- Что происходит, когда бренды растут или идут на спад
- Пример 9-8. Содержимое $* и $@, когда переменная $IFS -- пуста
- Когда следует задавать проясняющие вопросы
- Когда печатаю, перед повтором буквы приходится выжидать несколько секунд
- Когда я не работаю за компьютером, через некоторое время он отключается. Можно ли это исправить?
- Наносится ли какой-нибудь вред USB-брелоку, когда его извлекают из разъема без использования функции безопасного отключе...
- Как узнать, когда сеть подключена, а когда нет? У меня плохой разъем на сетевой карте, и связь иногда пропадает
- Когда включаю компьютер, при загрузке пишется Insert system disk and press enter. Что нужно делать?
- Когда звонит телефон, начинает загружаться компьютер. Помогает только отключение кабеля от модема. Почему так происходит...