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

风控君
• 阅读 1055

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

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

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

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

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

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

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

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

软件是什么:

百度百科是这么定义的

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

维基百科是这么定义的

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

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

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

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

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

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

问题是怎么产生的?

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

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

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

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

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

那么遇到问题该怎么办?

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

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

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

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

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

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

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

什么还有问题?

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

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

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

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

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

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

第一:提问一定要有前因后果,你直接截图一个错误区域只是让对方猜你遇到了什么问题,一般人没有那么闲。
第二:提问题一定要图文集合讲清楚,要是图文不对应对方也只会是一头雾水的吃瓜和傻笑
第三:如果牵扯到新的只是区域,即使你着急使用也至少得不求甚解的会用。而不是抛给对方你没用过不知道,对,是的我当场气的吐血了。

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

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

https://github.com/tvvocold/H...

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

结语:

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

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

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

扩散

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

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Peter20 Peter20
4年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Easter79 Easter79
4年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
4年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
风控君
风控君
Lv1
谁没喝过酒尝过孤独,但却忘不了你
文章
3
粉丝
0
获赞
0