从编程思想到软件开发和设计能力培养( 六 )
架构师是否需要经过长期的编码锻炼?
这个答案是肯定的 , 而是做好是不同框架模型 , 不同业务领域的编码锻炼 , 同时在进行开发和编码过程中还要时刻有复用 , 抽象等设计思想 。 架构师有一个重要能力就是抽象能力 , 如果你没有经过大量的实践积累 , 你是很难真正培养出抽象和建模能力的 。 量的积累最终都是为了质的飞跃 , 而对于知识经验 , 要想达到一定的深度 , 就必须积累足够的广度 。
一个架构师必须同时具备业务和技术两个方面的能力 , 或者说具备对业务需求和业务场景的理解力 , 如果对业务都不理解 , 你如何保证你最终的设计能够满足需求 , 保证你的模型是匹配业务 , 同时模型有能够具备足够的扩展性响应业务的变化 。 对业务理解后 , 是用当前最合适的技术来解决需求和业务问题 , 而不是用最新 , 最难的技术 。 而对于架构 , 往往经常犯错的地方就是沉迷到技术里面 , 而不管技术和业务的匹配性 。
架构师要做的工作就是抽象和建模 。
文章插图
首先是对现实业务能够抽象 , 先抽象为业务模型 , 这往往是我们常说的系统分析员要做的事情 , 而这个事情现在真正能做的人却是越来越少 。
其次就是基于业务模型考虑如何形成技术架构模型 , 这个模型本身也包括了业务+技术两个方面的内容 , 比如我们说的核心用例 , 逻辑模型等 。 最终建完的模型需要有效的衔接业务和技术实现两个方面 。
架构师建立完成的模型有两个层面的验证 , 一个是纯理论验证 , 一个是等到后续开发实现完成后运行期验证 。 好的架构师往往就是理论验证通过的模型 , 就一定能确保最终实现后也能够验证通过 。 为什么能够保证这点?其核心原因就是你当前采用的理论不是简单的都来源于书本 , 而是通过你自己大量的实践积累出来的知识经验 , 也就是我常说的你用的理论是经过你自己实证的 , 而不是简单的书本照抄过来的 。
好的架构师不是简单的分解 , 更加重要的是确保分解完成的东西能够集成回去 。
分解是最基础的 , 架构的重点就是要对复杂问题进行分而治之 , 同时保证分解后的各个部分还能够高内聚 , 松耦合 , 最终又集成为一个完整的整体 。 分解核心是定义问题 , 因此架构首先仍然需要理解清楚需求 。
集成是配合分解完成的动作 , 最终分解完成的各个组件或子系统 , 通过合适的接口设计 , 最终还能够集成为一个完整的整体 , 分解仅仅是加速开发和降低问题复杂度 , 如果分解后的内容无法集成在一起 , 那么分解就没有任何意义 。 分解+集成可以理解为架构最核心的思考方式和方法 。
再回来看看架构能力如何锻炼和提升?
要提升架构能力 , 基础还是要提高设计能力 , 而设计能力的提升完全可以从编码能力开始 , 同时在编码过程中多去考虑编码本身的健壮性 , 安全 , 可复用性 , 性能等非功能性需求 。 在这个阶段就可以逐步锻炼抽象复用 , 算法结构等基础核心能力 。 设计能力提升一个重要表现就是你没有进行编码 , 但是整个业务功能如何实现你自己已经想清楚了如何做?应该拆分为哪些类 , 抽象哪些公共函数 , 选择什么样的算法等 。
架构能力提升的第二点就是业务能力提升 , 需要具备对业务需求和业务流程的分析能力 , 通过对业务的分析能够抽象关键的业务模型和业务用例 , 业务建模完成后你才可能进行系统建模 。 如果是做企业信息化领域 , 对于供应链 , 生产 , 财务 , 工程项目等核心的业务线条都是可以去自己学习和了解的内容 。
架构能力提升第三点仍然是思维能力的提升 , 对于架构思维本身仍然是类似系统思维 , 结构化思维 , 编程思维等诸多思维模式的一个合集 。 这里面包括了抽象 , 复用 , 分层 , 分解和集成 , 归纳和演绎 , 模式匹配 , 迭代 , 扩展 , 模拟等多种思维能力的锻炼 。 只有这些思维能力提升了 , 你的架构能力才可能更上一个层次 。
推荐阅读
- 空调行业要大变天:董明珠万万没想到,输给了雷军?
- 台积电突然宣布!华为也没有想到,“喜从天降”的竟是日本?
- 机器人|万州区举办“中国梦科技梦”机器人编程大赛
- 俄罗斯突然宣布!任正非也没有想到,一切来得如此之快
- 支付宝年度账来了!网友惊呼:没想到我这么有钱?
- 支付宝年度账单出炉 网友:没想到我这么有钱
- 华为突然宣布!腾讯也没有想到,一切来得如此快
- 英特尔推出可检测代码错误的ControlFlag机器编程工具
- 可编程3D打印耗材可帮助普通3D打印机轻松实现多材料物品的制作
- 小米11宣布取消充电头!“雷布斯”向库克致?外媒:真没有想到