博采众长,精于一技。Live for love, work for dream.

PHP开发迷思(一) –模板该用PHP还是Smarty ?

这阵子在PTT的PHP版,看到有人说为什么要用Smarty ? PHP其实本身就很好用的模板语言了,何必再多此一举?

身为「 PHP Smarty模板引擎」一书的作者,我对这样的评断其实并没有特别的感觉;因为我认为去争论这种主观的东西并没有太大的意义,因为重点根本不在Smarty到底是不是多此一举。

对我而言,用PHP也好,用Smarty也罢,主要在于我能不能严守业务处理逻辑与资料呈现逻辑的分离;而Smarty只是其中一种工具,它能半强迫地让我远离PHP的诱惑,让我专心去处理我的资料。 只是语法的不一致和第一次执行的效率,常常是Smarty被批评的主因,但只用PHP真的好吗?

继续阅读 »

php crc32 函数的一个问题

php 里面没有 unsigned int 的概念,超过 PHP_INT_MAX 的数用 float 表示。

但是crc32却返回 int32(标准返回uint32)这导致php的int32变量存放不下crc32的返回值。如果要使用crc32值,只要sprintf("%u", crc32($argv[1])),就可以,但是这是字符串形式的,如果要对crc32值做运算,比如加减,那么需要用float表示,$crc32_value = floatval(sprintf("%u", crc32($argv[1]))); 通常情况,这样工作的很好,但是,如果要对$crc32_value取模,问题就来了,$crc32_value 会先转换成int,然后再取模,这根本就是错误的,也就是说,对超过 PHP_INT_MAX 的数取模,在php中,结果是不正确的。

继续阅读 »

12种不宜使用的Javascript语法

这几天,我在读《Javascript语言精粹》。

这本书很薄,100多页,正好假日里翻翻。

该书的作者是Douglas Crockford,他是目前世界上最精通Javascript的人之一,也是Json格式的创造者。

他认为Javascript有很多糟粕。因为1995年Brendan Eich设计这种语言的时候,只用了三个月,很多语言特性没有经过深思熟虑,就推向了市场。结果等到人们意识到这些问题的时候,已经有100万程序员在使用它了,不可能再大幅修改语言本身了。所以,Douglas Crockford决定,他要告诉大家,Javascript中哪些部分是精粹,哪些部分是糟粕和鸡肋。

这个想法非常好,但是我不得不说,这本书写得不够好,不适合新手阅读。原因如下:1)Douglas Crockford叙述得不清晰,更像与同行讨论问题,而不是由浅入深地讲解问题。这本书的重点不是解释,所以读完后,我觉得Javascript好像变得更复杂了。2)他固执地使用铁路图(railroad diagram)解释每一条语句。全世界似乎只有他一个人使用这种比Javascript更难看懂的图。3)该书基本上是一本简化的Javascript语法手册,缺乏足够的新内容。4)该书举例过少,而且在最难的函数和对象部分,使用的例子都是环环相套、层层递进的例子,导致阅读起来很吃力。

该书最有价值的内容不是正文,反而是附录。在附录B中,Douglas Crockford列出了12种应该避免使用的Javascript语法,我觉得非常值得推广。

继续阅读 »

返回顶部