高效使用Google的搜索
完整匹配
在Google的输入框里,所有的空格都被理解为加号。如果你输入的是mysql foreign key,那么返回的搜索结果里也许既有mysql存在,也有foreign key存在,但不一定有mysql foreign key存在。另外,过分常用的、单独存在没有意义的词汇往往被忽略掉,比如the/a/that等等。
如果你想要找含有mysql foreign key这个词组的文章,那么你必须在搜索词前后加上引号,输入”mysql foreign key”,不管你输入的时候使用的是全角字符(“或者”)还是半角字符(”),Google都照样能够正确处理。这就是引号的作用:返回完整匹配的结果。
筛选
为了进一步筛选搜索结果,还需要学会另外一个符号 — 减号(-)。比如,”mysql foreign key” - “nodejs”就要求Google返回含有mysql foreign key但不存在nodejs的文章。
通配符
另外一个程序员耳熟能详的符号是正则里最常露脸的星号,看到星号就下意识的想到通配符,在Google的搜索规则中也是如此,输入”mysql connect error *”就会返回所有已知的关于MySQL连接错误的文章。
站内搜索
最后推荐一个威力无穷的语法,让你有机会再对搜索结果做一次筛选。比如针对程序员查bug,stackoverflow是我个人觉得可信度最高也最全面的一个网站,所以我就经常使用site的魔法,像”mysql foreign key” site:stackoverflow.com就会返回对应网站内所有关于mysql foreign key的文章。
语言和日期
像2shou叔这种英语阅读能力不过关的人,遇到急事就不能一篇篇翻原版文档了,不得不求助国内的二手货;这时,Google界面上的一个小按钮就帮上大忙了:点击搜索工具 - 不限语言,下拉选择所有简体中文网页,一下子就回到了祖国母亲的怀抱。有时用新出的库版本,别忘了隔壁那个不限日期按钮,可以帮你找到最最新鲜的技术文章。
Tab,以及宅男福利
只限Chrome的一招:输入某个网址,再点击Tab,会能直接使用这个站点的站内搜索了,比别人快个几秒,关键时刻也很管用不是么。
谷歌的安全搜索怎么关闭
搜索网址加个参数:&safe=off
高效使用百度搜索
intitle
搜索范围限定在网页标题
网页标题通常是对网页内容提纲挈领式的归纳。把查询内容范围限定在网页标题中,有时能获得良好的效果。
例如:出国留学 intitle:美国
intitle:和后面的关键词之间不要有空格。
site
搜索范围限定在特定站点中
您如果知道某个站点中有自己需要找的东西,就可以把搜索范围限定在这个站点中,提高查询效率。
例如:百度影音 site:www.skycn.com
“site:”后面跟的站点域名,不要带“http://”。site:和站点名之间,不要带空格。
inurl
搜索范围限定在url链接中
网页url中的某些信息,常常有某种有价值的含义。您如果对搜索结果的url做某种限定,可以获得良好的效果。
例如:auto视频教程 inurl:video
查询词“auto视频教程”是可以出现在网页的任何位置,而“video”则必须出现在网页url中。
双引号“”
和书名号《》
精确匹配
查询词加上双引号“”则表示查询词不能被拆分,在搜索结果中必需完整出现,可以对查询词精确匹配。如果不加双引号“”经过百度分析后可能会拆分。
查询词加上书名号《》有两层特殊功能,一是书名号会出现在搜索结果中;二是被书名号扩起来的内容,不会被拆分。 书名号在某些情况下特别有效果,比如查询词为手机,如果不加书名号在很多情况下出来的是通讯工具手机,而加上书名号后,《手机》结果就都是关于电影方面的了。
-
不含特定查询词
查询词用减号-语法可以帮您在搜索结果中排除包含特定的关键词所有网页。
例子:电影 -qvod
查询词“电影”在搜索结果中,“qvod”被排除在搜索结果中。
+
包含特定查询词
查询词用加号+语法可以帮您在搜索结果中必需包含特定的关键词所有网页。
例子:电影 +qvod
查询词“电影”在搜索结果中,“qvod”被必需被包含在搜索结果中。
Filetype
搜索范围限定在指定文档格式中
查询词用Filetype语法可以限定查询词出现在指定的文档中,支持文档格式有pdf,doc,xls,ppt,rtf,all(所有上面的文档格式)。对于找文档资料相当有帮助。
例子:photoshop实用技巧 filetype:doc
百度高级搜索页面
高效使用GitHub的搜索
stars:
、language:
、forks:
,其实就是设置项目收藏、开发语言、派生的搜索条件,比如输入 stars:>=500 language:javascript
,得到的结果 就是收藏大于和等于 500 的 javascript 项目
搜索条件是可选的
例子:in:name spring cloud stars:>5000 language:java pushed:>2019-01-01
github搜索位置
”in:name 关键词“(包括名称和描述)
如: in:name xxx 搜索项目名包含’xxx’
“in:description 关键词”(查找描述的内容)
如: in:description xxx 搜索描述中包含’xxx’
”in:readme 关键词“ (查找readme中的内容)
如:in:readme xxx 搜索readme中包含’xxx’
github搜索条件
“starts:” 、 “forks:” 限定收藏数和fork数
starts:>=500 收藏大于等于500
starts:10..20(区间)
forks:>1000 限制forks数量
“language:关键词” 限定语言
如:language:javascript 语言类型是javascript
“size:>=5000” 仓库大小大于5000K
“pushed:>2020-04-01” 更新时间
“license:apache-2.0” (有些不开源的)
“user:shenbh” 搜索某个人或组织的仓库
如何避免问“蠢”问题
给回答者判断题
如果可以给回答者判断题,那就尽量给判断题,比如你经过一番思考和试验后问他,“我查了半天感觉是这个原因导致的问题,你看是不是这个原因呢?”。这种情况下,别人只需要回答“是”或者“不是”,这会大大减少你占用别人的时间。
若给不了判断题,尽量给回答者选择题
如果给不了判断题,那就尽量给回答者选择题。比如这样的提问,“我查了一下,这个问题可能是这几个原因导致的,一个可能是……还有一个可能是……你经验比较丰富,你觉得是哪一个?”,这种情况下,别人只需要帮你选择1还是2,3还是4,自然也会节省不少时间。
若给不了选择题,尝试给填空题
如果是在给不出选择题的话,那就只能尝试给一下填空题,比如,“我遇到了一个问题,我查了下,应该用一个命令就可以处理,但我死活查不到这个命令,你知不知道这个可以XXX的命令是啥?”这是一个典型的填空题,别人只需要告诉你命令是什么就可以了。
若连填空题也给不了,那就只能给主观题
如果连填空题也给不了,那就只能给主观题了,比如直接问别人,“你觉得这个问题可能是啥原因导致的?”这就是一个典型的主观题。但我个人非常不推荐这种方式提问,因为主观题就基本等于你把问题直接丢给别人了。你唯一能做的,就是尽可能多的提供信息,比如错误日志、源代码,又或者是你排查之后得到的一些线索。
针对前面的问题的补充问题的背景
针对前面的问题的补充,不管问什么问题,一定要记得介绍问题的背景,否则别人很可能会一脸懵逼。
高效学习
1、整体性学习策略
2、整体性学习技术
3、超越整体性学习
4、整体性学习小结
提高开发效率,提升开发质量
问题回顾
客户反馈Android问题处理流程
前提:与客户场景一致:正式线测试线、账号密码、门店、操作步骤
- 与ios比对
- ios一样的问题:初步定位为接口问题,抓接口给后台
- ios正常:Android重复客户场景
- Android正常:初步定位为版本不同问题–>旧包抓接口
- Android重现异常:看日志
- 有错误日志:定位问题
- 无错误日志:抓接口给后台
Android开发流程
- 理清需求:不清楚的与产品沟通
- 确认工时(如果后台已开发,理清后台大致操作流程)
- 拆分需求:确认各个需求大致开发周期
- 开发。新的功能,先写demo,再整合进项目中
- 自测。与ios互测。多想些临界值进行测试。
Android打包升级
- 代码中:
- 更改Build Variants:选择对应渠道的release版本
- 更改Constants:更改链接
- 更改build.gradle:更改版本号/名
- 本地运行验证
- 上平台下载旧的安装包,安装(注意保存旧包)
- 本地验证:打包新包,覆盖安装
- 给客户确认
- 给运维:新包改名,给新包、安装路径
- 平台发布:(一般:选择性升级)
- 升级验证:重新打开app,进行升级