您最喜欢编程的什么报价?[关闭]


Answers:


231

调试的难度是一开始编写代码的两倍。因此,如果您尽可能聪明地编写代码,那么根据定义,您不够聪明,无法对其进行调试。

—布莱恩·W·克尼根(Brian W. Kernighan)


每当我编写一些聪明的代码时,我都会提醒自己这条规则,并回顾一下它是否可以用一种更简单的方式来做事,以便以后维护或至少添加一些注释。 。
CodexArcanum 2010年

6
否则就是真实格言的推论:别忘了图表可以增加您的脑力。您可以将“记住大事的结构”换成非易失性纸张。
Tim Williscroft 2010年

1
我喜欢这句话,但其含义是,我们最多应该首先将50%的精力用于编码。
乔恩·霍普金斯

4
我认为这暗示着,当稍长一些,更明显的方式可以正常工作时,您应该避免程序员使用“聪明”的方式进行操作的冲动。
Fishtoaster

2
但是,如果它是“完美的”代码怎么办?没有办法“调试”它。
Mateen Ulhaq 2010年

183

如果两者都冻结,则在水上行走和按规格开发软件很容易。

—爱德华五世·贝拉德


年度行情,我要用这个
-Gortron

我讨厌这个 从来没有,那么谁在乎呢?
JP Alioto

138

即使考虑到霍夫施塔特定律,也总是比您期望的更长。
  — 霍夫施塔特定律


72
脑堆栈溢出。
内森·泰勒

3
@Joe D:我很好奇您如何将递归英语句子改写为一个非递归句子。
乔恩·普迪

4
它可能会收敛为足够小的“更长”值
mouviciel

3
+1-我很自豪能与Douglas Hofstadter一起跻身十亿程序员榜首。
彼得·特纳

@gf:将其转换为以后定义源(带破折号)时,不保证开头的介绍(“ A:Blah。”->“ Blah。-A”)。这不会删除部分报价。

126

始终进行编码,好像最终维护您的代码的那个人会是一个暴力的精神病患者,知道您的住所。

—里克·奥斯本(Rick Osborne)


12
似乎我继续维护我希望知道创作者居住地的代码,但这可能不是我的好事。
WalterJ89 2010年

为“杀手级应用”带来新的含义。在他被监禁之后,我似乎总是会保留他的密码。
webbiedave 2010年

8
@webbiedave您在ReiserFS上工作吗?:)
尼尔·艾特肯

如果杀手找到工作,公司必须真的恨你。
Mateen Ulhaq 2010年

118

您可以拥有该项目:

  • 准时完成
  • 完成预算
  • 正确完成

选择两个。

—未知



5
让我想起了类似的三角形,但有女性。“你可以有一个女朋友:聪明,有魅力,有良好的个性。”
Maxpm 2010年

不要忘记例外确实存在,尽管它们很罕见-不要指望它。
Mircea Chirea

5
@Maxpm:我听到的版本是“ 4S:聪明,性感,桑德,单身。选择3”。
梅森惠勒

1
因此,当时间和预算没有限制时,您将无法正确执行。很高兴知道。
Antsan 2011年

111

有些人遇到问题时会认为“我知道,我会使用正则表达式”。
现在他们有两个问题。

—杰米·扎温斯基


5
永恒的经典之作
神秘因子(Factor Mystic),2010年

5
有些人在遇到问题时会想到“我知道,我将使用<一些解决问题的实现方式”。现在他们有两个问题。
卡勒姆·罗杰斯

40
有些人,当一个问题不觉得面对,他们只是张贴在计算器上
马特·艾伦

5
有些人不理解正则表达式,而讨厌别人,因为其他人则讨厌。
2010年

3
@Yar-我从来没有亲自发现过时的语法,而且密度是一件好事。为什么用更冗长的格式表示类似模式的匹配?如果需要对复杂的事物进行清晰说明,则扩展模式可以与注释一起使用。
2010年

110

在理论上,理论与实践之间没有区别。但是,实际上有。

— Jan LA van de Snepscheut


27
我还听说过“理论与实践之间的差异在理论上比在实践中要小”。

1
我听说过罗杰·佩特(Roger Pate)的提法,是奥林·希弗(Olin Shivers)在《 T的历史》中写的。保罗·格雷厄姆(Paul Graham)在这里谈论此事:paulgraham.com/thist.html
Michael H. 2010年

2
我要说的是,如果理论不能转化为实践,那么该理论就是不完整的。
宫坂丽(Rei Miyasaka)2010年

105

您可以在绘图台上使用橡皮擦或在工地上使用大锤-Frank Lloyd Wright

不完全是编程引号,但它肯定适用。


14
高度适用的IMO
John MacIntyre 2010年

3
幸运的是,当大多数软件出现问题时,它不会崩溃并杀死人。
尼尔·艾特肯

8
除非它炸毁了阿丽亚娜5号飞机(航班501),或者使人受到致命的高剂量辐射……
弗兰克·希拉尔

