开源软件遇到问题该怎么提问才能解决?

开源软件遇到问题该怎么提问才能解决?

身为程序员,在这一行业都是从一个一个坑里爬出来的。

古人云:知之为知之,不知为不知,是知也。

所以嘛咱不懂就要问,但其实问问题也是有一定的学问和技巧的。

找到了开源软件

一个刚入行的菜鸟遇到的问题可能90%在网络上都能搜得到,因为问题的形成过程就产生了很多答案围绕着它。现在这个网络发达的时代随便搜索下基本上都能找到前辈留下的填坑方法。

但是,比较难受的是不乏有些同学喜欢认师傅,当然这是好事哈。但也不能但凡遇到问题就去找师傅,师傅也有自己的事情的对吧。如果你把遇到任何问题就找师傅的方式看成和师傅套近乎等等就大错特错了。

下面我们以开源软件为例看看我们遇到问题要怎么处理。

软件是什么:

百度百科是这么定义的

image-20201225171543130

维基百科是这么定义的

image-20201226094638963

我上学的时候老师是这么定义的:

code

软件 [一个可以执行指令集的集合工具]

比较幸运的是现在开源代码很多,github gitee 拥有大量优质开源项目,比如自己有需求但懒得写或者说造轮子,先去github 或者 码云上看看,用藏在眼镜片后面的火眼金睛来判断一个陌生的项目质量,你只能根据他的排名,star以及论坛火热程度来判断。虽然这些不能完全代表项目质量的优和差但方向总是对的。

但是逆向思维想象,可能有些项目刚起步排名低,但是质量并不比那些成千上万的star差,他差的仅仅是开源的时间和宣传的力度。其实这个和现实生活中基本一样,你这家店开的早,知名度等等就比新店要高一点。

问题是怎么产生的?

任何一个开源项目从你下载到本地,配置运行环境和各种环境变量,以及第三方服务,数据库,缓存框架,http服务等等都是个要细心顺着官方的文档一步步来完成的。

这就像你从乐高玩具店买回来玩具一样的,你不能直接打开包装安装的吧,总的看看图纸,即使很熟悉也得大概看下这个是玩具的大概设计之后才能以最快的速度拼装起来。当然你说我不看图纸也能装起来,我确定这种人肯定有,但咱们今天就不叫这个真了哈。

什么完善的产品都有个说明文档或者安装教程,咱们想要快速的运行自己想要的项目就得根据文档来,什么持久服务,缓存服务根据软件设计需要配置即可,但这个过程中根据系统差异会有不同。

以java环境为例,windows 和 Mac 环境好配置方式就不太一样,nginx等等都是大同小异,很多小白在开始可能就被这些差异搞得死去活来的,还别说因为平台差异导致代码运行时出现的bug了,是不是想想脑袋都大了。

上面描述的还只是配置环境问题,软件一般可不止这么简单,还牵扯到第三方服务,比如和社交软件api对接,调用打印机,调用上下游api传递业务数据,很多时候可能因为一个配置的字符不对都运行不起来。软件开发毕竟是软件开发不是软件使用者哈,这就也体现出程序员就是把问题自己消化,输入优质软件供大家使用,这里给中国30万+的程序员点赞。

那么遇到问题该怎么办?

首先还是的从官方文档或者教程中找,尤其是文档,可能因为自己的理解和书写人的思想有着差异,导致你需要的答案跟看见的目录不对应,这样你找自己的答案就比较困难了,但是现在凡是文档基本上都有搜索功能,根据目录找不到就搜索嘛,实在不行感觉他就在这个分类下 control + f 总可以的吧,针对线上线下的文档算是杀手锏了吧!

所以根据官方文档看下来能看到最好,看不到就搜索即可,什么搜不到?我们继续往下看。

填坑大王

因为各种原因导致使用者找不到自己问题的解决方案怎么办?这时候可以百度,毕竟搜索引擎会帮我们找到或者偏向自己想要找的答案,也要使用好问题的关键词,这样搜索引擎会更容易更准确的帮我们找到对应问题的解决方案。

关于搜索关键字搜搜我们可以另外拿出来一篇文章讲讲

根据以上方法你可能就消灭掉了百分十90%的问题了,开源软件也是使用编程语言编写的么,和自己做公司的项目仅仅是业务不同而已,所以问题的出现基本上是通用的。

谢谢填坑大王

什么还有问题?

这时候你遇到的问题可能就是开源软件自己的特殊化配置或者真的是坑了。

那么遇到了怎么办?开源软件也有自己的仓库,官网,交流群或者论坛等等,通过这些方式联系开发者总是可以解决的吧!

如果真的是问题,给他的仓库提交pr也是一种解决方式对吧!

看了半天你在教我怎么查问题吗?不我是在讨论怎么有效的提问题!

来看看群里遇到了这个同学的提问,你觉得我该怎么回答。

image-20201226224718476

第一:提问一定要有前因后果,你直接截图一个错误区域只是让对方猜你遇到了什么问题,一般人没有那么闲。

第二:提问题一定要图文集合讲清楚,要是图文不对应对方也只会是一头雾水的吃瓜和傻笑

第三:如果牵扯到新的只是区域,即使你着急使用也至少得不求甚解的会用。而不是抛给对方你没用过不知道,对,是的我当场气的吐血了。

关于怎么提问其实这个话题很早就出现了,也有很多大大牛答复的比我好比我更专业。

这里我推荐大家阅读 How-To-Ask-Question-The-Smart-Way

https://github.com/tvvocold/How-To-Ask-Questions-The-Smart-Way

image-20201226225753923

结语:

最后我澄清下哈,我也是从菜鸟过来的,我也知道那种无助的感觉。尤其是在赶项目的时候遇到了自己的只是盲区或者技术难点。那种着急我懂得。但是越是在那个时候就得月保持冷静,既然有问题那么肯定能解决。但是很多问题可能一时半会还真解决不了,那么我们也可以想办法绕过去。总之肯定能解决或者变相的解决

从业这么多年来很多时候提的问题被别人笑话过,也笑话过别人(狗头)但最终讲下来我还是比较乐于回答问题的,因为帮助他人解决问题之后的那种认同感是促进自己知识输入的动力

喜欢本文的朋友,欢迎关注微信公众号 西北大粽子 每周持续更新1-2篇原创内容,在工作和生活的路上一起学习闹闹磕。码字不易点赞 再看

扩散

我参与的一个电商开源项目,每月都会固定更新功能和bug优化。
访问戳这里

posted @ 2021-03-08 11:35  西北大粽子  阅读(85)  评论(0编辑  收藏  举报