首页 > 其他 > 详细

7 搜索关键词 && 提问

时间:2020-02-25 15:39:35      阅读:46      评论:0      收藏:0      [点我收藏+]

初学者说“开发好难”,“完全无法理解”,其实不是因为他遇到的问题很难,而是他没有掌握一个良好的搜索答案和提问的方式。
今天讲的搜索和提问的问题,我个人认为是开发过程中最最最重要的问题,因为它是打开其他所有内容的钥匙。掌握了钥匙,世界的大门就会向你敞开。

搜索引擎 && 搜索关键词

我们在之前的教程中提到过多次,第一个问题,搜索引擎!选择什么!谷歌或者必应,国外谷歌,国内必应,不要用百度不要用百度不要用百度!记住这个,你就成功了一半了,剩下的一半就是搜索关键词
我们现在遇到的问题搜索都很直白,往往一两次搜索就可以得到答案,比如“Git 版本回退”、“C# 读写txt文档”,即“使用工具 使用内容”这样的关键词。
但有时也会遇到一些比较复杂、比较详细的问题,需要我们经过认真的思考和阅读才能得到答案,在这里我举几个典型的例子。

概念性的问题

比如“CDN”、“死锁”、“事务”。概念性问题最重要的就是理解其本质,为什么需要这样做、它是如何实现,至于有哪些工具可以完成它,可以关注一两个,但不必深入学习,记住概念,需要用的时候再去学习即可。
概念的学习,可以读百度百科的第一句话,但不要指望通过百度百科看明白。毕竟“百科”,就是科普向的,我们应该看更专业的文章。
看一篇文章看不懂,就放弃它、关掉,看下一篇。有些作者可能讲得比较晦涩,找到一篇自己可以理解的即可。
有时候可能会需要结合几篇文章的内容才能看懂。
有时候一个概念可能会引申出更多的概念,需要有耐心,一个个去搞清楚,同时搞清楚它们之间的关系。

只知道实现结果的问题

比如“实现XXX数据的统计与导出”、“绘制XXX数据的曲线图”,这部分问题需要耐心的拆解成不同的问题。
以“绘制XXX数据的曲线图”为例,将其拆解为:
1.根据查询条件,查询XXX数据;
2.在某种平台(桌面端/移动端/Web端)下绘制曲线图。
其中1是需要提供至少1个接口,根据业务编写接口。
2则需要根据平台和采用技术的不同,搜索不同的关键词,如:“WPF 曲线图(折线图)”、“ASP .NET 曲线图”等等。根据搜索结果,找到符合要求的绘制图形的框架。“符合条件”包括,可以1.满足业务需求,2.支持当前我们所使用的开发语言和框架,3.确认框架是否付费,如果付费价格是否可接受,4.框架可以满足后续业务的修改与更新需求,5.框架的更新速度与维护情况佳,最好项目开发活跃、社区活跃等等。
然后阅读该框架的“快速入门”篇一边开发一边学习。

细节问题

比如,运行报错、发布报错。这些问题没必要去记忆,遇到了顺着问题解决即可。如果觉得应该是个常见错误,而且比较难解,可以写篇博客记录一下,下次再遇见可以直接查博客来操作。
1.有时候有错误日志,复制粘贴去查,根据搜索结果,有时需要修复环境问题,有时需要修改代码。
2.有时候可能没有错误日志,或者错误日志的错误提示非常简短、奇怪、无法理解,比如下面这种情况:
技术分享图片
这是ASP .NET Core在发布站点后,运行失败的报错内容,报错内容几乎没有意义,此时我们需要先找到更详细的错误内容,才能对症下药。
我们可以:
(1)设置IIS日志,并通过IIS日志分析器查看日志;
(2)设置站点返回报错信息(默认发布状态不会显示报错信息),查看错误并解决;
(3)远程调试。

遇到这个问题的人很少的问题

