C.A.R. Hoare, The 1980 ACM Turing Award Lecture
There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.
The computing scientist’s main challenge is not to get confused by the complexities of his own making.
The cheapest, fastest, and most reliable components are those that aren’t there.
One of my most productive days was throwing away 1000 lines of code.
When in doubt, use brute force.
Deleted code is debugged code.
Brian W. Kernighan, P. J. Plauger
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 W. Kernighan
The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.
Brian W. Kernighan
Controlling complexity is the essence of computer programming.
Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defence against complexity.
UNIX was not designed to stop its users from doing stupid things, as that would also stop them from doing clever things.
If you’re willing to restrict the flexibility of your approach, you can almost always do something better.
A program that produces incorrect result twice as fast is infinitely slower.
Geer et al.
The central enemy of reliability is complexity.
Edsger W. Dijkstra
Simplicity is prerequisite for reliability.
The Eight Fallacies of Distributed Computing
Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences.
The network is reliable Latency is zero Bandwidth is infinite The network is secure Topology doesn't change There is one administrator Transport cost is zero The network is homogeneous
网络可靠 零延迟 带宽无限 安全网络 拓扑不变 有个管理者 传输代价为零 网络同构
Jon Bentley, Doug Mcllroy
The key to performance is elegance, not battalions of special cases.
Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
First, solve the problem. Then, write the code.
You can’t trust code that you did not totally create yourself.
Good code is short, simple, and symmetrical - the challenge is figuring out how to get there.
好的代码，短小、简洁，并且匀称 - 而真正的挑战在于弄清如何达到这些目标。
The best is the enemy of the good.
Dr. Pamela Zave
The purpose of software engineering is to control complexity, not to create it.
I object to doing things that computers can do.
No code is faster than no code.
As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications.
Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary.
So much complexity in software comes from trying to make one thing do two things.
欢迎关注本站微信公众号：为程序员提供最优质的博文、最精彩的讨论、最实用的开发资源;提供最新最全的编程学习资料:PHP、Objective-C、Java、Swift、C/C++函数库、.NET Framework类库、J2SE API等等.并不定期奉送各种福利.