Поэтому мне было поручено взять активный сторонний продукт, для которого у нас есть исходный код, и внести проприетарные изменения, которые нарушат совместимость с будущими обновлениями продукта.Этот продукт довольно хорошо продуман, но он представляет собой корпоративное приложение, от базы данных до пользовательского интерфейса, поэтому я не могу просто сделать что-то простое, например добавить проприетарный бизнес-уровень, чтобы скрыть и расширить сторонний и написать свой собственныйUI.Поскольку пользовательский интерфейс является большой частью того, что мы купили для начала.
Итак, что я ищу, так это некоторые рекомендации, лучшие практики, дозы и пожертвования и т. Д. Помните, что я беру на себя эту задачу.
Единственные действительно твердые вещи, которые я планирую сделать наверняка, это.
- Храните любые расширения продукта в моих собственных файлах или как можно более изолированными.(Я хотел бы услышать любые стратегии или ужасные истории, которые у вас могут быть по этому поводу, однако)
- Аннотируйте любые изменения в существующих методах, чтобы они были доступны для поиска и имели хорошее представление о том, как и почему эти изменениябыло сделано, чтобы при слиянии с обновлением я мог легко просмотреть список своих изменений и внести любые необходимые изменения.
Кроме этого, я просто планирую сохранитьшаблоны Decorator, Facade, Proxy и Adapter находятся под рукой, и постарайтесь сделать это максимально безболезненно в будущем.
Любой вклад приветствуется, спасибо.