5S原则:Simple, Solid, Strong, Safe, Smart
Simple
Simple就是简单原则,这里的简单有两个意思,一个是逻辑简单容易理解,另一个是架构简单耦合性弱。
按照模块化设计的方法,通常我们在设计时,首先界定系统的边界,然后在系统内划分模块,然后在模块内划分功能点。
通常在进行自顶向下设计的时候,Simple原则是很容易遵守的,但是有时功能是在慢慢增强的,从一个功能点成长为一个系统,在后期开发的时候往往会对前期的设计进行重构,这是相当痛苦的。
Solid
Solid就是逻辑要牢固完整。
业务逻辑的完整可以减少系统的异常,从而提升系统的可用性。
执行Solid原则的一个有效方法是黑箱测试,让用户撰写测试场景,让用户进行接收测试。
开发人员往往想到正常的业务流,而用户则熟悉更多异常的业务流,而对异常业务流的测试可以提升逻辑的完整性。
Strong
Strong就是系统要可靠,能够支持多并发性、多用户、大数据量,通过各种方式减少当机时间。
硬件方面,可以通过Cluster、Load Balance等提升系统的可用性。
软件方面,可以通过缓存、读写分离、用户分组、冗余、归档、数据库分区等技术减少计算时间。
Safe
Safe就是安全原则,通过各种办法避免系统服务的中断。
在IT系统中,黑天鹅事件(无法预测的异常事件)是难以避免的,解决的办法是不断累积异常处理措施,每当有异常的时候,通过报错、日志、通知等方式将异常处理,从而避免系统服务的中断。
系统在设计的时候,应该规划一个可配置的异常处理模块,这样可避免在重写核心代码的情况下实现异常的及时处理。
Smart
Smart就是聪明原则。
现在网络上开源的代码、模块、方法论很多,许多互联网的应用也可以借用到企业系统。
比如Map-Reduce是GOOGLE倡导的方法论,实际上许多包括大量IF THEN ELSE的代码都可以利用Map-Reduce进行逻辑的简化。