对于软件架构,架构思维,在我前面的博客文章里面已经多次谈到,实际上对于一个开发人员来讲,如果要真正成长为一个名出色的架构师是相当困难的。一个优秀的架构师可以说是同时具备了业务加技术,宏观加微观,抽象加实现多方面能力的整合。
架构师是否需要经过长期的编码锻炼?这个答案是肯定的,而是做好是不同框架模型,不同业务领域的编码锻炼,同时在进行开发和编码过程中还要时刻有复用,抽象等设计思想。架构师有一个重要能力就是抽象能力,如果你没有经过大量的实践积累,你是很难真正培养出抽象和建模能力的。量的积累最终都是为了质的飞跃,而对于知识经验,要想达到一定的深度,就必须积累足够的广度。
一个架构师必须同时具备业务和技术两个方面的能力,或者说具备对业务需求和业务场景的理解力,如果对业务都不理解,你如何保证你最终的设计能够满足需求,保证你的模型是匹配业务,同时模型有能够具备足够的扩展性响应业务的变化。对业务理解后,是用当前最合适的技术来解决需求和业务问题,而不是用最新,最难的技术。而对于架构,往往经常犯错的地方就是沉迷到技术里面,而不管技术和业务的匹配性。
架构师要做的工作就是抽象和建模,首先是对现实业务能够抽象,先抽象为业务模型,这往往是我们常说的系统分析员要做的事情,而这个事情现在真正能做的人却是越来越少。有了业务模型后接着就是考虑如何形成技术架构模型,这个模型本身也包括了业务+技术两个方面的内容,比如我们说的核心用例,逻辑模型等。最终建完的模型需要有效的衔接业务和技术实现两个方面。
架构师建立完成的模型有两个层面的验证,一个是存理论验证,一个是等到后续开发实现完成后进行验证。好的架构师往往就是理论验证通过的模型,就一定能确保最终实现后也能够验证通过。为什么能够保证这点?其核心原因就是你当前采用的理论不是简单的都来源于书本,而是通过你自己大量的实践积累出来的知识经验,也就是我常说的你用的理论是经过你自己实证的,而不是简单的书本照抄过来的。
即一个好的架构师不是简单的能够将业务进行分解,更加重要的是确保分解完成的东西能够集成回去。
分解是最基础的,架构的重点就是要对复杂问题进行分而治之,同时保证分解后的各个部分还能够高内聚,松耦合,最终又集成为一个完整的整体。分解核心是定义问题,因此架构首先仍然需要理解清楚需求。
再回来看看架构能力如何锻炼和提升?
要提升架构能力,基础还是要提高设计能力,而设计能力的提升完全可以从编码能力开始,同时在编码过程中多去考虑编码本身的健壮性,安全,可复用性,性能等非功能性需求。在这个阶段就可以逐步锻炼抽象复用,算法结构等基础核心能力。设计能力提升一个重要表现就是你没有进行编码,但是整个业务功能如何实现你自己已经想清楚了如何做?应该拆分为哪些类,抽象哪些公共函数,选择什么样的算法等。
架构能力提升的第二点就是业务能力提升,需要具备对业务需求和业务流程的分析能力,通过对业务的分析能够抽象关键的业务模型和业务用例,业务建模完成后你才可能进行系统建模。如果是做企业信息化领域,对于供应链,生产,财务,工程项目等核心的业务线条都是可以去自己学习和了解的内容。
架构能力提升第三点仍然是思维能力的提升,对于架构思维本身仍然是类似系统思维,结构化思维,编程思维等诸多思维模式的一个合集。这里面包括了抽象,复用,分层,分解和集成,归纳和演绎,模式匹配,迭代,扩展,模拟等多种思维能力的锻炼。只有这些思维能力提升了,你的架构能力才可能更上一个层次。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- MySQL 提升笔记(一):MySQL 逻辑架构
- 如何借助 Proxy 代理,提升架构扩展性
- 2017图灵奖得主:通用芯片每年仅提升3%,神经专用架构才是未来
- 从熟练工的状态下提升到架构师的基本功和技巧
- Cadence公布人工智能芯片Tensilica DNA 100,性能提升4.7倍,能耗比提升2.3倍
- C语言 — 整形提升
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
移动Web前端高效开发实战
iKcamp / 电子工业出版社 / 2017-9 / 89.00
移动互联网的兴起和快速普及,给前端开发人员带来了前所未有的新机遇。移动Web前端技术作为整个技术链条中重要的一环,却乱象丛生。《移动Web前端高效开发实战:HTML 5 + CSS 3 + JavaScript + Webpack + React Native + Vue.js + Node.js》是一本梳理移动前端和Native客户端技术体系的入门实战书。 《移动Web前端高效开发实战:HTML......一起来看看 《移动Web前端高效开发实战》 这本书的介绍吧!