架构设计的目标:在可用与易用等短期目标的基础上,在实现网络安全,服务安全,数据安全,审计安全等安全目标的约束上,为开发、测试、部署、运行维护的自动化、智能化等做出的设计;
好的架构,首先是可用的架构、易用的架构;
生生不息的架构,在于保持自我更新的机制,在于应对变化的能力,在于保持不变的能力。
生生不息的架构,在于能不能留下可以重用的模块,在于怎么识别架构还是原来的架构一脉相承?在于集众之力为一体;
生生不息的架构,关键在于抽象,抽象是管理内外部模块时、管理内外部依赖时、应对内外部变化时添加中间层的关键,抽象体现在架构设计的每一个地方。
架构设计的轻重缓急:急:在当前的条件下,可以满足业务的需要;重:在当前的条件下规划,要满足未来的业务需要;
金鳞岂是池中物,一遇风云便化龙!准备好了吗?
架构设计在现在还不能单独存在,还依赖于具体项目,还依赖于开发、测试、运维等人员才能保持“活着”的状态。
架构设计的服务人群:开发人员,测试人员,运维人员,安全审计人员,业务人员
架构设计是由技术驱动还是由业务驱动的??
架构设计是为了服务业务而生,而升华到脱离具体业务的存在。
架构设计与升级是技术来思考、推进与实施的,但是却由业务来提供后勤保障的,不匹配于业务发展的架构设计与升级,很难得到良好的后勤保障;
当前架构对于业务发展有什么促进作用吗??当前架构对于承接需求有什么限制?
架构设计的业务思维之理想,在于总可以在合适的时间提出合适的设计以满足业务发展;
架构设计的业务思维之难点,在于大公司受限于战略,小公司受限于短期的投入;
架构设计的业务思维之坚持,在于坚持不懈地保持架构的兼容性与扩展性,以最小的变更应对随时到来或永不到来的变化;
对于开发来说,常见的问题就是:这个项目的架构为什么搞这么复杂?
复杂的架构在正常工作的时候,感觉不到它的存在。可是一旦出现问题,想要查清发现的bug到度是由于哪个“风马牛不相及”的东西引起的,就会越来越困难?
现在的一些项目,调用链越来越长,依赖于大量的内外部环境,总是有很长时间在折腾依赖,折腾环境,花费时间甚至远长于具体的业务开发与测试;
测试驱动开发:
测试的目的在于发现问题;可是对应解决问题来说,还不够!
测试的目的在于检测变化没有影响原来的功能;
架构设计本身的兼容性与扩展性体现在哪些地方??
架构设计的兼容性要求与旧系或外系统的对接时要有一定的抽象,防止其他系统的不可用或升级变更等影响到本系统。
架构设计的扩展性要求本系统内对业务扩展等导致本系统的扩容或升级要保持一定的预见性;