#asp.net-mvc-3 #version-control #architecture #change-management
#asp.net-mvc-3 #управление версиями #архитектура #управление изменениями
Вопрос:
Я работаю над приложением, для которого поступил запрос на временное изменение данной функции. В частности, бизнес в настоящее время хочет управлять только физическим адресом для данного клиента и хочет, чтобы мы убрали опцию добавления почтового адреса.
Эту функцию, скорее всего, потребуется повторно ввести в будущем, поэтому мне интересно, каков наилучший способ обработки удаления на данный момент. Наличие дополнительных свойств в ViewModel не обязательно является проблемой, но это приводит к беспорядку. И еще большая проблема возникает, когда дело доходит до самого представления. Нам нужно удалить элементы пользовательского интерфейса, но нам нужно упростить их возврат в будущем.
So…do Я закомментировал ненужные биты кода? Это самый простой подход, но он запутанный.
Должен ли я создавать новое представление и ViewModel? Если да, то где подходящее место для хранения оригинала в целях безопасности? Наше приложение находится под управлением версиями (SVN), поэтому теоретически мы могли бы вернуться к этой редакции, но это кажется излишеством для такого небольшого изменения.
Кто-нибудь еще сталкивался с подобной ситуацией? Есть какие-либо рекомендации о том, как наилучшим образом справиться с этим?
Ответ №1:
So…do Я закомментировал ненужные биты кода?
Нет, это было бы очень грязно. Это то, для чего предназначен контроль версий.
Должен ли я создавать новое представление и ViewModel?
Да, замените оригинал.
Если да, то где подходящее место для хранения оригинала в целях безопасности?
Управление версиями.
Наше приложение находится под управлением версиями (SVN), поэтому теоретически мы могли бы вернуться к этой редакции, но это кажется излишеством для такого небольшого изменения.
перебор? Нет. Это то, что VCS делают лучше всего => они сохраняют историю изменений. Также вы могли бы рассмотреть возможность создания метки, чтобы вы могли легко вернуться позже.
Комментарии:
1. Ваши быстрые ответы подтверждают мою мысль о том, что это лучший способ сделать это, но я все еще чувствую себя очень неуверенно. В SVN самое близкое, что я могу получить к ярлыку, — это тег, и использование тега для этой цели не вписывается в наш процесс разработки (мы помечаем версии тегами на случай, если нам нужно вернуться к ветке для исправления ошибки).
Ответ №2:
Какой механизм просмотра? На самом деле, это может иметь значение, а может и не иметь.
С точки зрения «мне может понадобиться это в будущем», я бы рассмотрел возможность перемещения битов пользовательского интерфейса, которые на данный момент отсутствуют и могут снова появиться в пользовательском элементе управления MVC. Это менее «грязно», чем комментировать код повсюду. Затем вы можете исключить его на данный момент.
Что касается ViewModel? Есть несколько возможностей. Короткий полюс, безусловно, добавляет биты в ViewModel, даже если они не используются, но это означает, что вы разворачиваете неиспользуемые данные без четких временных рамок, когда они будут использоваться. Но вы всегда можете создать производный класс, когда вам понадобится дополнительная информация, и попросить пользовательский элемент управления преобразовать модель представления в производный класс (совпадение и противоположность — ваши друзья), когда вы начнете его использовать, внося незначительные изменения в код, когда бизнес «придет в себя».
Комментарии:
1. Механизм просмотра — Razor, но, я согласен, это действительно не должно иметь значения. Я решил использовать аналогичный подход, извлекая свою настроенную ViewModel из базы и создавая представление из составных частичных представлений, так что добавление этой части обратно, когда это неизбежно потребуется, будет простым делом