之前看CSDN的问答区,很多时候,感觉问题的描述所要表达的意思非常模糊,或者说描述不清。如果是想回答问题的人想回答问题,首先要搞清楚是什么问题,就需要再问问题主很多细节的东西。三来四去,才能搞清楚具体的问题是是什么,这就比较耗时。然后才能开始作答。
原因之一是问问题的人,脑子里知道很多细节,但是在描述的时候想不起来说。这就和之前上大学的时候,听我们宿舍老五讲的一个经典故事非常相似:他说他小时候,有一次给别人出数学题:
他问:"七加等于几?",把对方问的一愣!
老五还要说:"你咋这么笨,七加等于十呀!"
其实对方不笨,倒是老五忘记说出"三"了!"三"在老五的脑子里,但是没说出来。
幸好没有把七也省略,不然就是"加等于几?",同时少了七和三更让人懵得慌!
原因之二是,答题人的知识盲区,也是理解问题的一个关键。
最近在工作中也是遇到一例,如果是开问题单,分析的人当然是希望可以看到稍微具体点的测试基本步骤,如果这个没有,而只是给出大体的步骤和现象,那就需要自己从日志里巴拉巴拉,或者和测试人员再深入交流一下。表达能力也算是工作的一个基本技能。
举例,一个问题描述,如下,中间省略一百字:
"代码编辑器:vs2019
语法:c++
。我最近用cmake软件编译了一个库,要用在我的项目里面。。。。。。。。。求指点"
其中里面有很多地方用到了"我","我的","这个","那个",还有一些没有必要的信息,其实可以省略掉,简洁版:
"最近用cmake编译了一个库。想用里面的一个文件中的函数。比如就叫temp.h文件吧。然后就在main函数中去用了。但是调用temp.h文件中的函数A()是这样写的,功能是判断是不是宏定义了CC,如果宏定义了就返回true否则返回false。在项目的属性里面的预编译器中设置了CC宏。但是调用这个函数还是返回的false。但是如果把temp.cpp文件放到项目下面当成一个cpp文件。然后在运行就变成true了。这是怎么回事?而且temp.cpp文件在最开头也定义了宏CC。为啥链接进项目函数返回的是false,而把文件放到项目下面就是true了呢。把文件放到项目下面会报错。temp.cpp文件中一些函数重定义,这个重定义是和链接进来的包含temp.cpp的lib库有冲突。把那些冲突函数注释了之后,就可以运行出来A()是true。但是注释的那些函数正是我想要用的函数。"
上面描述还有一个问题:temp.h/temp.cpp,这两个文件名称,回答问题人知识区相关;如果不是特别说明,C的程序员可能认为是temp.h改名成了temp.cpp。而如果是C++,一个是类声明文件,一个是类成员函数定义文件。后来通过深入交流,发现这个文件名称是开源库里的,所以根本就不需要例如,直接写开源库文件名就好了,不需要temp的举例。