易于开发易于扩展易于维护易于测试易于构建各个方面互相权衡。 易于开发 开发工具是否完善;生态圈是否繁荣;社区是否活跃。 易于扩展增加新功能是否容易; 增加新功能是否会显著增加系统复杂度。 易于维护代码是否易于理解; 文档是否健全。 易于测试功能分层清晰; 副作用少;尽量使用纯函数。 易于构建使用通用技术和架构; 选用主流构建工具。