無標題文檔

由 if 想到的些问题

在编写一段并不复杂的脚本的时候,发现了一个问题。先说说代码,它的主要功能是用 PHP 判断是否生成一段 Javascript,并使用 Cookie 记录状态。

<?php
/* PHP code */
header("Content-type: text/javascript");
if (!haveCookie('cookieName')) {
   // ... do something
?>
/* Javascript code */
if ('undefined' == typeof document.cookie['cookieName']) {
    setCookie('cookieName', 3600);
}

   // ... do something with Javascript
<?php
}
?>

粗看起来代码已经无懈可击,我们亲爱的 小马 还是发现了问题的存在。就是在 Javascript 中的那个判断是永远为 true

if ('undefined' == typeof document.cookie['cookieName']) {
    // ...
}

因为这段代码是在 PHP 端有个前提,就是

if (!haveCookie('cookieName'))

的时候,才会在客户端显示。那么,当不满足这一条件,这段代码自然就不会扔给客户端。这样说似乎有点笼统,那么先撇开 Javascript 代码,我们就单纯使用 PHP 代码表述一下

<?php
header("Content-type: text/javascript");
if (!haveCookie('cookieName')) {
   if (!haveCookie('cookieName')) {
       setCookie('cookieName');
   }
}
?>

这样就显得清晰了很多,并很容易就能发现问题所在 -- 我们在不经意间就多做了一次判断,虽然这是 Javascript 在客户端执行的。

总结下,本人从这段代码想到的些废话:

  1. 代码越长,不见得效率就越高
  2. 在不影响逻辑和流程的情况下,尽量将多个判断写在一起
  3. 尽量将低复杂度的函数放前判断
  4. 过多的判断容易造成程序效率降低,在判断中使用高时间复杂度的函数时尤其要注意
  5. 如果发现 if 嵌套得太多,就得重新考虑流程和算法
  6. 健壮的代码不是靠过分的判断保证而成的
  7. 将代码简化后,会发现很多还未发现的问题
  8. 过多的判断另个角度理解,是缺乏对代码的信心

最后,再次感谢 小马 同志。

Jet Li @ Taobao

杭州永远是个神奇的城市 ,就在我中午打瞌睡的时候,发现办公室突然一阵暴动 -- 的确可以用「暴动」两个字来形容,尤其是女性 -- 有人说是马总来了。

「傻×啊,老板来自己的公司有什么可以激动的。」

「××,那脸谁要看啊,是 Jet Li 也来了!」

虽然我也有想去凑下热闹的冲动,但经验告诉我过去是没有好果子吃的,因为人太多了 -- 于是我等待照片的到来。这不,风平浪静半小时以后,有个「好事」的家伙果然将照片如数发上来了(在这个感谢我们亲爱的狗仔队)。

https://friable.rocks/_/2009_11_05/96631538bc89.jpg

同样戴着帽子,我看起来怎么总感觉差距就这么大呢 -- 这场面更像是鬼子进村一样。

https://friable.rocks/_/2009_11_05/75789538bc3c.jpg

Jet Li 是有点老了,但还是很精神,而我更关心的是后面的保镖用的是什么 手机

https://friable.rocks/_/2009_11_05/81539538bd19.jpg

老陆 也在一旁接应,这个时候似乎大家都没有心思工作了。

https://friable.rocks/_/2009_11_05/27921538bdf0.jpg

很「Taobao」的一张合影,不过想不通的是,为什么国人都喜欢用这个手势拍照。

附,「官方报导」,请看 这里

植物园采花

又是一个周末,于是就带上 妮子 参加团队的植物园烧烤活动。由于已经是 第二次在植物园烧烤 了,所以我更感兴趣的是拍几张照片。

无奈本人烧烤技术的确不佳,很快就被「驱逐」出来。正好我也有「理直气壮」的理由去拍些照片,下面放几张本人「采花」后的照片。

https://friable.rocks/_/2009_11_05/52272535f9cf.jpg

https://friable.rocks/_/2009_11_05/78330535fa07.jpg

https://friable.rocks/_/2009_11_05/48982535fa0a.jpg

https://friable.rocks/_/2009_11_05/95794535f9f1.jpg

https://friable.rocks/_/2009_11_05/98621535fa2b.jpg

https://friable.rocks/_/2009_11_05/18141535f9c7.jpg

…… 少儿不宜分割线 ……

唉,最后由于本人烧烤没有吃饱,于是又去肯大叔那里消费。

https://friable.rocks/_/2008_03_08/1204980886.jpg

同样的鸡翅,怎么档次就差那么大呢?基于那种「愤懑的情绪」,发张「 很黄很暴力 」的照片。

我的照片

您好!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,欢迎您通过 GitHubTwitterInstagram 了解我的更多动态。

本博客原名 Gracecode.com 、现更名 「無標題文檔」「精于心、简于形」以此践行极简、务实的理念。 在工作之外的个人生活方面,我崇尚简单、追求平淡,偶尔也带着一些可能不被所有人理解的幽默感。

同时为避免争议和麻烦,在此郑重声明:本站所有内容为非 AI 生成,所有观点及立场均仅代表我个人,不代表任何我所就职或关联的公司与组织。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章