自定义版本化用户界面的最佳实践?
如何最好地实现以下场景:
1.0 版本中的应用程序有一个标准化的用户界面,例如订单表格。 该应用程序经过定制,以满足不同客户的需求。 这可能是客户 A 的额外字段“所需交货时间”、客户 B 的省略字段“电话号码”、为客户 C 显示附近仓库的额外地图插件以及为客户 D 的这些的组合。
现在,开发商发布了新版本的标准化订单,即2.0版。 设计这个以最少的努力(如果有的话)来确保为客户完成的所有定制都能保持活力的最佳方法是什么?
我可以想象以下解决方案:
- 配置:所有选项都是可配置的。 这实际上不是一个解决方案,因为无法预见所有可能的客户需求。
- 继承:通过继承标准化版本来完成定制。 然而,如何确保新版本不会产生看起来“蹩脚”的定制版本呢?
How would the following scenario best be implemented:
There is a standardized user interface for an application in version 1.0, e.g. an order form. This application gets customized to fit the needs of different customers. This could be an extra field "desired delivery time" for customer A, the omittance of the field "phone number" for customer B, an extra map plugin which shows storehouses nearby for customer C and a combination of these for customer D.
Now, the developer releases a new version of the standardized order form, version 2.0. What's the best way to design this to have minimum effort (if at all) to make sure all the customizations done for the customers can be kept alive?
I could imagine the following solutions:
- Configuration: all the options are configurable. This actually cannot be a solution, as all possible customers' needs cannot be foreseen.
- Inheritance: customizations are done by inheriting the standardized version. However, how can one make sure the new release doesn't result in an "crappy" looking customized version?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我首先想到的选项是应用程序外部存在的 UI 规范。 当应用程序运行时,UI 在运行时生成。 虽然这比静态、编译的 UI 需要更多工作,但从长远来看,考虑到您的特定软件生命周期,它也更加灵活。
有些框架专门用于此目的: XUL 是一个众所周知的示例。
不过,您可以自己动手制作。 最终,这使您能够保持客户的用户界面独立。
The immediate option that comes to mind is a UI specification that exists outside of the application. When the application is run, the UI is generated at run-time. While this is more work than a static, compiled UI, it is also a lot more flexible in the long run, given your specific software life cycle.
There are frameworks that exist solely for this purpose: XUL is one well-known example.
You could, however, hand-roll your own. Ultimately, this gives you the power to keep your customers' user interfaces separate.