开源软件遇到问题该怎么提问才能解决?
来源:SegmentFault
时间:2023-02-19 15:26:24 353浏览 收藏
有志者,事竟成!如果你在学习数据库,那么本文《开源软件遇到问题该怎么提问才能解决?》,就很适合你!文章讲解的知识点主要包括MySQL、开源、后端,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~
开源软件遇到问题该怎么提问才能解决?
身为程序员,在这一行业都是从一个一个坑里爬出来的。
古人云:知之为知之,不知为不知,是知也。
所以嘛咱不懂就要问,但其实问问题也是有一定的学问和技巧的。
一个刚入行的菜鸟遇到的问题可能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优化。
访问戳这里
今天关于《开源软件遇到问题该怎么提问才能解决?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!
-
499 收藏
-
244 收藏
-
235 收藏
-
157 收藏
-
101 收藏
-
209 收藏
-
497 收藏
-
335 收藏
-
467 收藏
-
303 收藏
-
176 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习