Jan. 21st, 2009

recoder: (Default)

Любой программер, кто работал с большой и старой системой знает что с возрастом в ней накапливается некоторое количество хаков и недоделок, на которые так и не хватило времени. (См.: bit rot.) И сожалению, реальность данная нам в ощущениях обычно не позволяет полностью избавиться от этого мусора. Причём обычно из-за того, что удаление хаков потребует либо сокращения функциональности, либо уже системной реализации аналогичной функциональности, а это обычно грозит потерей человеко-часов без положительных внешних изменений. Ни то ни другое обычно не проходит через менеджмент. А избавиться от мусора в коде всё равно хочется.

В таких случаях приходится идти на компромисс. Заводим промежуточный гетто-компонент - или в иерархии классов, или в последовательности вызовов, или в качестве адаптеров между компонентами. В меру желания и возможности выпрямляем интерфейсы и реализацию. И затем последовательным рефакторингом выносим в этот компонент всё, что не укладывается в текущую архитектуру других компонент.

В результате мы имеем относительно "чистые" компоненты, которые опять могут развиваться и использоваться без оглядки на хаки. А также имеем отдельный контейнер для всей излишней энтропии системы, который надо или искоренять в будущем или просто особенно тщательно тестировать. В общем - все довольны, yo!

coding

December 2024

S M T W T F S
1234567
891011121314
15161718192021
22232425 262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 21st, 2025 11:47 am
Powered by Dreamwidth Studios