架构本质
我们经常在思考,什么是架构、什么是架构设计。是的,我们每个人都在做架构。那如何做好架构呢?个人认为需要通过问题看到本质。那本质是什么,本质是现象背后的根本,那个不变的东东。那个不变的东东是什么?如果对于人生来讲,应该是生命的成长。生命如何成长呢?成长是一个过程,要有规划,同时要顺应生命之流。
架构蓝图
是的,要有规划。规划是什么呢?规划是我的人生目标,规划是实现目标的路径。就如同架构一样,架构是什么呢?架构是系统蓝图,这套蓝图,描述了系统实现的路径。依照蓝图去做,并根据需求变更或新的发现调整,最后实现业务目标。
人人都是架构师
所以,系统和人生是一样的。一个好的系统需要规划、一个好的人生同样需要规划。其实,我们人人都是架构师,都可以活出美好的人生,都可以设计出良好的系统。不是吗?
核心模型
是的,如何找到本质呢?观察事物,发现那些变与不变的部分,那些不变的东东,那些道就是本质。这样我们分析后,可以得出系统的核心模型。比如电商系统,我发现本质就是交易,买卖。买方、卖方、商品还有平台,可以抽象为人、货、场。基于人、货、场,再去进行设计和演变。
找到不变的东东,就可以大胆的进行设计、细化和开发。
扩展点
难道只有不变的是本质吗?个人认为变的也有本质。变的本质是什么呢?变的本质就是变化,把变化设计成扩展点,比如插件的方式。扩展点机制定义了与核心模型交互的方式。这样在变化的情况下,抽象为插件,让插件去实现变化的部分。这或许就是变化的本质,与不变分离,设计扩展能力,变化由插件实现。
基于核心模型和扩展点,我们可以打造出非常灵活的系统,不变的固化,变化的扩展。通过灵活的架构机制将变与不变的两者结合,构成完整的系统。这是多么美好的事情呀。在此时,或许我们也感受到了生命的美好。
是的,工作和生活本来都是快乐的。或许我们只是缺少了发现或觉察而已。
架构的简单性
昨天讲课,还在说,其实架构很简单,明白概念和流程。依据需求,一步一步的做就可以了(当然,中间可能会有些概念或边界需要澄清),得出最终的那个模型就是架构模型。
是的,很多时候。我们因为概念而走的更远,有的时候因为概念而被束缚了。比如DDD,一大堆概念,新手会感到茫然无措。影响了它的使用和学习。其实,当我们理清楚概念、场景、流程时,我们会发现原来就是这样呀,其实很简单的。不是吗?
是的,复杂只是表面,看透本质,回归简单,他就在那里。
架构的复杂性
架构的复杂在哪里呢?知识一大堆,需求一大堆,时间紧,任务重。把一个本来简单的事情,混杂了太多的或许与架构无关的内容。所以,我们要做好自己,别人由别人做就可以了。
复杂性,可以分为业务复杂性和技术复杂性。
业务复杂性,主要指系统规模大,业务需求多、涉及人员多,数据多等。解决的方法是分而治之、抽象,将复杂的问题,简单化。
技术复杂性,主要指技术实现的难度,风险性,不确定性等。比如高性能,高可用,解决方法根据具体场景,制定具体的方案。
如何管理业务复杂性和技术复杂性呢?业务的归业务管理、技术的归技术管理,比如领域驱动设计的领域层和基础设施层,一个专注业务,一个专注技术。
是的,当我们有方法的时候,复杂也可以变的简单。
本来的样子
是的,当我们看清了事物的本质。也就不再着急,不再担心路在何方了。职业规划,就按照自己清晰的目标进行。架构设计,就按照架构方法论演进。一切都是自然发生的,一切都是本该有的样子,我们何必着急呢。
是的,架构有他本来有的样子,生活有他本来有的样子,人生同样有他本该有的样子。顺其自然、努力、看清,奋斗。
架构师们、以及所有的朋友,有缘人。看透本质,回归简单,加油!!!