对软件开发来说,架构师一直是一个让程序员神往的职业,但实际工作中,大多数创业公司,甚至一定规模的公司都不具备架构师这个岗位。
那么架构对于开发团队来说到底有什么重要性呢?
就目前的web开发来说,除去总架构师,对于一个需求明确的项目又可分为两层,前端架构,后端架构,当然也可能被一人包揽,笔者是一名前端工程师,所以后端架构就不做讨论,我们仅仅看前端架构。
有人可能会说,前端不就是写写页面搞些特效么,怎么还扯上架构了呢?
对这种论调,我们从架构本身来说,为什么有架构,软件是作为计算机智能控制的一种程序,本质上来讲就是人们为了能够更好的利用硬件性能和提高生产效率的工具,那么软件开发的效率就直接决定了软件的生命周期,所以架构作为能够确保软件开发效率的一种手段,从根本上就决定了这个软件的生命周期的长短。
对于一个没有架构设计的项目,其可能产生的问题包括,代码不可测试,软件维护困难,大量的冗余代码以及难以重用。
随着angular等前端框架的兴起,大量的web应用正在诞生,前端从过去大量的css少量的js到目前大量的css,超巨量的js演进
这个过程中,js代码量急速增加,没有架构的js程序所产生的问题就逐渐显现。
以目前笔者开发的一个后台应用举例,该后台包括10几个模块近百个接口,然后前端开发初始便是直接根据后端提供的文档来进行,初期还算顺利,进度也好,但是到中期,问题就来了。
后台应用包含的页面大多数都雷同,但是部分又不同,这些细节差别,因为最初的不重视导致开发中不得不进行大量代码的copy,等发现问题时,改动所需要的工作量就很大了,如果能一开始就设计好,开发一个能够满足基本需求的angular分页指令,那么后面就节省了大量的时间,同时一但需求变动,改动的工作量也将大大减少。类似的例子还很多。
对于一个项目来说,架构设计可能涉及需求核对,设计本身所需要的时间,初看这个时间成本对项目而言似乎是不必要的,但事实上对于一个具有一定规模的项目,合理的架构能节省大量的编码时间!