在买以前觉得这本书是教你怎么去作一个web全栈工程师,以及介绍须要掌握的哪些技术的书,然而看的过程当中才发现,是一本方法论的书。读起来的感受有点像红衣教主的《个人互联网方法论》,以一些本身的经历和感悟来阐述web全栈工程师须要具有哪些素质,而不只仅是须要哪些技术。这算是我买的书中看的最快的一本书。css
在阅读这本书以前,我对全栈工程师的理解还停留在node阶段,随着node在服务端的风生水起,有一段时间会认为使用nodejs做为服务端开发,先后端统一使用js开发,即是所谓的全栈开发,比较流行的技术栈当属
MEAN 和 Meteor 了。然而,不少创业公司,没有专职的前端,大部分由RD同时完成前端和后端代码的编写,那是否是也能够称之为全栈工程师了呢?
本书对全栈工程师的理解是 : 除了在一个专精知识领域有深刻的研究以外,须要知识广博和解决问题能力强。抽象出来就是 一、一专多长 ; 二、解决问题能力强(而非炫技) 。 全栈工程师的成长路线,必定是先精后广,举一反三。若是一开始就想直接追求全栈,只会致使杂而不精,没有核心竞争力。全栈工程师还有一个特色是对产品业务,用户体验都保持较高的敏感度。而不只仅关心本身那部分技术实现。
全栈眼中的http这一章分别从前端视角和后端视角来分析先后端所关注的侧重点。前端能够经过抓包工具或者chrome devtools 查看每一个请求,同域下的资源请求数量等来找出优化点,更关注的是一个页面的请求数,资源大小等直接影响页面展示速度的因素。然后端则更关注如何更快速的响应请求,以及减少服务器压力。并给出了须要先后端协同工做的一种http优化方案,bigpipe。
web发展到今天,岗位愈来愈细分。开始数据库设计是由相关的RD完成,如今有专门的DBA来操做和管理数据库,而前端也有些公司也分为UI工程师(也叫css重构工程师),JS工程师。细分以后的有点的职业门槛更低,长期在某一个方向上可能会有更深的造诣,然而缺点也很明显,每一个人都被圈定在某个title限定的圈子里,接触的知识面变窄,接近的上下游之间,存在一部分灰色地带,职责不是很好划分,项目沟通成本增长。
向移动转型。不论是大公司,仍是创业公司,向移动端转型是一个必然的趋势。而在转型的过程当中,对前端是有巨大的机会和挑战。咱们都知道,H5页面一直在体验上被吐槽,webview加载和渲染性能远远赶不上原生应用,然而,H5的做为web 应用,自然具有的灵活性又是原生应用没法作到的,为了兼具两种应用的优点,Hybrid 便诞生了,对于混合应用,必需要求对原生应用有必定的了解,Scheme协议,H5资源离线化,native 和 h5 之间的通讯,才能帮助前端工程师更好和原生应用开发者合做。
设计原则:不论是什么方向的开发,有些设计原则是共通的。好比 DRY 原则:don't repeat yourself。 意思是在一个系统中,对于任何数据或者变量,都应该有且只有一个地方配置,其他的地方只是引用这里的数据。然而事实上,不少时候,变量定义的时候可能只有一个地方使用,随着业务的发展和功能的迭代,在其余地方出现了一次引用,是否是每次遇到一个都须要抽离一次呢?其实也否则,代码重构通用的法则是三次法则: 容许复制代码一次,当相同的代码片断同时出现三次以上,就须要将其提取出来做为公共模块。
前面提到的不少是具体的某种场景下的具体方法论,固然还有不少没有列出来。实际上本书还提到了不少非技术的软素质。好比说如何进行汇报。如何像上级汇报,如何跟你的上下游合做人员进行沟通。要作本身的产品的用户。想要成为全栈工程师最重要并非会全部的技术栈,而是须要具有全栈思惟,也意味着须要承担更多的责任,包括了解上下游的工做内容和知识,再考虑设计方案的时候也能考虑到上下游之间的影响,具备跨团队的推进力和影响力。