谷歌大牛 Rob Pike 的 5 个编程原则

开发 后端 项目管理
Rob Pike,目前谷歌公司最著名的软件工程师之一,曾是贝尔实验室Unix开发团队成员,Plan9操作系统开发的主要领导人,Inferno操作系统开发的主要领导人。

简介:

Rob Pike,目前谷歌公司***的软件工程师之一,曾是贝尔实验室Unix开发团队成员,Plan9操作系统开发的主要领导人,Inferno操作系统开发的主要领导人。他是缔造Go语言和Limbo语言的核心人物。下面是他分享给大家他在贝尔实验室工作的一段经历,这段经历改变了他对bug调试的思想认识。

主要工作经历:

我在贝尔实验室工作了很多年。我在计算机科学研究中心,你会很诧异,这是个很小的实验室,但这里却创造了Unix,我来到这里工作的时候Unix已经发布了第七版。从2002年起我来到谷歌工作,主要开发一些系统基础架构。

最主要的成就:

我最为人所知的应该是我和Brian Kernighan(Unix开发组的重要成员)合著的两本书:《The Unix Programming Environment》 和 《程序设计实践(The Practice of Programming)》 (30年后的今天仍在印刷出版!),影响范围最广的一件事应该是我和Ken Thompson共同开发完成了UTF-8编码格式。在其它方面,诸如计算机图形,操作系统,软件开发工具等上也做了大量的工作,最近在给谷歌开发Go编程语言。

[[115802]]

下面是 Rob Pike 的 5 个编程原则

原则 1. 你没有办法预测每个程序的运行时间,瓶颈会出现在出乎意料的地方,所以在分析瓶颈原因之前,先不要盲目猜测。

原则 2. 测试(measure)。在测试之前不要优化程序,即使在测试之后也要慎重,除非一部分代码占据绝对比重的运行时间。

原则 3. 花哨的算法在 n 比较小时效率通常比较糟糕,而 n 通常是比较小的,并且这些算法有一个很大的常数。除非你确定 n 在变大,否则不要用花哨的算法。(即便 n 不变大,也要先遵循第 2 个原则。)

原则 4. 相对于朴素的算法来说,花哨的算法更容易出现Bug,更难调试。尽量使用朴素的算法和数据结构。

原则 5. 数据占主导地位(Data dominates)。如果你选择了正确的数据结构,并且已把事情组织好,那么算法的效率显而易见。编程的核心是数据结构是,不是算法。

Pike的第 1 条和第 2 条原则实际上重新强调了Tony Hoare那句名言,“过早的优化是万恶的根源”。Ken Thompson将Pike的第 3 条和第 4 条原则改写为“当遇到麻烦时,试试最简单粗暴的办法”,原则 3 和原则 4 也是 KISS 哲学的体现。Fred Brooks在《人月神话》中首先阐述了原则 5 ,原则 5 常常会被概括为“用***结构,写简单代码”。

原文链接: utexas.edu   翻译: 伯乐在线 - makttub

译文链接: http://blog.jobbole.com/70607/

责任编辑:林师授 来源: 伯乐在线
相关推荐

2012-08-20 09:53:48

编程编程建议程序员

2024-04-08 10:02:22

Go编程并发

2022-12-25 12:43:22

架构编程

2018-03-13 12:31:21

2014-02-13 09:38:51

评估公有云私有云

2024-07-25 14:36:10

2015-10-10 14:40:36

编程游戏

2014-12-22 10:09:50

工程师

2024-01-23 09:07:29

Unix哲学工具

2018-06-21 15:17:15

机器学习

2021-09-26 13:55:33

5G切片网络切片5G

2014-11-10 09:46:57

程序员

2009-01-03 14:34:49

ibmdwPHP

2020-01-08 14:45:38

Kubernetes存储架构

2020-01-14 14:15:03

开发技能代码

2011-03-08 10:15:08

HTML 5

2009-01-16 08:52:26

面向对象OOP编程

2017-11-21 08:22:16

程序员编程技术

2013-01-29 10:02:44

前段WebJavaScript

2020-06-05 13:37:17

网络安全技术
点赞
收藏

51CTO技术栈公众号