老外设计软件系统的方法通常包括以下几个方面:
流程重于项目
老外非常注重开发流程,确保每个步骤都按照既定的流程进行。他们会有专门的QC(质量保证)团队独立于研发部门,检查开发流程是否正确,如果流程有问题,会直接上报高层,项目会因此停止。
接口驱动设计
国外CTO在设计大型项目时,基本设计思想是按照组件的开发模型,并且非常注重Interface design(接口设计)。每个组件项目开始前,都会要求提供详细的API和Javadoc。接口设计不仅明确了实现的方法结构,还实现了实现的可扩展性。
组件化开发
老外喜欢将项目拆分成一个个组件,每个组件都有其独立的职责和接口。这种组件化开发模型有助于提高代码的可重用性和可维护性。组件模型可以是松散耦合的,也可以是紧密耦合的,根据具体需求选择。
详细文档
在设计阶段,老外会编写非常详细的文档,包括需求文档、设计文档、API文档等。这些文档通常需要达到只有文档就可以编码的程度,编写文档的时间甚至占到整个项目时间的60%以上。
同行评审
老外非常重视代码的同行评审,包括项目组内的评审、项目组之间的评审以及客户的评审。通过这些评审,可以确保代码的质量和设计的合理性。
详细计划
-老外会制定非常详细的开发计划,包括小时级的计划,尽管实际情况可能会有误差,但他们会通过加班等方式来确保项目按时完成。
基于设计模式的开发
老外熟悉并善于运用GOF设计模式,许多设计模式都是由接口驱动的。合理的接口设计为各种GOF设计模式的实现提供了可能性,并且有助于明确软件逻辑工作流。
可视化编程模型
在设计阶段,老外会建立可视化编程模型,表示组件之间的交互、它们如何相互关联以及这些关系如何随时间变化。这有助于更好地理解和设计系统的架构。
优化上市速度
老外在设计系统时,会考虑如何快速交付结果,选择适合组织需求的架构,以确保软件能够快速上市。
综上所述,老外设计软件系统的方法注重流程、接口设计、组件化开发、详细文档、同行评审、详细计划、设计模式、可视化编程模型以及快速上市等方面。这些方法有助于提高软件的质量、可维护性和开发效率。