(游戏)编程统论|如何更好的提问

在写代码的途中,我们难免会遇到一些解决不了的bug或者迷惑的问题,像他人求助便是解决问题最有效的方式之一。而提问题本身也是一门艺术;如何更好,更有条理地规划自己的问题,提高debug效率成为了敲代码乃至学习的重要技能之一

 

[第一步] - “小黄鸭{1}调试法” Rubber Duck Debugging

  遇到了棘手的bug,先不要着急求助;bug 往往并没有想象中的复杂,它只是一些语法错误或者简单的逻辑错误,藏在你所忽略的地方。而向他人(物)解释自己的问题便是处理这种问题最好的方式。当你投入地讲解问题的时候,往往就是灵光一现的时候。

 {1}这里的“小黄鸭”是作为倾听对象,TA可以是你的玩偶、手办、好友或者是npy。如果你造诣够深的话,自言自语也是没有问题的

  方法:

1.向小黄鸭清晰地解释出你现在所遇到的问题

2.向小黄鸭讲解代码和你的思路

3.通过debug 日志表或控制台获取有效信息,推测可能导致bug的原因

4.针对你的推测,尝试用三种方法来debug

 

[第二步] - 问题的格式Quesion Structure

想让他人清楚快速地明白你的问题,给予帮助,答题要求和格式是必不可少的。

 

   答题格式:

  1.期望的效果

  2.实际运行的效果

  3.实现的方式

  4.你已经尝试过的方法

  5.相关信息

 

1)期望的效果:字面意思,你希望这段代码运行出来是什么样的

2)实际运行的效果:字面意思,实际运行这段代码所呈现出来的结果(如果有报错和日志表可以适当截图备注)

3)实现方式:你是如何一步步实现你的目标效果(不用插入代码)

4)已尝试过的办法:可采用[第一步]第四点中的三种debug方法

5)相关信息:如编辑器、引擎的版本号,实现代码{2}

 

{2}实现代码:建议使用 gist.github.com{3}中的“代码要点”功能来插入代码,避免问题过于杂乱

{3}注:gist.github.com在国内已被墙,建议用bitbucketsnippets替代(摘自知乎,作者尚未试过这两种方式)

 

[注意事项&建议]

 

1.关于截屏与代码

·在且只在必要的时候进行截图备注,避免通篇图片或只有描述的情况

·在插入代码时,尽量使用上文{2}{3}的方法

 

2.其他建议

·取一个有细节的标题

·保持活跃:及时追问,及时响应答复

·标注置顶答案:在解决问题后,记得把那个答案置顶(即使是你自己解决的),这样能帮助更多人解决问题,避免他人浪费时间

·帮助他人解决问题:“教学相长也” 帮助他人也是成长的重要环节,既能巩固自己的知识,又能开阔眼界,并通过他人的提问方式来不断完善自己的提问格式

 

 

*主要思路源于https://bilibili.com/video/BV1t4411r7Ud?p=8

 

码字不易,欢迎分享,转载请标注原作者

posted @ 2021-01-30 23:01  _ZAX()  阅读(91)  评论(0)    收藏  举报