1. 永远假定你的code是存在错误的

好的软件工程师应该有这样的认知:无论看起来怎么完美的代码,都有可能出现bug。 好的后端工程师善于测试,并且善于全面测试,也有能力在项目开始的时候就可以依靠经验实现聪明的架构,让代码更加持续、有效率地集成;从单位测试,功能测试,Fuzz测试,性能测试,到压力测试,都尽可能使测试自动化,然后再加入必要的人工检查。

 

2. 高度重视整体系统的安全性

即使你是后端工程师,一样需要提防前端受到攻击。 此外,事前验证(validation)比事后清理(sanitization)更加重要,前提是团队中的每个人都以正确的方法执行。

 

3. 单个请求的执行远比你想象的重要

好的后端工程师不会将单个请求作为平均数测算去看待它的重要性,而是作为曲线测算,在整体的架构中看待它的重要性,比如:网站首页的访问如果能加速100毫秒,通常比后续页面访问一秒的提速,要重要的多。

 

4. 尽可能多地运用工具监测系统和应用

后端工程师应该确保收集到的海量数据经过有效的过滤后成为可用的数据。 也需要避免在过程中真正可用数据的丢失。你需要对数据库知识非常了解,确定及学习相关知识,否则迟早会得到惨痛教训。

 

 

5. 学习全栈知识,深入理解前端和后端的联系

作为后端工程师意味着需要比前端开发和产品经理考虑提前一步,预期他们的行动和想法。你应该无时无刻都在思考前端和产品,直到最后可以清楚的知道他们下一步需要什么,甚至在他们提出要求前,就已经把他们要的东西做出来了。

有时你需要花费6个月来让后端架构跑得更快,然而可能在前端UI上仅花费10分钟,两者在最后可能会有相同的商业效果。越清楚全栈的概念和流程,就可以成为越好的后端工程师。这不是要你精通所有知识,而是不断学习前端会有怎么样的可能性,比如OS操作系统,数据库。举缓存这个例子:了解缓存的知识,对后端工程师处理缓存相关的问题非常有用,比如如何处理好缓存崩溃,估算需要多少缓存,有多少缓存不受控制。

 

 

6. 善用调试工具(debugging tool)

使用好调试的工具,也要学会用Google等不断地调研、学习,而不要紧盯着问题,盲目固执地捣鼓好几个小时。好的后端工程师会承认自己没有掌握的远比已经掌握的知识要多。  当你进行整体调试时,依靠的只能是经验,所以要不断积累经验,并且要善于跟同事学习,从他们的经验中学到解决方法。

 

7. 懂得取舍技术

不要只停留在一套技术上,也不要直接应用最新技术,尤其是在你还不了解它的弱点和成熟程度的时候。在选择新技术的时候,根据实际的工作情况,运用极端的情况和条件去进行测试,做出比较后,再做出选择。

 

 

8. 不要停止学习

学校的教育本身不会培养出优秀的后端工程师,对学习的热情、坚持,能够根据业界的需求去做好独立项目,是非常重要的。 学无止境,要永远坚信你的技术和能力还可以提高,这个状态应该从学校开始,持续到职场以及之后的一生。

 

9. Scalabiity的意识很关键

你现在做的架构,可以迁移到Netflix或者Uber这样的数据量级的平台吗? 你现在做的工作,可以作为以后更大型项目的基础,或者被运用到吗? 让自己的技术和成果具备扩展性和升级性,是任何合格的后端工程师的要义和内涵。 Scability做得越好,能力越强。