Это стратегический вопрос. У меня есть большая часть программного обеспечения, основанная на Интернете, которая обрабатывает, вероятно, около 50-60 различных задач. Программное обеспечение использует около 100 таблиц MySQL и, вероятно, можно рассматривать как 3 больших модуля, предназначенных для 3 разных групп аудитории. Он работает очень хорошо.Чтобы переписать или нет?
Программное обеспечение было запущено 5 лет назад и прошло дополнительные улучшения. Я в значительной степени разработал и написал систему в одиночку. Есть определенные места, где дизайн плохой; и через 5 лет я думаю, что могу определенно сделать лучшую работу, если я переписал ее части. Но мы никогда не переписывали его с нуля, поэтому некоторые из плохого дизайна остались там. Код работает, но дизайн не очень хорош во всех местах.
Система была построена на проприетарной программной платформе; платформа обеспечивает надежную защиту (беспрецедентно в 99% других веб-платформ, силосов с силовыми установками, принудительно параметризованных SQL, ACL на основе строк на основе данных MySQL) и производительности (ресурсы растут по мере того, как количество приложений, а не количество одновременных ударов). Оказывается, нам не нужны преимущества производительности, но было неплохо использовать.
Проблема, с которой я столкнулся сейчас, заключается в следующем: на благо компании и меня я хотел бы перевести систему до такой степени, что мне больше не нужно ее поддерживать, где я могу получить кого-то еще приходите, улучшайте и строите на нем. Было показано, что будет трудно нанять талант для работы на этой существующей платформе. С этой точки зрения было бы проще перезаписать его (скажем, требуется целый год) с помощью Java, а затем сохранить систему другими.
Мы маленькая некоммерческая фирма, и было бы сложно привлечь главных архитекторов, чтобы сделать перепроектирование. Я лично слишком занят другими делами, чтобы сделать перепроектирование. Мы можем получить сторонних подрядчиков, чтобы сделать это, но я беспокоюсь о качестве архитектуры системы. Система также довольно сложна, поэтому было бы трудно получить все требования (большинство требований в моей голове), хотя вы можете сделать так, что перепроектирование и переписывание заставят нас сделать больше документации).
Я склоняюсь к переписыванию всего этого, но имею серьезные оговорки. Есть предположения?
@Kevin - Это правда, но Джоэл также признал, что, когда Microsoft представила .NET, они «нарушили» стратегию «не переписывать», и она по-прежнему «работала» для них и была «правильной» для делать. См. Здесь: http://www.joelonsoftware.com/articles/Our.NetStrategy.html – CraigTP
В любом случае вы даже не должны думать о переписывании критического фрагмента кода без готовности батальона модульных тестов. Все эти досадные крайние случаи, непонятные ошибки и причуды, которые были найдены и исправлены в течение последних 5 лет, вероятно, появятся в той или иной форме. –
Вы правы, иногда нормально нарушать правило, но в целом это будет намного больше проблем, чем того стоит. Кроме того, посмотрите, сколько времени и сил потребовалось для этого. Я слышал аргументы о том, что на самом деле это заняло до 2.0, чтобы все было правильно, и многие люди думают, что это сломано. – kemiller2002