There are some great quotes I’ve been collecting.
我一直在收集一些很棒的报价。
I use them as inspiration or motto for some articles.
我将它们用作某些文章的灵感或座右铭。
软件设计 (Software Design)
There are only two hard things in Computer Science: cache invalidation and naming things.
在计算机科学中只有两件难事:缓存无效和命名。
Phil Karlton
菲尔·卡尔顿
First make the change easy (warning: this might be hard), then make the easy change.
首先使更改变得容易(警告:这可能很难),然后使更改变得容易。
Kent Beck
肯特·贝克
Simple things should be simple, complex things should be possible.
简单的事情应该简单,复杂的事情应该可能。
Alan Kay
艾伦·凯
Before software can be reusable it first has to be usable.
在软件可重用之前,它首先必须是可用的。
Ralph Johnson
拉尔夫·约翰逊
Simplicity is prerequisite for reliability.
简单性是可靠性的前提。
Edsger W. Dijkstra
埃格斯·迪克斯特拉
Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.
今天的大多数软件都非常像埃及的金字塔,成千上万的砖块彼此叠放,没有结构上的完整性,只是由蛮力和成千上万的奴隶完成的。
Alan Kay
艾伦·凯
Object-oriented programming languages support encapsulation, thereby improving the ability of software to be reused, refined, tested, maintained, and extended. The full benefit of this support can only be realized if encapsulation is maximized during the design process.
面向对象的编程语言支持封装,从而提高了软件重用,改进,测试,维护和扩展的能力。 仅当在设计过程中最大程度地增加封装时,才能实现此支持的全部好处。
Rebecca Wirfs-Brock
丽贝卡·维尔夫斯·布洛克
Premature optimization is the root of all evil
过早的优化是万恶之源
Donald Knuth
唐纳德·克努斯
Any problem in computer science can be solved with another level of indirection.
计算机科学中的任何问题都可以通过另一种间接解决方案来解决。
David Wheeler
戴维·惠勒
The best performance improvement is the transition from the nonworking state to the working state.
最好的性能改进是从非工作状态到工作状态的过渡。
J. Osterhout
奥斯特豪特
I can’t be as confident about computer science as I can about biology. Biology easily has 500 years of exciting problems to work on. It’s at that level
我对计算机科学的信心不如对生物学的信心。 生物学很容易遇到500年来令人兴奋的问题。 在那个水平
Donald Knuth
唐纳德·克努斯
Computer science is not about machines, in the same way that astronomy is not about telescopes. There is an essential unity of mathematics and computer science
计算机科学与机器无关,就像天文学与望远镜无关。 数学与计算机科学有着基本的统一
Michael R. Fellows
迈克尔·R·费洛斯
A computer lets you make more mistakes faster than any other invention with the possible exceptions of handguns and Tequila.
除了手枪和龙舌兰酒之外,计算机使您比其他任何发明都能更快地犯更多错误。
Mitch Ratcliffe
米奇·拉特克利夫
编程语言(Programming Languages)
Many people tend to look at programming styles and languages like religions: if you belong to one, you cannot belong to others. But this analogy is another fallacy.
许多人倾向于看编程风格和语言,例如宗教:如果您属于一个人,就不能属于另一个人。 但这比喻是另一个谬论。
Niklaus Wirth
尼克劳斯·沃思
More good code has been written in languages denounced as “bad” than in languages proclaimed “wonderful” — much more.
与被称为“奇妙”的语言相比,用“坏”的语言编写的优质代码要多得多。
Bjarne Stroustrup
比尼亚·斯特鲁斯特鲁普
Sun Microsystems had the right people to make Java into a first-class language, and I believe it was the Sun marketing people who rushed the thing out before it should have gotten out.
Sun Microsystems有合适的人员将Java变成一流的语言,我相信是Sun营销人员在事情还没解决之前就赶了出来。
Alan Kay
艾伦·凯
There are only two kinds of languages: the ones people complain about and the ones nobody uses.
语言只有两种:人们抱怨的语言和没人使用的语言。
Bjarne Stroustrup
比尼亚·斯特鲁斯特鲁普(Bjarne Stroustrup)
规划/管理(Planning / Management)
The cost of adding a feature isn’t just the time it takes to code it. The cost also includes the addition of an obstacle to future expansion. The trick is to pick the features that don’t fight each other.
添加功能的成本不仅只是编写代码所花费的时间。 成本还包括增加未来扩展的障碍。 诀窍是选择不会互相竞争的功能。
John Carmack
约翰·卡马克
You can mass-produce hardware; you cannot mass-produce software; you cannot mass-produce the human mind.
您可以批量生产硬件; 您无法批量生产软件; 你不能大量生产人类的思想。
Michio Kaku
加智道夫
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.
设计系统(广泛定义)的任何组织都将产生其结构是组织通信结构副本的设计。
Melvin Conway
梅尔文·康威
Optimism is an occupational hazard of programming: feedback is the treatment.
乐观是编程的职业危害:反馈是治疗。
Kent Beck
肯特·贝克
清洁代码(Clean Code)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
始终进行编码,好像最终维护您的代码的那个人会是一个暴力的精神病患者,知道您的住所。
John Woods
约翰·伍兹
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
任何傻瓜都可以编写计算机可以理解的代码。 好的程序员编写人类可以理解的代码。
Martin Fowler
马丁·福勒
Deleted code is debugged code.
删除的代码是调试的代码。
Jeff Sickel
杰夫·西克尔
Every time you write a comment, you should grimace and feel the failure of your ability of expression
每次发表评论时,您都应该做个鬼脸,并感到自己表达能力的失败
Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.
有些人遇到问题时会想到“我知道,我会使用正则表达式。” 现在他们有两个问题。
Jamie Zawinski
杰米·扎温斯基(Jamie Zawinski)
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
调试的难度是一开始编写代码的两倍。 因此,如果您尽可能聪明地编写代码,那么根据定义,您就不够聪明,无法对其进行调试。
Brian Kernighan
布赖恩·克尼根(Brian Kernighan)
Any code of your own that you haven’t looked at for six or more months might as well have been written by someone else.
您六个月或更长时间没有看过的自己的任何代码也可能是由其他人编写的。
Eagleson’s Law
伊格森定律
Code is like humor. When you have to explain it, it’s bad.
代码就像幽默。 当您必须解释时,这很糟糕。
Cory House
科里楼
So much complexity in software comes from trying to make one thing do two things.
试图使一件事情做两件事情导致软件如此复杂。
Ryan Singer
瑞安·辛格(Ryan Singer)
One day my daughter came in, looked over my shoulder at some Perl 4 code, and said, “What is that, swearing?”
有一天,我的女儿进来,看着我的Perl 4代码,说:“那是什么,发誓?”
Larry Wall
拉里·沃尔
A long descriptive name is better than a short enigmatic name. A long descriptive name is better than a long descriptive comment. -
长的描述性名称比短的神秘性名称更好。 长描述性名称胜于长描述性注释。 --
Talk is cheap. Show me the code.
谈话很便宜。 给我看代码。
Linus Torvalds
莱纳斯·托瓦尔兹
Software testing is not only ensuring absence of bugs but also ensuring presence of value.
软件测试不仅可以确保没有错误,还可以确保价值的存在。
Amit Kalantri
阿米特·卡randint里(Amit Kalantri)
The key to building a great product is building a great team first. To me, great teams aren’t bound by roles, but they’re driven by moving forward.
打造出色产品的关键是首先打造一支出色的团队。 对我来说,伟大的团队并不受角色的束缚,但他们是由前进所驱动。
Alan Page
艾伦·佩奇
Correctness is clearly the prime quality. If a system does not do what it is supposed to do, then everything else about it matters little.
正确性显然是最重要的品质。 如果系统没有执行应做的事情,那么其他所有相关的事情都将变得无关紧要。
Bertrand Meyer
贝特朗·迈耶
Quality is free, but only to those who are willing to pay heavily for it.
质量是免费的,但仅限于那些愿意为此付出高昂代价的人。
DeMarco and Lister
德马科和李斯特
There are two ways to write error-free programs; only the third one works.
有两种编写无错误程序的方法; 只有第三个有效。
Alan J. Perlis
艾伦·J·佩里斯
As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications.
通常,软件系统只有在实际应用中被使用并且反复失败后才能正常运行。
David Parnas
戴维·帕纳斯(David Parnas)
As the Tests get more Specific, the Code gets more Generic.
随着测试变得更加具体,代码变得更加通用。
重构 (Refactoring)
Whenever I have to think to understand what the code is doing, I ask myself if I can refactor the code to make that understanding more immediately apparent.
每当我不得不考虑理解代码在做什么时,我都会问自己是否可以重构代码以使这种理解更加明显。
Martin Fowler
马丁·福勒
面向对象(Object Oriented)
Let there be no doubt that object-oriented design is fundamentally different than traditional structured design approaches: it requires different ways of thinking about decomposition, and it produces software architectures that are largely outside the realm of the structured design culture.
毫无疑问,面向对象的设计与传统的结构化设计方法在根本上是不同的:它需要不同的思维方式来进行分解,并且它产生的软件体系结构基本上不在结构化设计文化的范围之内。
Grady Booch
格雷迪·布奇
I invented the term ‘object oriented’, and C++ was not what I had in mind
我发明了“面向对象”一词,但我并不是想到C ++
Alan Kay
艾伦·凯
Part of the objective of this series of articles is to generate spaces for debate and discussion on software design.
本系列文章的目标之一是为软件设计的辩论和讨论创造空间。
We look forward to comments and suggestions on this article.
我们期待对本文的评论和建议。
This article is also available in Spanish here.
本文也可以在西班牙语中找到。
Original Thread on Twitter
Twitter上的原始主题
翻译自: https://medium.com/dev-genius/software-engineering-great-quotes-3af63cea6782