Internet 网络层协议设计原则(RFC 1958)

这 10 条原则本是设计网络层协议用的,但我想它们可能对 web 应用的设计同样具有指导意义,因此记录于下(顺序为从最重要到最不重要):

  1. 保证工作。直到确认原型系统可以正常运行,才可以完成设计或确定标准。
  2. 保持简单。有疑问时应该使用最简单的解决方案。即如果一项特性并非绝对必要,就应该被砍掉,尤其当可以通过其他简单特性的组合也可以达到相同效果的时候。(注:也许这里的难点在于确认一套最小功能集)
  3. 明确选择。解决一个问题应当有且只有一种解决方案,这与 Python 的理念相同。
  4. 模块开发。使用栈结构组织功能。
  5. 期望异构性。设计必须通用且灵活,保证兼容性。
  6. 避免静态选项和参数。如果不可避免要使用参数的话,那么最好的办法是让发送和接收方协商一个值,而不是定义静态参数。(注:这一条对 app 的指导意义也许可以转换为,设计对象的时候,请尽可能多地将可配置项添加到参数里,而非使用内部常量)
  7. 寻找好的而不是完美的设计。不必为应对特殊情况而牺牲设计的简单性。特殊情况可以特别处理。
  8. 严格发送,宽容接收。保证自己发出的数据都是严格符合标准的,但在接收时可以尝试对非标准请求进行处理。(注:个人认为这里需谨慎对待,付出额外精力和风险对错误的 api 请求做出正确的相应可能得不偿失)
  9. 考虑可扩展性。即分布式支持。这点还好
  10. 考虑性能和成本。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。