您好!欢迎来到爱源码

爱源码

热门搜索: 抖音快手短视频下载   

堆栈溢出,那些大规则 [源码交易平台]

  • 时间:2022-09-03 00:37 编辑: 来源: 阅读:301
  • 扫一扫,手机访问
摘要:堆栈溢出,那些大规则 [源码交易平台]
到今年为止,栈溢出在stackoverflow.com已经上线十年了。栈溢出可以说是最好的软件问答网站,为软件开发人员的工作和学习提供了极大的便利,以至于我这样一个白人,几乎写不出一个没有栈溢出的程序。 最近,Stack Overflow的创始人之一Joel Spolsky升级了一系列与Stack Overflow相关的文章,其中一篇谈到了为什么要为提问设置复杂的规则。看完之后收获很大,所以带到这里来供大家参考。 以下是参考链接:奇怪又让人抓狂的规则,提问前的必要准备。小黄鸭程序员中流行一种做法:遇到难题时,拿出一只橡皮鸭,一行一行地给小鸭子解释代码是如何工作的,结果应该是什么,实际输出是什么等等。 这个方法看起来很傻,但是每个试过的人都说很管用。 处理问题的另一个技巧是分而治之。 解决一个bug,看几千行代码是不可行的,但是可以用二分法快速定位问题是在上半部分还是下半部分。如此重复五六次,找到问题所在。 了解了这些技巧,再看乔恩·斯基特的《问得好》,你会发现很多有趣的东西。 在文章中,Skeet向求助者抛出了一个问题:你仔细看过你的问题了吗?问题的描述能否通顺,包含足够的信息?这本质上就是橡皮鸭测试。 本文的另一个问题是:如果包含代码,能否在保证其可用性的前提下尽量简化代码?注重精简——这本质上是看你有没有尝试分而治之。 在理想情况下,Skeet的文章可以帮助人们在提出问题之前,尝试按照有经验的程序员的思路自己分析问题。 但遗憾的是,很多人都没看过Skeet的文章;可能会被看到,但不要去做;更有可能的是,帮助者正忙于处理紧急的bug。听说栈溢出可以回答他们,所以他们根本顾不上某个书呆子写的冗长的求助礼仪。 栈溢出欢迎新人。纽约天际线是否能让程序员新手问一些初级的问题,这是一个关于栈溢出的普遍争论。 当我和Jeff讨论栈溢出的最初设计时,我提到了comp.lang.c,在80年代,comp.lang.c是一个非常流行的C语言社区。 C是一种简单的编程语言,功能有限,一个C编译器十万行是绝对必要的。 所以,C语言社区很快就没什么新鲜事可说了。 在20世纪90年代,C是所有大学毕业生都会学习的语言,事实上,毕业生会问一些非常基本的问题,其中大部分都是在comp.lang.c上提出的 comp.lang.c上的老鸟们真的很无聊,厌倦了每年9月都有毕业生来问:为什么不能从函数返回局部数组?真的是每年九月的洗礼。 于是老鸟们发明了常见问题(FAQ)这个概念。通过FAQ,老鸟想表达的是“你之前问的问题不要问了。” “更何况他们就是想看那些那么奇怪,那么难懂的问题,对99%的C程序员来说没有任何意义。 Comp.lang.c慢慢失去了生命力,因为它只迎合了少数在那里浸淫已久的老兵。 杰夫和我讨论了这件事。新手问题应该怎么看?我们决定也应该向新手敞开大门。关于堆栈溢出,没有简单到不能问的问题...先做好功课再问。 我们也意识到这样做的风险。一些更资深的客户会因为厌倦了重复的提问而离开。我们认为这很好。毕竟,堆栈溢出并没有提供任何终身承诺,不是吗? 如果新人们厌倦了问为什么不能返回本地数组(“但对我来说,这没什么大不了的!”)当他们离开的时候,他们依然会把余生奉献给更有价值的事情,比如整理自己收藏的专辑。 刚开始不代表不能问栈溢出的问题。为了证明这一点,我在Stack Overflow上问了一个很初级的问题,来证明网站是对初学者开放的。 因为意外结果定律,这个问题引起了不小的轰动,不是因为问题太简单,真正的问题是我提问的态度不端正。杰夫·阿特伍德是这样说的:“简单没有错,但不努力就做不到。” (另见此处)为什么问堆栈溢出这么麻烦?image问第一个关于堆栈溢出的问题时,新人通常会觉得过程太复杂太漫长。有必要吗?简直就是坑人。 这个过程有点像火人节:当你报名的时候,你想做的只是参加一场沙漠中的炫酷舞蹈,而过去的人却抱怨火人节该死的十大法则;另外,这支舞太疯狂了。离邪教不远了吧?这还不是全部。洗碗不能倒一滴脏水。你必须把它像珍贵的圣水一样带回家。你可以感受七天的脏水。 每个社区都有很多规矩,有的很怪异,有的很讨喜。当然,当你尽力修复bug的时候,这些规则似乎有点不友好。 火人节的很多重要规则看似随意,其实真的很有必要。 例如,美国土地管理局(负责批准火人节的沙漠土地)要求不得在沙漠地面倾倒污水。因为沙漠环境不能很好的吸收污水,会引发各种疾病和未知的问题。 但谁又会在意规则背后复杂的背景呢,那么多合理的理由在参与者眼里就变得武断了。 堆栈溢出也是如此。比如不允许我们问太宽泛的问题(比如我该怎么学编程?)我们的大规矩是,如果一个问题需要一个像书那么厚的答案,那就不合适。 这种问题感觉就像在医学网站上问“我的肾脏有点轻微的疼痛。怎么才能把它去掉?”这太荒谬了。人们看到这种问题应该怎么想?他们花了十年时间成为外科医生。 栈溢出的未来发展与挑战我们在培养下一代开发者的时候,希望从下一代身上看到更多的多样性和包容性,但是有一点让我非常担心。其实我们给下一代学习编程设置了很多障碍。 在很多方面,堆栈溢出设置的规则都是障碍。 但更大的问题是,新人提问时,老手粗鲁、犀利、高人一等。 我个人非常重视这一点。做开发者给了人们一个无与伦比的书写未来的机会,而新人对栈溢出的严厉批判对人、对社会、对栈溢出本身都是有害的,因为它赶走了潜在的未来贡献者。 编程已经够难了。我们的任务应该是使它变得更容易。 未来几年,我们在这方面规划了很多东西。我们不能改变所有人,也不能强迫人们变得友好。但我认为我们可以改进一些堆栈溢出的客户界面,并鼓励更友好的行为。比如,我们可以改进“问一个问题”页面的提醒,可以做更多的事情来缓解社区中过多的评论,但是目前还没有审查制度。 结论交易协议我们也在开发少量的新功能:我们可以直接向客户建立的群发送问题,在这个更小、更个性化的环境中,客户可以感受到比在Stack Overflow中更友好的体验。 即使我们想让Stack Overflow更友好,我们的主要目标也是让Stack Overflow成为世界上最好的软件开发者的数据库。 平均来说,世界上每个程序员都会得到340次堆栈溢出的帮助。我们达到了目的,当然还有其他学习编程和求助的资源。但只有栈溢出在开发者心目中如此重要,里面的信息才值得保留——就像编程界的国会图书馆一样(如果要按照书的标准来问答,自然要设置一定的规则和门槛)。


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术支持|常见问题】1556原创ng8文章搜索页面不齐(2024-05-01 14:43)
【技术支持|常见问题】1502企业站群-多域名跳转-多模板切换(2024-04-09 12:19)
【技术支持|常见问题】1126完美滑屏版视频只能显示10个(2024-03-29 13:37)
【技术支持|常见问题】响应式自适应代码(2024-03-24 14:23)
【技术支持|常见问题】1126完美滑屏版百度未授权使用地图api怎么办(2024-03-15 07:21)
【技术支持|常见问题】如何集成阿里通信短信接口(2024-02-19 21:48)
【技术支持|常见问题】算命网微信支付宝产品名称年份在哪修改?风水姻缘合婚配对_公司起名占卜八字算命算财运查吉凶源码(2024-01-07 12:27)
【域名/主机/服务器|】帝国CMS安装(2023-08-20 11:31)
【技术支持|常见问题】通过HTTPs测试Mozilla DNS {免费源码}(2022-11-04 10:37)
【技术支持|常见问题】别告诉我你没看过邰方这两则有思想的创意广告! (2022-11-04 10:37)

联系我们
Q Q:375457086
Q Q:526665408
电话:0755-84666665
微信:15999668636
联系客服
企业客服1 企业客服2 联系客服
86-755-84666665
手机版
手机版
扫一扫进手机版
返回顶部