程序员修炼之道(二)

最近被一个诡异的问题纠缠了两三天:
当然现在已经解决了,其实原因一点都不复杂,在技术方面可借鉴的地方不多,所以我就打算强调解决这个问题的整个过程,以及通过该过程自己总结出的方法论。

一、首先了解流程。

“当你在解决项目中的一个问题时,尽可能了解其中涉及的每个流程,这比什么都重要。”
上一篇提到,代码是意图的体现。写代码的过程是解决问题的其中一环,也能将其视为解决问题的整个过程的缩影。也就是说"如果你不能将其描述为一个过程,那么你就不知道自己在干什么"的原则,对于我们在解决问题时同样适用。策划没更最新的代码、忘了传最新的配置、QA合错了代码、程序写的代码出了bug…这些所有的问题,如果你能对一个需求从提出到实现的整个流程有全面的了解,甚至连各个子流程的细节都相当熟悉,那么就能把精力投入在解决问题而不是定位问题上。以我目前的了解,解决问题通常比定位问题来得容易且有趣得多(后者还会在无形中消磨人的意志和耐心)。

二、一切通过人为得出的结论,都需要经过充分验证。

QA和策划对程序说:“我这发现了XXX的问题,麻烦你查一下。”
程序对程序说:“我这发现了XXX的问题,要不你看看你那会不会有这问题,有的话你查一下。”
(手动狗头)已经记不清有多少次因为别人得出的错误结论而一头钻到代码里找半天,游戏开发的迭代速度迅速,即使是在同一个项目里,每个人的游戏运行环境(包括平台、资源、配置等)也很可能不一致,在对同样的功能进行测试时得出不同的结论,这类事情时有发生,也难以避免。因此,在接到一个问题后,开始思考解决方案之前,再三确认该问题是否确实存在,你会发现很多时候所谓的bug其实都是误报。

三、难以找到原因时,再从头看一遍代码吧。

对业务代码而言,由于需求排期紧张或是程序员编码习惯不好,容易导致程序在运行时出现各种不可预料的结果(比如遭遇超出边界条件的输入)。这种时候"这功能是我写的,没几行代码,我很了解它在做什么。"的脆弱假设,在残酷的现实面前简直不堪一击。从头开始多调试几次,理顺代码逻辑,很多情况下问题出现的原因自然就会浮现出来。

四、好的工具能帮助你事半功倍。

组里同事已经不知吐槽过多少回有关动态类型语言难以调试的问题,更何况是对于我这种彩笔。在解决一个棘手的问题之后,我又重新意识到,假如我有一个能够对Lua进行断点调试的工具,查问题的效率肯定能高不少。

