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