网星软件吧 关注:6贴子:149
  • 3回复贴,共1

优秀的程序员都有哪些习惯?

只看楼主收藏回复

「我不是卓越的程序员,我只不过是一个有着卓越习惯的程序员。」技术大牛 Kent Beck 曾这样说过自己。是哪些习惯成就了优秀/卓越的程序员?


1楼2018-01-30 13:45回复
    1.尽量亲自动手去完成事情,你将会有一种直觉,知道如何去处理该事物。
    2.积累案例,从数据表中标注着你已获得的数据开始。
    3.在找到通用办法之前,先找到一种能解决当前问题的办法。


    2楼2018-01-30 13:46
    回复
      4.让算法本身输出调试信息。你应该能够转储每一步的中间结果,并用文本编辑器或是 Web 浏览器手动检查它们。
      5.不要为单元测试操心,定义出正确行为才是首要的。
      6.检查文件的大小,最大的文件总是包含了程序的实体部分,至少是指向程序实体内容的分派程序。
      7.从主循环调度开始单步调试程序,可以学到很多关于控制流的东西。


      3楼2018-01-30 13:46
      回复
        8.寻找数据结构,特别是做为参数传递到许多函数中的那些。大多数程序具有一个小的关键数据结构集合,找到它们,理解代码的其余部分会变得容易的多。
        9.写单元测试,这是确认你所理解的代码与真实代码工作方式无误的最好方法。
        10.移除代码,看看什么出问题了。(但不要 check in!)
        11.在开始所有工作之前,甚至是在剖析(profile)之前,建立一套代表典型现实世界的使用基准。别让性能倒退,除非你确信已经登峰造极,高处不胜寒,并且更好的解决方法还藏在世界的某个角落里无人发现(如果出现了那种情况,在版本控制系统(VCS)中标记你的分支,以便在发现错误之后回来更改。)。
        12.许多性能瓶颈都出现在系统的交叉处。在所有 RPC 框架中搜集时间统计数据,并且有一些方式来传播和可视化每个服务器的请求时间,以及哪些部分的请求是并行的,哪里是关键路径。
        13.剖析(Profile)。
        14.通常,避免不必要的工作可使你赢在起跑线上。缓存最大的计算结果,粗略评估不常用的东西。


        4楼2018-01-30 13:48
        回复