2
具有讽刺意味的是,我相信弗兰克·劳埃德·赖特(Frank Lloyd Wright)更为复杂的建筑物已经失修了。
Maxpm 2010年

1
@ TomWij,@ Walter,@ Roger:请不要使用您的metatalk弄脏本网站。如果我想听到争吵,请访问meta.stackoverflow.com。在这里,您应该进行这种有趣而永恒的对话。
Dan Rosenstark 2010年

103

当今的编程是在努力构建更大,更好的防白痴程序的软件工程师与试图生产更大,更好的白痴的宇宙之间的竞赛。到目前为止,宇宙正在胜利。

—里克·库克


98

用代码行衡量编程进度就像按重量衡量飞机建造进度。
  - 比尔盖茨


2
-Bill

3
在多个级别上都是如此。一颗宝石。

3
关键的区别当然是,飞机的最终重量是已知的,而软件的最终LOC数是未知的。
mmyers,2010年

5
那么,为什么大多数Microsoft产品给我这样的感觉,那就是我被脚束缚在努力脱离跑道的飞机上?
Sharpie

86

计算机科学中有2个难题:缓存失效,命名和1位错误。

-Leon Bambrick     (@ secretGeek

(实际上,在我整理列表时,http://q4td.blogspot.com/search/label/programming中的所有内容都可以看到。)


我从未见过引文指出事物的命名难度。我突然感到团结。
CodexArcanum 2010年

那是三件事。前两个是Phil Karlton的原始报价。@CodexArcanum。命名的东西就是绝招。
StuperUser 2011年

@StuperUser 糟糕!你错过了这个玩笑!
阿戈斯

在指出这一点后花了两秒钟来得到它。赫尔普·德尔普。
StuperUser 2011年

85

一个月内有九个人无法生育。
  -弗雷德·布鲁克斯(Fred Brooks),《神话人月》


14
从技术上讲:18个人一个月内无法生孩子
Here Be Wolves 2010年

13
@HereBeWolves或10
WalterJ89 2010年

14
1个人和8位女士怎么了?听起来对我来说差不多。

4
如果我们去双胞胎或三胞胎,我们需要更少的女士。

12
虽然第一个孩子将遭受9个月的延迟,但适当的流水线将继续每月提供1个...
Brian Knoblauch

82

我们应该忘记效率低下的问题,例如大约97%的时间:过早的优化是万恶之源。然而,我们不应放弃我们那临界的3%的机会。
  — Donald Knuth,“ 转到语句的结构化编程”,《 JACM计算调查》,第6卷,第4期,1974年12月,第268页

摘录自以下两段,不仅说明他得出上述结论的原因,而且还提供了有关如何避免此错误的信息:

毫无疑问,提高效率会导致滥用。程序员浪费大量时间来考虑或担心程序非关键部分的速度,而在考虑调试和维护时,这些提高效率的尝试实际上会产生严重的负面影响。我们应该忘记效率低下的问题,例如大约97%的时间:过早的优化是万恶之源。

然而,我们不应该放弃那关键的3%的机会。优秀的程序员不会因这种推理而沾沾自喜,他应该明智地仔细看待关键代码。但只有识别出该代码之后。对程序的哪些部分真正关键进行先验判断通常是一个错误,因为使用测量工具的程序员的普遍经验是他们的直观猜测会失败。(...)


2
@Roger Pate:我怀疑你是对的,大多数人没有意识到报价还有更多。
Scott Dorman 2010年

5
希望您不要介意我添加了更多内容。我认为这非常重要,也许这将鼓励更多的人阅读全文。:)

@Roger Pate:一点都不!
Scott Dorman 2010年

5
+1感谢您的完整报价。我不知道还有更多。
Evan Plaice 2010年

2
很好地张贴了整个报价。许多人只知道排序版本,却不知道Knuth的实际含义。
DasIch 2010年

80

调试器不会删除错误。他们只显示慢动作。

—未知


35
或者在许多情况下,使它们不再完全显示。
Graeme

12
@Graeme这些案例被称为Heisenbugs :)
这就是狼

76

代码的前90%占开发时间的前90%。剩下的10%的代码占了开发时间的90%。

汤姆·嘉吉


最初是谁说的?
Paddyslacker

10
我认为您会发现90%的代码需要90%的时间,而最后10%的代码需要90%的时间。
FacticiusVir 2010年

2
贝尔实验室的汤姆·卡吉尔(Tom Cargill):en.wikipedia.org/wiki/Ninety-ninety_rule
Bill Karwin 2010年

1
我知道这一点:20%的伴侣喝80%的啤酒。
Zzz

1
就个人而言,我想说代码的前90%占了开发时间的前90%。然后,其余90%的代码将占用开发时间的其他90%。
卡兹巨龙

70

如果Java具有真正的垃圾回收,则大多数程序将在执行时将其删除。
  —罗伯特·塞威尔


