感悟

  1. 全栈工程师是特别有价值的,价值不在于能一个人当几个人用,而是在于能和其他部门的人更好的沟通配合,在于能更全面的考虑问题。学习过安全知识的后台人员,写出来的代码更加健壮;学习过后台的前端人员,知道怎么要求后台数据,能让服务器压力更小;在出问题的时候,全栈工程师能在全系统各个流程的立场上找出各种出问题的可能性。所以,全栈工程师并不是指会写前端又会写后台的人员这么简单,价值也不仅是减少公司开支这么简单。

  2. 代码架构的思考程度是个博弈论问题。思考过于深入,考虑太过周全,往往浪费太多的思考时间和编码时间;思考太过简单,虽然可以最快见到原型结果,可是以后会带来高维护问题。所以,我做抉择的时候通常根据下面几点来定夺时间:

    1. 现在考虑的这个点,目前花的时间或者将来要花的时间是否已经达到了使用最粗暴的方式来实现他所花的时间,如果是,那么就不太划算,应该立刻停止。
    2. 这个点以后来优化的成本有多高,如果将来来更改的时间只需要很小的成本,那么当前以粗暴的方式来实现节约思考和编码的时间是有很大收益的。
    3. 考虑这个点实现成本和收益有多大,如果只是一个可有可无的功能而需要花费大量的精力来思考,那么就舍弃或者不思考。
    4. 自己的思考是否是卡在某个自己觉得无法实现的问题上,如果某个问题是没办法解决的,我倾向于还是使用粗暴方式先实现一遍,再去优化,因为很多问题无法从全局的角度考虑周全,有时候在实现的过程中,很多当时无法考虑清楚的问题会迎刃而解。