在买之前以为这本书是教你怎么去做一个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. OpenStack及其构成简介1

    第一部分 OpenStack及其构成简介 一.云计算   云计算是一种计算模型,它将诸如运算能力.存储.网络和软件等资源抽象成为服务,以便让用户通过互联网远程享用,付费的形式也如同传统公共服务设施一样 ...

  2. AMDU恢复ASM磁盘组数据(測)

    --umount ASMCMD> umoung -a asmdg commands:         md_backup, md_restor         lsattr, setattr   ...

  3. 提高SQL执行效率

    原文地址:http://www.cnblogs.com/hlxs/archive/2012/05/07/2487082.html 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 ...

  4. poj1236 有向图加边变成强连通图

    给我们一个有向图,有两个问题 1.最少要给多少个点发消息,才能使得所有的点都收到消息(消息可以随边传递) 2.最少需要多少条边才能使得图变成强连通图 对于一个强连通分量,可以当做一个点来考虑,所以我们 ...

  5. 详细分析Java中断机制(转)

    1. 引言 当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时……都需要通过一个线程去取消另一个线程正在执行的任务.Java没有提供一种安全直接的方法 ...

  6. 样品GA的良好理解

    遗传算法演示样本手册模拟 为了更好地理解遗传算法的计算过程,法的各    个主要运行步骤.       例:求下述二元函数的最大值: (1) 个体编码           遗传算法的运算对象是表示个体 ...

  7. 怎么做fastreport使用离线数据源

    近期使用做项目发现fastreport使用在线数据源.紧密耦合的数据库连接字符串.在部署稍加注意.easy错误.因此,是否想到脱机使用的数据源. 官方参考: watermark/2/text/aHR0 ...

  8. Array of Objects

    You should be comfortable with the content in the modules up to and including the module "Array ...

  9. EXE文件结构和读取方法

    一.EXE文件概念 EXE File英文全名executable file .译作可运行文件,可移植可运行 (PE) 文件格式的文件,它能够载入到内存中.并由操作系统载入程序运行,是可在操作系统存储空 ...

  10. crontab,想说爱你不easy

    悲剧的背景 跑自己主动化脚本的机器连不上toastserver了, 仅仅能自己写个脚本每天跑了. 当然要放在crontab里了. 5 3 * * * sh ~/nosecron.sh 更悲剧的结果 第 ...