说说PHP __call

php中提供_call和__callStatic这两个魔术方法,“__call”和“__callStatic”几乎相同,只是__callStatic用于静态方法。这两个方法在PHP手册中的“重载”一章中有介绍,且很详细。

因为两个方法几乎相同,所以我们只看“__call”方法,我写了以下代码:

继续阅读

清除代码异味

在OSCHINA看到的文章,非常棒,所以转过来。

本文是从 Cleaning up code smells: Venkat Subramaniam @ Chennai 这篇文章翻译而来。

今天,Venkat Subramaniam 就关于清除代码异味的话题给我们做了一个非常有趣的演讲。下面就是我记录的一些他的话。

为什么我们需要有质量的代码?

  • 敏捷开发方法是用来应付那些要求代码做大量改动的反馈信息的方法。
  • 如果程序没有用一种好的表达方式来表现,那程序会很难读,难维护,难修改。

什么是代码异味?

  • 代码异味是一种由写的很差的代码引起的一种有臭味的感觉,一种程序什么地方会有问题的感觉
  • 异味更多的是来自一种直觉,而不是一种有据可查的标准,当你看到有味的代码时你就“感觉”到了
  • 如果你不把异味清除,不久之后你就会习惯这种气味,不再对它有察觉
  • 用任何语言都能写出有异味的代码:即使最简单安全的语言,你也能做出天才才能想出的蠢事:)
  • 我们经常会意识不到自己在写很臭的代码,经常需要外人为我们指出这点

继续阅读

【外刊IT评论】复杂是大敌

本文转自oschina

本文是从 Complexity is the enemy 这篇文章翻译而来。

差不多在Google工作有7个年头了(!)。我在这学到了很多东西,写都写不完。然而不管怎样,我至少要向你们分享一条只有在我有了更多经验后才得到的东西。

复杂是软件的死神。你无法用数字评估它所造成的代价,它会悄悄慢慢的出现,就像是用小火在煮你,让软件变得越来越糟,你很难察觉到,而当你察觉到 时,那已经太晚了。在另一方面,你经常的会很容易的看到增加复杂度带来的好处:增加一个新的扩展层,你可以实现新功能X,或把本来运行在一个机器上的进程 分成两个,用来解决当前系统的扩展瓶颈。但现在你的大脑里必须想着这个新增加的层,或这还要实现一个远程调用层来管理这两台机器。 继续阅读