Как избежать ошибок, когда дизайн догоняет реализацию [закрыто]

StackOverflow https://stackoverflow.com/questions/940441

  •  06-09-2019
  •  | 
  •  

Вопрос

Я подрядчик, и меня часто привлекают к работе над проектами, чтобы просто реализовать функции в установленные сроки.Однако часто мой темп становится быстрее, чем у основного дизайна.Поэтому мне часто приходится создавать функции/методы для предварительного выполнения задачи, ожидая окончательного дизайна.

Показательный пример: в настоящее время мне было поручено выполнить сортировку некоторых записей по умолчанию, что слишком сложно для текущей конструкции базы данных (на самом деле я бы использовал функцию «поля» MySQL, но я не думаю, что Java/Hibernate поддерживает это).Поэтому я создал функцию, в которой записи можно было на данный момент сортировать на уровне приложения, которую можно было либо повторно реализовать, либо полностью избежать, как только будет выполнена необходимая работа по проектированию базы данных.

Меня беспокоит то, что после завершения всего необходимого проектирования (в целом и/или конкретно в отношении сценария, описанного выше), я не хочу оставлять после себя след из возможно ненужных функций/методов.Иногда они могут повысить ценность дизайна, но иногда в конечном итоге могут оказаться ненужным слоем косвенности.

Насколько мне следует беспокоиться по этому поводу?Что я могу сделать, чтобы смягчить это?Обычно являясь очень у краткосрочного подрядчика, у меня обычно нет времени – или полномочий – для реализации чего-то вроде «шаблона стратегии», что могло бы быть моим желанием, если бы я действительно отвечал за общий дизайн.

Это было полезно?

Решение

Я думаю, что по мере развития кодовой базы следует ожидать определенного количества хлама.Даже если вы попытаетесь систематически удалять старый неиспользуемый код, удалить его весь будет сложно.Всегда приятно обнаружить в своей системе неиспользуемый код, который можно удалить.

Строгая типизация здесь ваш друг, поскольку она позволяет отслеживать типы и использование гораздо лучше, чем слабая типизация.Так что держитесь подальше от строковых типов данных, они усложняют очистку.

Действительно изящный трюк заключается в том, что вы можете воспроизвести 24-часовой трафик из ваших производственных систем через тестовую систему с одновременно работающим инструментом покрытия кода.Обычно это кладезь мертвого кода, но может быть трудно найти время, чтобы заняться такими большими объемами очистки среди других приоритетов;)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top