程序员修炼之道(二)相关推荐

  1. 《程序员修炼之道》读书笔记(二)--第三周

    <!doctype html> The pragmatic programmer(2).md 程序员修炼之道(二) 读书笔记--第三周 第二章 注重实效的途径 DRY原则:系统中的每一项只 ...

  2. 不可能解开的谜题 (程序员修炼之道,评注者序)

    我打算不点评任何东西.我打算在整个过程中只提问题,不做解答.可能讲述一个场景或者围绕书中的场景或观点来提问题.不解释,不回答,不评点. --与编辑就评注版风格进行的讨论,代引言 一 有本书名叫< ...

  3. 《程序员修炼之道》笔记(一)

    这几天开始看<程序员修炼之道>,也许不少人看了书的标题,第一时间会觉得这是鸡汤一类的书.但至少以我自己的感受来看,这是很棒的书,现代人文主义不是提倡自我意识嘛,自己感觉好的就是好的.况且人 ...

  4. 《程序员修炼之道(第2版)》!屹立20年王者归来!

    推荐语:收到博文视点的新书<程序员修炼之道(第2版),反复拜读,确实非常全面,涵盖编程,并发,架构,程序员个人修炼,团队,项目等方面 标题已经完全代表博文菌想说的话了! <程序员修炼之道( ...

  5. 读不完《程序员修炼之道》,至少可以读完这70条

    文章目录 推荐一.领悟程序员的哲学 推荐二.再次阅读,感受颇多 推荐三.一切阅读都是误读 推荐四.程序员升级必备 推荐五.程序员心底的小声音 推荐六.专业人士对<程序员修炼之道>的赞誉 T ...

  6. 程序员修炼之道-从小工到专家读后感

    最近3周,利用早上的时间,阅读了<程序员修炼之道-从小工到专家>,这本书写得非常好,深有感触.可能由于水平有限,对于其中一些珠玑理解没有那么强的感受.这里主要讲一些我感触特别深的点. 一. ...

  7. [转载+电子书下载]《程序员修炼之道》 笔记与感想

    [转载]<程序员修炼之道 >笔记与感想 1 我的源码让猫给吃了 不要寻找借口,从自身找原因 2 软件的熵  一句话:不以善小而不为,勿以恶小而为之. 从初期就要做好规范,不要因为是poc这 ...

  8. 《程序员修炼之道:从小工到专家》六千字读后总结

    <程序员修炼之道:从小工到专家>六千字读后总结 读完这本书,其实花的时间并不多,因为我自己有些基本的认知.这里主要是记录了一下当时的思考和总结,仅是我个人思考与经验. 这本书和极客时间的& ...

  9. 程序员修炼之道:从小工到专家阅读笔记01

    个人感受部分: 01.总是想要塑造一种自己全能的形象,害怕承认自己的无知和错误. 02.好的程序员对他或自己的职业生涯负责,并且不害怕承认无知和错误,直视我们的缺点--我们必须诚实.责任是我们要主动承 ...

  10. 《程序员修炼之道》读感

    利用春节假期的机会看了两遍<程序员修炼之道>,其实书中说的大多是浅显易懂的道理,但是多年的工作感受,多个项目的经历让我对这些道理有了更深的理解. "我的源码让猫吃了", ...

最新文章

  1. volte信令流程详解_VOLTE高清语音通话,呼叫时延低于3秒是如何做到的?
  2. java jdbc连接oracle_Java使用JDBC连接Oracle 11gR2
  3. 这样准备面试,薪资比预期至少多拿20%!
  4. leetcode-sort-colors
  5. 基于 HanLP 的 ES 中文分词插件
  6. 千字搞定数据产品选型!报表、BI、大数据平台、中台都在这了
  7. 【原创】在Windows 环境下利用SVN和Apache以及Ankh配置源代码管理服务
  8. [转]Using Named Pipes (FIFOs) with Bash
  9. python爬取汽车之家数据_Python神技能 | 使用爬虫获取汽车之家全车型数据
  10. Chrome插件分享—不定期更新
  11. 【软件技巧】【截图】浏览器自带的全网页截图工具
  12. VMware安装FusionComputer
  13. webbrowser点击网页内部链接阻止从IE打开
  14. win7工作组看不到“其他电脑”的解决方法
  15. selenium中的driver各类方法介绍
  16. python爬虫爬取强智教务系统过程
  17. iphone12android在线啥意思,iOS12要来了,你还不知道这些iPhone的隐藏功能?
  18. python使用大漠插件教程_python调用大漠插件教程04鼠键事件及基本项目思维
  19. 物联网之NB-IoT技术实践开发三
  20. 光会码数,没有结论?试试这5种分析方法

热门文章

  1. html留言页面设计,html的留言板制作(js)
  2. (附源码)计算机毕业设计Java远程健康数据管理系统
  3. 远程办公安全解决方案
  4. Android开源项目第一篇——个性化控件(View)篇
  5. 使用wunderlist进行TODO管理
  6. EnableViewState 属性
  7. eyb:Java代码通过FastDFS实现文件上传
  8. 积累资源,胜于一切项目
  9. c语言网络病毒代码大全,C语言病毒 - 各类源码 - 中国红客联盟 - Powered by HUC
  10. 在虚拟机上安装使用LoadRunner教程