📄
字号:
badly and were unconcerned with appearances. Their
hair was long and unkempt and their clothes were
wrinkled and old. They crashed out hospitality
suites and they made rude noises during my
presentation."
一个大公司的程序员参加一个软件会议后向他的主管汇报:“那些别的公司的程序员都是些什么样的人呀?他们举止不雅,不修边幅,头发蓬乱,衣服破旧,根本不热情好客,还在我说话的时候乱嚷嚷。”
The manager said: "I should have never sent you to
the conference. Those programmers live beyond the
physical world. They consider life absurd, an
accidental coincidence. They come and go without
knowing limitations. Without a care, they live
only for their programs. Why should they bother
with social conventions?"
他的主管说:“我不应该让你参加这次会议,这些程序员生活在现实世界之外。他们认为生活是可笑的,一场意外的偶然而已。他们来去自由,无所牵挂,他们只为他们的程序生活。为什么要用世俗的烦扰去扰乱他们呢?”
"They are alive within the Tao."
“他们生活在道中”。
2.4
A novice asked the Master: "Here is a programmer
that never designs, documents, or tests his
programs. Yet all who know him consider him one of
the best programmers in the world. Why is this?"
一个初学者问主管经理:“有一个程序员,他从来不预先设计,也不写文档,甚至不测试他的程序,但是知道他的人都认为他是世界上最伟大的程序员,为什么呢?”
The Master replies: "That programmer has mastered
the Tao. He has gone beyond the need for design;
he does not become angry when the system crashes,
but accepts the universe without concern. He has
gone beyond the need for documentation; he no
longer cares if anyone else sees his code. He has
gone beyond the need for testing; each of his
programs are perfect within themselves, serene and
elegant, their purpose self-evident. Truly, he has
entered the mystery of the Tao."
经理说:“那个程序员掌握了道。他不需要预先进行设计;系统崩溃时他也从不烦燥,只是接受发生的一切而不管发生的事是好是坏
。他不需要写文档,他从不顾及有没有人看他写的代码。他也不需要进行测试;他写的每个程序都有一个完美的自我,平静而优雅,它们的目的不言自明。他已经真正掌握了道的精髓。”
--------------------------------------------------------------------------------
Design
Book Three
Thus spake the master programmer:
编程大师如是说:
"When program is being tested, it is too late to
make design changes."
“程序被测试时再去改变它的设计已经太晚了。”
3.1
There once was a man who went to a computer trade
show. Each day as he entered, the man told the
guard at the door:
曾经有一个人参加计算机展览,每天他进门时都对门卫说:
"I am a great thief, renowned for my feats of
shoplifting. Be forewarned, for this trade show
shall not escape unplundered."
“先警告你,我是偷盗高手,我入室偷盗的本领闻名遐迩。这次展览会也再劫难逃。”
This speech disturbed the guard greatly, because
there were millions of dollars of computer
equipment inside, so he watched the man carefully.
But the man merely wandered from booth to booth,
humming quietly to himself.
警卫因此大动干戈,因为里面有价值百万的计算机设备,所以他牢牢盯紧了这个人,但是这个人只是从一个摊位逛到另一个摊位,一边平静地喃喃自语。
When the man left, the guard took him aside and
searched his clothes, but nothing was to be found.
当这个人离开时,警卫搜了他的身,但是什么也没有发现。
On the next day of the trade show, the man
returned and chided the guard saying: "I escaped
with a vast booty yesterday, but today will be
even better." So the guard watched him ever more
closely, but to no avail.
展览会的第二天,这个人又对警卫说:“昨天我满载而归,但是今天我会收获更大。”所以警卫更加小心地盯紧他,但是这样做完全于事无补。
On the final day of the trade show, the guard
could restrain his curiosity no longer. "Sir
Thief," he said, "I am so perplexed, I cannot live
in peace. Please enlighten me. What is it that you
are stealing?"
展览会的最后一天,警卫再也不能忍住他的好奇心了。“小偷先生,”他说,“
你说我惊慌不安,请告诉我,你到底偷了什么?”。
The man smiled. "I am stealing ideas," he said.
这个人笑笑说:“我在偷想法。”
3.2
There once was a master programmer who wrote
unstructured programs. A novice programmer,
seeking to imitate him, also began to write
unstructured programs. When the novice asked the
master to evaluate his progress, the master
criticized him for writing unstructured programs,
saying: "What is appropriate for the master is not
appropriate for the novice. You must understand
the Tao before transcending structure."
有一位编程大师,他写非结构化的程序,一位初学者刻意模仿他,也写非结构化的程序。当他让大师看他的进步时,大师批评了他的非结构化程序:“
对一位编程大师合适的东西未必对一个初学者同样合适,在超越结构化之前,你必须理解编程之道。”
3.3
There was once a programmer who was attached to
the court of the warlord of Wu. The warlord asked
the programmer: "Which is easier to design: an
accounting package or an operating system?"
###有人问一位程序员,“一个财务软件和一个操作系统哪个更容易设计?”
"An operating system," replied the programmer.
“是操作系统”,这位程序员回答说。
The warlord uttered an exclamation of disbelief.
"Surely an accounting package is trivial next to
the complexity of an operating system," he said.
此人大惑不解。他说:“显然一个财务软件比起操作系统来说其复杂性是微不足道的”。
"Not so," said the programmer, "when designing an
accounting package, the programmer operates as a
mediator between people having different ideas:
how it must operate, how its reports must appear,
and how it must conform to the tax laws. By
contrast, an operating system is not limited my
outside appearances. When designing an operating
system, the programmer seeks the simplest harmony
between machine and ideas. This is why an
operating system is easier to design."
程序员说:“不,设计财务软件时,一个程序员必须成为持不同意见的用户与计算机的一个中介,他必须了解用户的操作习惯,报表要是什么形式,如何遵循税法。相反,一个操作系统完全与这些外部的东西无关。设计操作系统,程序员只需要达到自己的设想与机器之间的简单的和谐。这就是为什么操作系统反而比财务软件更容易设计。”
The warlord of Wu nodded and smiled. "That is all
good and well, but which is easier to debug?"
这些人笑着说。“不错,但是哪一个更容易调试呢?”
The programmer made no reply.
程序员没有回答。
3.4
A manager went to the master programmer and showed
him the requirements document for a new
application. The manager asked the master: "How
long will it take to design this system if I
assign five programmers to it?"
一个项目经理带给编程大师一个项目的需求,然后问大师:“如果我给你5个程序员,要多少时间设计这个项目?”
"It will take one year," said the master promptly.
“一年”,大师说。
"But we need this system immediately or even
sooner! How long will it take it I assign ten
programmers to it?"
“但是我们等不了那么长时间,越快越好,如果10程序员呢?”
The master programmer frowned. "In that case, it
will take two years."
大师皱了一下眉头说:“那就要花2年”。
"And what if I assign a hundred programmers to
it?"
“那,100年程序员呢?”
The master programmer shrugged. "Then the design
will never be completed," he said.
大师耸了耸肩说:“那这个项目就永远完不成了。”
--------------------------------------------------------------------------------
Coding
Book Four
Thus spake the master programmer:
编程大师如是说:
"A well-written program is its own heaven;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -