В какой-то момент программа находится в разработке. Функции добавляются, удаляются или изменяются все время. Каждая версия - не что иное, как прототип. Поэтому я не трачу много времени на написание суперчистого кода, потому что никогда не знаю, как долго это будет продолжаться. Конечно, я стараюсь поддерживать качество кода в соответствии с определенными стандартами, но время всегда является проблемой.
Затем наступает момент, когда программа заканчивается, и лица, принимающие решения, говорят: «Вот и все». На данный момент у меня есть рабочий прототип, но код внутри немного запутан во время фазы разработки. Ожидается, что я начну тестирование / окончательную отладку, но моя интуиция говорит, что теперь я должен каким-то образом очистить и / или переписать материал, чтобы дать ему правильную архитектуру, которая облегчает обслуживание и т.д.
После того, как материал был проверен и одобрен, его не имеет смысла переписывать. Регулярно я стою там с работающим «готовым» прототипом, и я получаю ошибку во время тестирования, и я вижу, что это результат неумного кодирования, который является результатом всего процесса разработки. Я нахожусь в середине тестирования, и исправление будет переписано ... это беспорядок!
Я уверен, что есть лучшие способы / учебники. Но я должен работать в реальной рабочей среде, где не все является учебником.
Итак, как мне перевести мой рабочий прототип в версию выпуска со стабильной базой кода? Может быть, мне не следует считать разработку законченной, когда я это сделаю, и на самом деле считаю ее этапом очистки ... Не знаю, мне нужна помощь здесь.
РЕДАКТИРОВАТЬ
Я хочу уточнить несколько вещей.
Я на 100% на стороне делать это прямо до, а не после, код чистый и читаемый. Но я также должен сделать вещи и не могу мечтать о красоте кода, все чисто и блестяще. Я должен найти компромисс.
часто новая функция - это действительно то, что мы хотим опробовать и посмотреть, имеет ли смысл реализовывать что-то подобное. (особенно в мобильных приложениях, чтобы получить реальный внешний вид на реальном устройстве) Так что это что-то маленькое, что (imho) не оправдывает слишком много работы в первой итерации «посмотрим». Однако иногда возникает вопрос, КОГДА я плачу этот tech.debt? Вот о чем этот вопрос.
Если я знаю, что половина функций будет отброшена через день (достаточно опыта в нашей компании к настоящему времени), мне действительно будет трудно поверить, что лучший способ решить мою проблему - это, тем не менее, потратить дополнительное время, чтобы написать все чисто, даже если большая часть этого будет отброшена вскоре после этого. Мне кажется, что я сэкономлю время, если сделаю одну большую уборку, как только вещь станет твердой, отсюда и мой вопрос.