在买之前以为这本书是教你怎么去做一个web全栈工程师,以及介绍需要掌握的哪些技术的书,然而看的过程中才发现,是一本方法论的书。读起来的感觉有点像红衣教主的《我的互联网方法论》,以一些自己的经历和感悟来阐述web全栈工程师需要具备哪些素质,而不仅仅是需要哪些技术。这算是我买的书中看的最快的一本书。

        
        在阅读这本书之前,我对全栈工程师的理解还停留在node阶段,随着node在服务端的风生水起,有一段时间会认为使用nodejs作为服务端开发,前后端统一使用js开发,便是所谓的全栈开发,比较流行的技术栈当属 MEAN 和 Meteor 了。然而,很多创业公司,没有专职的前端,大部分由RD同时完成前端和后端代码的编写,那是不是也可以称之为全栈工程师了呢?
        
        本书对全栈工程师的理解是 : 除了在一个专精知识领域有深入的研究之外,需要知识广博和解决问题能力强。抽象出来就是 1、一专多长 ; 2、解决问题能力强(而非炫技) 。 全栈工程师的成长路线,一定是先精后广,触类旁通。如果一开始就想直接追求全栈,只会导致杂而不精,没有核心竞争力。全栈工程师还有一个特点是对产品业务,用户体验都保持较高的敏感度。而不仅仅关心自己那部分技术实现。
 
        全栈眼中的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。 意思是在一个系统中,对于任何数据或者变量,都应该有且只有一个地方配置,其余的地方只是引用这里的数据。然而事实上,很多时候,变量定义的时候可能只有一个地方使用,随着业务的发展和功能的迭代,在其他地方出现了一次引用,是不是每次遇到一个都需要抽离一次呢?其实也不然,代码重构通用的法则是三次法则: 允许复制代码一次,当相同的代码片段同时出现三次以上,就需要将其提取出来作为公共模块。
 
        前面提到的很多是具体的某种场景下的具体方法论,当然还有很多没有列出来。实际上本书还提到了很多非技术的软素质。比如说如何进行汇报。如何像上级汇报,如何跟你的上下游合作人员进行沟通。要做自己的产品的用户。想要成为全栈工程师最重要并不是会所有的技术栈,而是需要具备全栈思维,也意味着需要承担更多的责任,包括了解上下游的工作内容和知识,再考虑设计方案的时候也能考虑到上下游之间的影响,具有跨团队的推动力和影响力。
 
 
        
        

《web全栈工程师的自我修养》阅读笔记的更多相关文章

  1. 阅读《RobHess的SIFT源码分析:综述》笔记

    今天总算是机缘巧合的找到了照样一篇纲要性质的文章. 如是能早一些找到就好了.不过“在你认为为时已晚的时候,其实还为时未晚”倒是也能聊以自慰,不过不能经常这样迷惑自己,毕竟我需要开始跑了! 就照着这个大 ...

  2. RobHess的SIFT源码分析:imgfeatures.h和imgfeatures.c文件

    SIFT源码分析系列文章的索引在这里:RobHess的SIFT源码分析:综述 imgfeatures.h中有SIFT特征点结构struct feature的定义,除此之外还有一些特征点的导入导出以及特 ...

  3. RobHess的SIFT源码分析:综述

    最初的目的是想做全景图像拼接,一开始找了OpenCV中自带的全景拼接的样例,用的是Stitcher类,可以很方便的实现全景拼接,而且效果很好,但是不利于做深入研究. 使用OpenCV中自带的Stitc ...

  4. 阅读《RobHess的SIFT源码分析:综述》笔记2

    今天开始磕代码部分. part1: 1. sift特征提取. img1_Feat = cvCloneImage(img1);//复制图1,深拷贝,用来画特征点 img2_Feat = cvCloneI ...

  5. element-ui button组件 radio组件源码分析整理笔记(一)

    Button组件 button.vue <template> <button class="el-button" @click="handleClick ...

  6. element-ui 组件源码分析整理笔记目录

    element-ui button组件 radio组件源码分析整理笔记(一) element-ui switch组件源码分析整理笔记(二) element-ui inputNumber.Card .B ...

  7. element-ui Carousel 走马灯源码分析整理笔记(十一)

    Carousel 走马灯源码分析整理笔记,这篇写的不详细,后面有空补充 main.vue <template> <!--走马灯的最外层包裹div--> <div clas ...

  8. STL源码分析读书笔记--第二章--空间配置器(allocator)

    声明:侯捷先生的STL源码剖析第二章个人感觉讲得蛮乱的,而且跟第三章有关,建议看完第三章再看第二章,网上有人上传了一篇读书笔记,觉得这个读书笔记的内容和编排还不错,我的这篇总结基本就延续了该读书笔记的 ...

  9. element-ui MessageBox组件源码分析整理笔记(十二)

    MessageBox组件源码,有添加部分注释 main.vue <template> <transition name="msgbox-fade"> < ...

  10. element-ui switch组件源码分析整理笔记(二)

    源码如下: <template> <div class="el-switch" :class="{ 'is-disabled': switchDisab ...

随机推荐

  1. 《Node.js In Action》笔记之流程控制

    转向Javascript后,开始学习了node.js,选择的第一本书是<Node.js in Action> 将近一个月时间,断断续续看完,选几个点做下笔记 1.实现串行化流程控制 var ...

  2. UIView详解2

    第三.Configuring the Event-Related Behavior 1.  userInteractionEnabled  property A Boolean value that ...

  3. MySQL创建用户权限结果Trigger失败

    说来惭愧,MySQL我已经在只将用于,非常赞赏阶段. 甚至一些比较深层次的管理,不熟悉如何,我们要加强啊! 最近.系统测试,使用MySQL数据库,你需要在表上创建触发器.该数据库是安装在机.但.在任何 ...

  4. 基于.net开发chrome核心浏览器【一】

    原文:基于.net开发chrome核心浏览器[一] 说明: 这是本系列的第一篇文章,我会尽快发后续的文章. 源起 1.加快葬送IE6浏览器的进程 世界上使用IE6浏览器最多的地方在中国 中国使用IE6 ...

  5. WPF与混淆器

    原文:WPF与混淆器 时至今日,混淆依然是.Net程序的一道重要保护手段,而混淆器对WPF应用程序的支持是怎样的呢?我们今天就通过实例讲解一下. 首先建立如下图所示的简单的用户界面: 在界面代码中设置 ...

  6. Spring jdbc 对象Mapper的简单封装

    一般查询实体的时候,都需要这么使用/**      * 根据id查询      *       * @return      */     public Emp queryEmpById(Intege ...

  7. UDE-00008 ORA-31626 ORA-06512 ORA-25254

    今天在导出一个模式的时候,约140GB,出现例如以下错误: UDE-00008: operation generated ORACLE error 31626 ORA-31626: job does ...

  8. ZOJ 2334(Monkey King-左偏树第一题)

    Monkey King Time Limit: 10 Seconds      Memory Limit: 32768 KB Once in a forest, there lived N aggre ...

  9. 编辑简单的 shell程序

    编辑简单的 shell程序 知道了vi编辑器的使用规则之后,结合shell的使用规则,可以编辑简单的 shell程序试试手 题目如下: 1.用while语句创建一个根据输入的数值求累加和(1+2+3+ ...

  10. Windows Phone开发(2):竖立自信,初试锋茫

    原文:Windows Phone开发(2):竖立自信,初试锋茫 上一篇文章中,我们聊了一些"大炮"话题,从这篇文章开始,我们一起来学习WP开发吧. 一.我们有哪些装备. 安装完VS ...