[观点]我为什么开始学习架构?
[观点]我为什么开始学习架构?
导语:架构师是IT行业里独一无二的职业,既要精通软件开发(甚至包括配套硬件系统)技术,又要掌握业务知识,还要周旋于公司不同部门之间,协调各种予盾。做到这些绝非易事,CSDN软件研发频道特开辟系列专栏,通过或专访或约稿的形式,对话国内外一线架构师,分享他们的工作经验和观点,帮助网友们少走弯路。在这篇文章中,中科金财架构师任红军分享了他对架构师方法论的心得。
对架构关注的兴趣起源于工作中对IT设备、系统工艺之美和结构之美的感动。
中科金财架构师任红军
我原本在公司的系统工程部从事实施部署、硬件设备改进等工作,工作的机会使得我能够接触比较多的硬件设备。
如果你曾打开众多厂家的笔记本电脑、服务器主机或者其他硬件产品,并且看着各个厂家的设备经历若干年的使用而表现出的种种不同,你就会发现那些优秀的产品,无论是在小到螺丝钉的使用、主机上的文字标示,还是机身的材质、外部接插件受力设计和散热风路的设计,无不处处体现出长期关注客户的丰富经验、专业精神与对用户真实的关怀。
你会发现,IT世界中冰冷的机器也能有感动人的工艺之美。机缘巧合,数年前被公司银行业的软件部门经理收入旗下。这个部门多年从事银行验印相关产品和解决方案的开发,形成了以验印核心围绕的前台柜员平台验印、网点批量快速验印、城市分行票据集中处理、总行级全国性扫描仪验印系统的完整解决方案体系。
反向入手行业业务概念及流程
在学习和熟悉这些系统的过程中,不是代码编写出身的我,从数据库结构、界面功能入手反向熟悉了银行相关业务概念及流程,在学习编程工具和程序编码的基础上分析并绘制了系统的结构图、业务流程图。随着结构的逐渐清晰,我被其中体现的结构之美深深地吸引。
能够在工作状态下动态增减服务器而不会造成任务遗失的自动验印机群、使用接口技术实现了设备无关的清分机控制程序甚至能够使用虚拟清分机进行无物理设备情况下的程序开发。
多个系统在松耦合的情况下,协作分工,延展到各个相关业务部门,在不丢失原有业务服务功能的情况下,完成了业务流程的巨大改变。
其实,抽象的程序世界同样能够体现出结构的美。对于架构知识的努力追寻和学习原因于本职工作的压力。目前我在公司的内部信息系统开发部门。与大多数企业的内部信息部门相似,公司从购买商品化专业软件到自己进行部分个性化开发,随着自主开发的展开,交付速度延迟和各个应用间的信息集成越来越凸现出矛盾。
提供一个个程序提高手工工作的效率,快速的生成统计报表者并不难,但要从提升效率的工具上升到能够带来企业商业价值的系统就没那么容易了。优秀而勤奋的程序员、严谨的项目管理过程并不足以完全解决系统建设上面临的困难,缺乏方法论的指导和良好的架构,堆砌再多的功能也形不成运转正常的系统,反而陷入补丁堆中,迫于交付压力制造出种种诡异、野蛮的结构,越来越复杂越来越不可理解。随着时间的发展,业务功能交付速度将程指数关系递减。
开展架构活动,方法论的指导成为工作的必须。
在我看来,IBM架构方法论以一种近似数学推导的思路对架构这样一种依赖设计师个人经验、创造性的艺术性工作进行了梳理和规范,使架构设计成为可遵循可重复的活动。通过学习及与同行讨论,梳理了工作思路,打开了视野。
从企业业务架构入手
其中一个收获是:由架构师的分类可以明确,要解决企业系统的商业价值问题,需从企业业务架构入手,规划企业的信息架构,而后才是应用系统架构、数据库架构、安全架构、部署架构、软硬件架构,配以必要的过程规范和方法,才有可能最终得到一个对客户有价值、切实能实现、有一定质量保证的企业级系统。
我心目中那些美的事物似乎有着许多共同点,例如:简洁、可理解、和谐、适可而止、可扩展,不仅能给建造者自己带来不断鼓舞的自信,也能给建造者和使用者同样持续的信心,每每可以唤起优雅和喜悦的感受。