这种情况比较少,但确实有。
有时候是中文资料匮乏,则必须去查英文资料。
有时候是英文资料都比较少。比如Xamarin的一些技术点,可能就需要曲线求国,去看看android原生的写法,再结合C#进行改写。
有时候搜索不到答案,可以:
1.在官网Stack OverflowCSDN这些网站上提问;
2.根据官方公布的技术支持邮箱,写邮件提问;
3.在相关的开发群中问问有没有人遇到类似的问题;
4.如果是开源的项目,可以阅读源代码,自己调试。
再比如,某些硬件的SDK,也可能存在这种问题。这种时候,考虑联系厂商、技术支持,最好可以联系到一线开发。把问题完整的表述出来,记录好错误日志,便于沟通。如果在这方面反馈进展不好,可能就需要反编译SDK来看看了。

一些技巧

1.有时第一次的关键词不能直接得到答案,需要根据关键词搜索的答案,不断修改关键词,找到最终的答案。
2.看博客注意看日期,越新的越好,超过5年以上的选择性看(观念、技术可能已过时),超过10年的可以关掉了。

提问

“提问”这个问题,看起来很简单,但是往往会出现问题。
“提问”可以参考我们写作文,语文老师怎么教的?时间地点人物做什么,你得描、述、清、楚、啊!
错误的姿势:

谁会 谁懂 XXX
大神是怎么做的(对方向你伸手要代码)
这个代码怎么改(对方向你扔出了一片错误代码)
XXX怎么理解(某个语言、框架或者其他大范围的概念)
......

首先,如图所示:
技术分享图片
你要相信日常开发中的大部分问题,一定有人踩过,一定可以搜索到解决方案或者替代解决方案。
再来,真的要问问题就好好问,现阶段不知道怎么问问题,我们就先去借鉴、参考一下呗————————github部分大型开源项目的issue是有issue的模板的。
比如vscode的Bug反馈模板:

<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->
<!-- Please search existing issues to avoid creating duplicates. -->
<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: https://code.visualstudio.com/insiders/ -->

<!-- Use Help > Report Issue to prefill these. -->
- VSCode Version:
- OS Version:

Steps to Reproduce:

1.
2.

<!-- Launch with `code --disable-extensions` to check. -->
Does this issue occur when all extensions are disabled?: Yes/No

ABP框架的Issues模板:

### Documentation

Please check the official documentation before asking questions: https://aspnetboilerplate.com/Pages/Documents

### GitHub Issues

GitHub issues are for bug reports, feature requests and other discussions about the framework.

If you're creating a bug/problem report, please include followings:

* Your Abp package version.
* Your base framework: .Net Framework or .Net Core.
* Exception message and stack trace if available.
* Steps needed to reproduce the problem.

Please write in English.

### Stack Overflow

Please use Stack Overflow for your questions about using the framework, templates and samples:

https://stackoverflow.com/questions/tagged/aspnetboilerplate

Use aspnetboilerplate tag in your questions.

是不是瞬间觉得思路清晰了?总结一下,问问题要酱紫:
1.详细的功能/写法问题
基本信息:我是_____开发语言_____框架,是_____环境。
大体内容:我在完成_____功能,在写_____的时候出现了问题(问题详细内容或者问题截图)。
详细问题:我尝试了_____Plan A,出现了_____错误(截图、详细错误内容)。尝试_____Plan B,出现了_____错误(截图、详细错误内容)。
寻求解决:Plan A或者Plan B的问题应当怎么解决?或者是否存在Plan C?
2.概念性问题
我不太能理解_____大概念中的_____小概念,我的理解思路是_____。不知道这样理解有没有问题?
如果是新概念,处于完全不了解的情况,应该自己找博客学习,或者问人,也应该请对方扔链接,看了有不懂的地方再问。

7 搜索关键词 && 提问

原文:https://www.cnblogs.com/Lulus/p/12361932.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!