22
有趣,只是让我想到了php。
WalterJ89

2
@ WalterJ89:不用担心!直到PHP 5.3,PHP才被重新引用。
zneak 2010年

我喜欢这一个!
MDV2000

@ WalterJ89好吧,我认为没有理由单独提出Java而不是COBOL,C ++,VB或其他。
Mark C

69

计算机科学与计算机无关,而天文学与望远镜有关

— Edsger Dijkstra


4
是的,但这应该与编程有关,而不是计算机科学。[狡猾的笑容]
马克C 2010年

编程只是应用计算机科学中积累的知识。您不需要计算机进行编程,至少没有像大多数人那样熟悉的计算机。
DasIch 2010年

我一直觉得编程最令人讨厌的事情是我无法将其与计算机分开。
LoveMeSomeCode 2011年

57

如果调试是消除软件错误的过程,则编程必须是放入它们的过程
  。— Edsger Dijkstra


24
这就是为什么我喜欢将我的工作称为“ 调试”
deceze 2010年

9
和维护一样进行调试
Joe D

1
@JoeD不,“监视”。
Mark C 2010年



46

有两次我被问到:“请巴贝奇先生,如果您把错误的数字输入机器,会得出正确的答案吗?” 在一个案例中,一个上议院议员,在另一个案例中,一个下议院议员提出了这个问题。我不能正确地理解可能引起这种问题的那种混淆观念。
  - 查尔斯·巴贝奇

可以说,程序员遇到愚蠢的用户问题的第一个记录的案例。


5
听起来像是T恤的主意!“用户错误:自1832年以来犯规”。(日期?)
Mark C

42

我一直希望我的计算机能像电话一样易于使用。我的愿望实现了,因为我再也无法弄清楚如何使用电话了

-比尼亚(Bjarne Stroustrup)


42

直到代码运行之前,一切都在进行。
  —沃德·坎宁安


39

Unicode支持不是“功能”。这是预期的行为。

当然,它非常具体,但这是我的最爱,因为过时的字符集仍被广泛使用...


3
现在,您只需要争论哪个unicode
Martin Beckett 2010年

@马丁:不是真的,因为各种类型之间的转换是无损的。
Billy ONeal

奥格的痛苦!为什么我必须与客户争辩说不,我们不能“仅仅”将整个基础设施切换到Latin-1,以使其对他的便利无限增加?“毕竟,周围的人是这里使用这些怪异的特殊字符,可以不用那么辛苦了吧?”
Piskvor

39

注释您的代码就像清洗浴室-您永远都不想做,但是确实为您和您的客人创造了更愉快的体验。

—瑞安·坎贝尔


1
咩......我在我的生活中遇到的大多数的意见是在假定的意见可以弥补写得不好的代码下写..
riwalk

您可以打扫浴室,但是如果淋浴间只有冷水而洗手池没有肥皂,那将是一个不愉快的经历。编写易于阅读的代码,而不是编写大量注释来解释问题。
Keyo 2010年

我实际上发现评论非常令人愉快。有时,我会在由星号和斜杠组成的整洁的小盒子中发表重要的评论。再说一次,我真是个怪胎。
Maxpm 2010年

2
我也喜欢写评论,但您不想看到我的洗手间。
Timwi 2010年

我曾经在洗手间里,关于如何以及为什么要保持洗手间的清洁,到处都是冗长的评论。不干净

38

愚人想知道,聪明人问。
  —本杰明·迪斯雷利(Benjamin Disraeli)



@TomWij:编辑此文章时,请参阅我的评论,这些引号已分为单独的答案。

35

编程就像性爱:一个错误,您一生都必须支持它。
  —迈克尔·辛兹(Michael Sinz)


34

不能完美地解决一切,而不能完全解决问题。
  —法国作家安托万·德·圣埃修伯里(1900-1944),霍姆斯(1939)

(看来,达到完美不是在没有什么可以补充的时候,而是在没有什么可以补充的时候。)


而且它也适用于音乐
Heinz Z. 2010年


2
@David Kendal:太好了!同样,亨利·大卫·梭罗(Henry David Thoreau)说:“简化,简化”。这总是让我想到“简化”。
Bill Karwin 2011年


31

作为制定通过埃里克雷蒙

莱纳斯定律

有了足够大的Beta测试人员和合作开发人员基础,几乎每个问题都将得到快速表征,并且解决方案对于某人来说是显而易见的。

或者,非正式地,

只要有足够的眼球,所有的bug都是浅的。


听起来有点像猴子/打字机规则对我...
肖恩·帕特里克·弗洛伊德

为什么Linux爱好者似乎花更多的时间重复此报价而不是修正错误?
Timwi 2010年

或者,阿特伍德的StackOverflow口号是:“我们每个人都不像我们所有人一样愚蠢”。参见codinghorror.com/blog/2008/09/…–
Evan Plaice
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.