每个程序员都需要做的事情:代码审查

在上一篇文章中提到过,我已经不在Google工作了。我还没有想清楚应该去哪里—有两三个非常好的工作机会摆在我面前。因为在这段做决定时间里,我不再受雇于任何人,我想可以写一些专业性的东西,一些很有趣,但也会在同事和管理工作中导致关系紧张的东西。

每个程序员都应该学习使用Python或Ruby

如果你是个学生,你应该会C,C++和Java。还会一些VB,或C#/.NET。多少你还可能开发过一些Web网页,你知道一些HTML,CSS 和JavaScript知识。总体上说,我们很难发现会有学生显露出掌握超出这几种语言范围外的语言的才能。这真让人遗憾,因为还有很多种编程语言,它们 能让你成为一个更好的程序员。

代码的缩进和嵌套

自从第一年一个睿智的高年级的学生向我展示了如何在代码里避免不必要的缩进后,我一直都保持着这种做法。我并不去纠正已有的代码,因为这并不能改善程序的性能,我只是在些新的程序里避免不必要的空格缩进。

你的编程语言能这样做吗?

如果你想在Java里把函数作为一个一等(First Class)对象,你需要建一个只包含一个用来调用功能点的方法的整个对象。把这种现象跟实际情况联系起来,很多的面向对象语言都会要求你为每个class创建一个完整的文件,非常的没效率。如果你的编程语言里要求你去这样的调用功能点,那你根本没有享受到现代语言环境给你带来的所有好处。看看能否退货吧,挽回一点损失。

异常的代价

最近在dynaTrace上出现了一场关于异常(Exception)的代价的大讨论。在跟一些客户的接触中,我们经常的发现他们的代码里有大量的异常处理,自己都不知道。在移除了这些异常后,程序的运行速度比以前有大幅度的提高。这让我们产生了一种假想,程序中的异常处理语句是否给性能带来了巨大的开销?由此得出的推理会是,应该避免使用异常处理。

清除代码异味

今天,Venkat Subramaniam 就关于清除代码异味的话题给我们做了一个非常有趣的演讲。下面就是我记录的一些他的话。代码异味是一种由写的很差的代码引起的一种有臭味的感觉,一种程序什么地方会有问题的感觉异味更多的是来自一种直觉,而不是一种有据可查的标准,当你看到有味的代码时你就“感觉”到了如果你不把异味清除,不久之后你就会习惯这种气味,不再对它有察觉

你真正需要的代码测试覆盖率是多少?

我写这篇文章的起因是由于看了@unclebobmartin在微博上的一些看起来言之凿凿的话语。给那些不认识Uncle Bob的人介绍一下——他是我们软件产业里最著名的一个专家,是《 Clean Code(代码整洁之道)》这本著作的作者,是敏捷宣言(Agile Manifesto)的签署人之一。在上世纪九十年代,他对文献最佳面向对象实践方法贡献了很大的力量。所以,当他说话时,我们一定要关注一下。

能说明你的Javascript技术很烂的五个原因

Javascript在互联网上名声很臭,但你又很难再找到一个像它这样如此动态、如此被广泛使用、如此根植于我们的生活中的另外一种语言。它的低 学习门槛让很多人都称它为学前脚本语言,它另外一个让人嘲笑的东西是动态语言的概念是偏偏使用了高标准的静态数据类型。

谷歌如何测试软件

本文作者 James Whittaker, 前微软架构师,是“How to Break Software”系列图书中好几部书的作者,现任Google测试工程主管,最近他写了一系列的关于谷歌如何测试软件的文章,本文为其系列的第二部分。

关于函数返回语句的讨论

不要在写出里面有成百上千个返回语句的方法了。Java里的方法只可以返回一个值,相应的,一个方法应该有且只有一个返回语句。

架构很烂,但没人在意

嗨,你的应用的架构很完美吗?对呀,这就是为什么你还没有发布你的应用的原因,你仍然在彻夜不眠的担忧着各个功能模块之间的责任分离(你没时间去关心应用的流量和访问率)。

你需要掌握的三种编程语言

每个编程人员都需要至少掌握三种编程语言。当然,这只是我的一家之言。

关于计算机编程的两件事

关于“两件事情”自身的两件事,文章说人们往往不愿意承认这两件事情,特别是面对计算机问题。所以我想做为一个例外。下面就是我的两对两个事情:

如何开发Web应用程序

这是一个经常被问到的问题,问的理所当然。作为一个程序员,为什么我就非要被认为知道如何开发Web应用程序呢?这个问题没有一个简单的答案,甚至那些教育机构都未必能清楚的知道;我上的那个大学并没有提供任何关于这个主题的课程。

用十条命令在一分钟内检查Linux服务器性能

如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断。

这几分钱的优化值得吗?

有些人指出实际的服务器磁盘空间要更贵一些。当然,你说的没错。我只是在简单的说明一个问题。即使假设按你说的价格再高出2个数量级,那也只有5美元。难道你要对我说省下这一杯咖啡的钱很有意义吗?

谷歌浏览器终于开始支持CSS变量(Variable)了

Mozilla 最先在 Firefox 29 中加入了对 CSS 变量(CSS variables)的支持,而开发者们可以在他们的 CSS 代码中部署使用了多年的 compile-to-CSS 语言,比如 Sass、LESS、或者 Stylus。

怎样才算会了一种新编程语言?

对一种语言的了解程度有很多等级。最基本的一种是只知道它的语法。然而,我不知道是不是当你知道一种语言的语法,特有结构,以及能解读用这种语言编写的基本程序时你就可以称作会这种语言。

测试驱动开发(TDD)的哲学之道

Developer 是全世界脑袋动最快的角色之一,一旦没有让想法收敛、聚焦,他们狂放不羁的想法就会暴露在代码中。

程序员有权知道软件为什么要这样做

你是否工作在这样的一个大公司里——他们工作效率缓慢,会议无穷无尽?你是否有被告诉去完成一个任务,去开发一个API,但你的不知道它会用在哪里,怎么用?你只是按照文档在技术上把它正确的实现?