简介:RobPike,目前是Google最顶尖的软件工程师之一,曾是贝尔实验室Unix开发团队的成员,Plan9操作系统开发的主要领导者,Inferno操作系统的主要领导者系统开发。他是创造Go语言和Limbo语言的核心人物。下面是他与大家分享的一段在贝尔实验室工作的经历,改变了他对bug调试的思路。主要工作经历:曾在贝尔实验室工作多年。我在计算机科学研究中心,你会感到惊讶,这是一个小实验室,但它是Unix诞生的地方,而当我来这里工作时,Unix已经是第七版了。我从2002年开始在谷歌工作,主要是开发一些系统基础设施。主要成就:我最出名的可能是我与BrianKernighan(Unix开发团队的重要成员)合着的两本书:《The Unix Programming Environment》和《程序设计实践(The Practice of Programming)》(30年后仍在印刷!),其中之一影响最大的应该是我和KenThompson共同开发的UTF-8编码格式。在其他方面,如计算机图形学、操作系统、软件开发工具等方面也做了大量工作,最近为谷歌开发了Go编程语言。以下是RobPike的5条编程原则Principle1.你无法预测每个程序的运行时间,瓶颈会出现在意想不到的地方,所以在分析瓶颈原因之前不要盲目猜测。原则2.测量。不要在测试之前优化你的程序,即使在测试之后也要小心,除非代码的一部分占用了运行时间的绝对百分比。原则3.花哨的算法通常对小的n不好,而n通常很小,这些算法有一个很大的常数。不要使用花哨的算法,除非你确定n越来越大。(即使n不增加,也必须先遵循第二个原则。)原则4.与简单算法相比,花哨的算法更容易出现错误,也更难调试。尝试使用简单的算法和数据结构。原则5.数据主导。如果你选择了正确的数据结构并且把事情组织得很好,算法的效率是显而易见的。编程的核心是数据结构,而不是算法。Pike的原则1和2实际上再次强调了TonyHoare的名言,“过早的优化是万恶之源”。肯·汤普森(KenThompson)将派克的第三和第四原则改写为“遇到麻烦时,尝试最简单、最残酷的方法”。原则3和4也是KISS理念的体现。FredBrooks在《人月神话》中首先阐述了原则5,而原则5通常被概括为“用*结构编写简单的代码”。原文链接:utexas.edu翻译:伯乐在线-makttub翻译链接:http://blog.jobbole.com/70607/
