作者Neisseria (Neisseria)
看板Ruby
标题[分享] 询问程式问题的方式
时间Sun Apr 10 21:21:45 2016
不限於 Ruby 语言,有关程式设计的问题都可以试试以下方式
程式问题的内容可考虑加入以下内容:
- 问题本身
- 相关软体的版本:包括系统、编译器/直译器、模组、资料库等
- 预期结果
- 实际结果
- 错误讯息 (如果有的话)
- 一小段可重现问题的程式码
见下文的 SSCCE 或 MCVE
依照这个流程思考问题,有时候,在这个过程中,问题自然而然就解决了。
有时候,会看到有些板友说「我按照某个流程写的程式,结果出了问题。」这种方式
相当没有效率,首先,想解决问题的板友要先去了解这个流程;接着,即使这个流程是
正确的,也不代表原 PO 的程式就是正确的。程式是照自己写的流程在跑,不是照自己
想的流程在跑,演算法对不代表程式就对。(要不然 bug 那里来的 = =...)
提供程式码给别人相当重要,不仅仅表示你自己明确知道问题何在,别人也可以很快地
重现你的问题。有些网友会用贴图的方式,但是,这种方式相当不怡当,想帮你解决问题
的人,还要重新输入你的程式码,有些人会因此失去耐心。如果在讨论区直接贴一大段未
排版的程式码,也是不恰当的;这些程式码没有良好的排版而难以阅读,想帮忙的人,还
得重覆复制贴上的过程。比较好的方式,是用一些专门的网站分享程式码片段。
这种可重现 bug 的范例,至少有两种参考格式:
- SSCCE:
http://sscce.org/
- MCVE:
https://stackoverflow.com/help/mcve
对於想除错的板友,值得一读相关内容。
以下是一些贴静态程式码的网站:
-
http://pastebin.com/
-
https://gist.github.com/
-
http://pasted.co/
-
http://paste.ideaslabs.com/
以下是可线上执行程式码的网站:
-
https://ideone.com/:多种语言
-
http://codepad.org/:多种语言
-
https://glot.io/:多种语言
-
https://jsfiddle.net/:网页前端
-
https://jsbin.com/:网页前端
-
http://codepen.io/:网页前端
可看「提问的智慧」,虽然这是一篇旧文,仍然值得一读。
[原文]
http://www.catb.org/~esr/faqs/smart-questions.html
[中译]
https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way
另外,推荐 Effective Debugging (有中译本)。这本书提示许多除错的观念
和方法,不限於某种特定的程式语言;苦於无法有效除错的板友,可以参考看看。
板工和该出版社没有对价关系,单纯个人推荐。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 175.182.140.247
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ruby/M.1460294508.A.1E7.html
※ 编辑: Neisseria (125.227.36.83), 02/08/2017 15:54:59
※ 编辑: Neisseria (125.227.36.83), 02/08/2017 15:59:55
※ 编辑: Neisseria (111.251.78.103), 09/19/2017 10:18:27
※ 编辑: Neisseria (112.105.249.161), 04/17/2018 23:44:26
※ 编辑: Neisseria (112.105.249.161), 04/17/2018 23:48:25