前端程序员的焦虑感从何而来?

  

  随着互联网产品越来越多,用户们必定也会不断的索取更好的用户体验,前端同学也会扮演着越来越重要的角色。责任越来越重,天花板就越来越高。   

  

  虽然前端的能力越来越强,技术栈要求也越来越高。但从工程角度出发,前端目前还处在一个较低的阶级水平。   

  

     

  

  我刚毕业的时候,在一家创业公司做全栈,职称是web开发工程师。当时前后端未分离,而我内心的工程,就是我手头整个前后端工程代码。   

  

  当时对前端工程是没有概念的,对我而言,前端就是js + css + html,它脱离了服务器就没了意义。单把这些代码拎出来,我也无法称之为工程。   

  

  后来三大框架出现前,后端逐渐分离,开始出现“前端工程化”的概念。年初时,曾面试过一家小创业公司,面试官问我前端工程化怎么做?当时我回答:“前端工程化就是:代码模块化、功能组件化,打包,构建,发布自动化,流程化”。在后面的一年中,我的工程化概念,大致还是如此,可能还会加上一个开发规范。   

  

  在这个“工程化”概念下,我所认为的“前端工程”,就是我眼前的“前端代码”,它的最终目的是为用户输出前端页面。我最关注的即是:如何更高效率,更高质量的为用户输出体验更好,能力更多的页面。这些年前端编码器围绕着这点也做了很多:   

     前端程序员的焦虑感从何而来?   
     

     

  

  ES6 +   
  多端统一   
  接口管理与嘲笑   
  框架,工具库,组件库   

  

     

  

  开发高质量   

  

  git   
  代码评审   
  开发规范   

  

     

  

  监控系统   

  

  应急——快速回滚能力   

  

     

  

  多尺寸适配   
  小程序   
  高性能   

  

     

  

  复杂交互   
  本地能力   
  动画,游戏   

  

  当然这其中也有一些交集,比如三大框架的出现既为高交互页面提供了可能性,也提高了整体开发效率与质量,比如围绕高效率与高质量会统一建设一个前端迭代管理系统,负责工程迭代,构建,发布,回滚。   

  

  其实我也就随便列列,有很多东西都没涉及,但也能感受到这几年前端领域的突飞猛进。再站在现在这个时期,看前后端未分离的时期,那段后端兼职js,视觉兼职css的上古年代,确实不能称前端代码为“工程”,更不太好意思说前端程序员为“工程师”。这也难怪很多高校老师,后端同学不屑前端。   

  

  但立足现在,前端所涉及的范围已经远远超出了当年,我们的“工程”复杂度与其能拥有的能力也超出当年的想象。我们可以骄傲地说自己是一名前端工程师了。但我觉得,我们似乎离软件工程师还差一点点。   

     前端程序员的焦虑感从何而来?   
     

     

  

  在我们这里,业务需求所涉及的前端变更是需要做系统分析的,后端系统分析也是要参加的,这些涉及了上述所说种种。尤其是当需求变更较大,波及较广,甚至还同时涉及了多个系统间的迁移,升级,重构,这其中的复杂度便会迅速上升。对于体量较大,用户量较多的业务,这就是对工程师的一个考验了。   

  

  当你不断的经历这些挑战,可能突然有一刻,会有种感觉:作为一名工程师,以前都只关注自己手头的前端代码,对于整个软件系统工程的思考实在太少了。在这个软件系统中,前端所涉及的工程扮演着哪些角色?哪些系统影响着它?它影响着哪些系统?它们的变更都会产生什么影响吗?   

  

  所以前端工程师,其作为一名软件工程师,应该从整个软件系统工程去看。前端工程师不仅仅是完成自己的前端工程,而是完成了整个软件系统中的一部分,它也不会脱离整个系统而独立。而作为整个系统工程的一部分,前端工程要懂得去索取,懂得去影响,了解整体工程的能力与痛点,思考整体工程如何去提高。   

前端程序员的焦虑感从何而来?