«Работает — не трогай». Стоит ли нарушать правила?
Введение
Очень не хватало возможности ввести пользователей в контекст перед голосованием. Спасибо! И так
Преамбула
Работая со старым унаследованным кодом, порой встречаются достаточно проблемные участки, которые есть желание переписать\исправить\переделать, но нет такой возможности. Этот код может быть с ошибками, которые не исправляются годами и с ними приходится мириться. Что делать с таким кодом?
Проблемы бывают разного рода. Начиная от проблем с читаемостью\логикой, заканчивая реальными ошибками, утечками памяти, взаимными блокировками.
Такой код стараются фундаментально не менять, исправляются только локальные проблемы и ошибки. Правило «работает — не трогай» во всей своей красе. С другой стороны, если переписать или исправить этот код, то жить станет всем легче, но появляются проблемы:
- Никто не понимает, как изменения отразятся на всей системе в целом;
- Вероятность внести новые ошибки очень велика;
- Появляется период стабилизации кода (также как и с новым кодом).
Я придерживаюсь позиции, что код надо постоянно развивать и совершенствовать. Старые участки переводить на рельсы новых технологий, как только в этом возникает необходимость. То есть, если возникла проблема или необходимость, то надо поправить код, а не изучать обходные пути (идеализирую, часто ограничением служит обратная совместимость). Конечно, в системе на некоторое время появляется нестабильность, вызванная возможным внесением ошибок, но для этого существует непрерывная интеграция, тестирование, выпуск версий.
Источник
Не трогай что работает
Извиняюсь если баян, только дошел до этого сериала) Корона. 1-4. 56:30
Дубликаты не найдены
Джун: — Этот код так запутан, щас я тут все перепишу
очередной новый программист:
— тут всё плохо, много легаси/спагетти/говнокода и костылей. ща быстро всё заново перепроектируем по-нормальному, перепишем. потребуется два дня две недели месяца два, не больше.
*проходит два года, баги, падения прода, пиздюли от менеджмента, гневные клиенты, стрессы, переработки*
*выгорает и увольняется*
очередной новый программист:
— тут всё плохо, много легаси.
В отделах, где занимаются разработкой есть волшебная должность под названием «Руководитель„ Именно этот человек говорит: » Делать нужно именно так, как я тебе сказал. Если не согласен — забирай свой коврик для мышки и пиздуй на хуй!„
Чини потом баги за этими переписывателямми =)
Купитман дело говорит
я так могу в две смены
– Ваше величество, если вы возьметесь судить это дело, люди воспримут это как поддержку той или иной стороны. – Старики закивали, закряхтели, уныло заерзали в своих неудобных креслах.
– Объявите Веттерланта невиновным, и в этом увидят кумовство и покрывательство, что усилит позиции всевозможных изменников вроде ломателей, которые воспользуются этим случаем, чтобы обратить против вас простонародье.
– Однако если вы решите, что Веттерлант виновен… – Городец угрюмо подергал себя за бороду, и остальные старики поддержали его беспокойным ворчанием. – Знать сочтет это публичным оскорблением, атакой на свои позиции, предательством! Это даст козырь в руки вашим противникам в Открытом совете, и это в тот самый момент, когда мы пытаемся обеспечить вам беспрепятственную передачу власти!
– Порой мне кажется, – резко произнес Орсо, потирая намятые короной места над висками, – что последствия любого решения, которое я приму в этом кабинете, неизбежно окажутся одинаково плохими, так что наилучшим выходом для меня будет вообще не принимать решений!
Хофф снова обвел взглядом стол:
– Для короля, – изрек Первый из магов, – предпочтительнее держаться в стороне от любых сторон.
И все закивали, словно удостоились услышать глубочайшую мудрость всех времен
Источник