技术债务, 是指匆忙的实现一个功能,却对现有的程序库造成了破坏(在实现的过程中污染了代码库的设计),这对于一些项目经理/客户来说就像是天书奇谈。也许他们是明 白的,只是不愿意承认罢了,我估计是这样的。不管怎样,我想起来一个小故事,当下次遇到这种情况,需要向他们解释增加某些新功能的代价时,也可用讲这个故 事给他们听。
月份:2012年3月
RFC及标准性文档 RFC2616 HTTP/1.1阅读系列 (一)内容协商
RFC文档,是搞WEB开发必读的文档,是英文版本的,但是后来网上找的中文版的,翻译的不是很好(孙进超译),很拗口,完全不知道他在说什么,还是老老实实看英文的吧,以下是阅读笔记,留下来,加深印象,也留个笔记。
需求变化与IoC
【感谢 Todd投递本文 – 微博帐号:@weidagang 】
需求又变了,怎么办?
先上一个轻松的段子:
程序员XX遭遇车祸成植物人,医生说活下来的希望只有万分之一,唤醒更为渺茫。可他的Lead和亲人没有放弃,他们根据XX工作如命的作风,每天都在他身边念:“XX,需求又改了,该干活了,你快来呀!”,奇迹终于发生了,XX醒来了,第一句话:“需求又改了?”。
“浏览器大战”小观
2012年3月18日将是载入浏览器史书的一天,假如有这本史书的话。在这一天,来自 StatCounter 的数据显示谷歌的 Chrome 浏览器全球份额首次超过微软的 IE 浏览器,虽然仅保持了一天,但是这是具有重大意义的。为什么这么说呢?因为这意味着大战了多年的浏览器市场终于将有可能迎来变数。
网页浏览器(简称浏览器)本身只是个显示网站服务器或因特网档案系统内的文件并让用户与此些文件互动的应用软件 ,但是基于它本身的意义所在成为了互联网的入口,因此浏览器之间的“拼杀”和“大战”就不可避免了。距离蒂姆·伯纳斯·李 1990 年开发出世界第一个网页浏览器已经有 22 年了,这22 年浏览器市场有哪些跌宕起伏呢?
WordPress的源码阅读笔记
上周研究了下Wordpress的源码,虽然源码写的不够精细,我们姑且不讨论其代码是否真的如其官网所说“代码如诗”,我们比较感兴趣的是,他的框架是怎样的,他是如何实现的MVC分层,又是如何很方便的扩展插件、主题,让其他人可以简单的参与到开发中来。
我们从前台的Index.php入手,找到入口文件wp-blog-header.php文件,wp-load.php主要是一些判断和初始化工作,template-loader.php文件则主要是显示整个网站的内容。实际的初始化内容在wp-settings.php中,这个也是整个系统的核心所在。他进行了一系列的check,定义相应的类,最后加载模板文件的首页文件,交予模板文件处理。
整个系统的实现自由扩展,很大程度“依赖于执行挂钩、动作和过滤器 ”,关于这个话题可以参考官方的说明,http://codex.wordpress.org/Plugin_API,这个理解了,才能更好的把握Wordpress的东西,因为整个系统都与他有关!
WordPress 中有一种叫执行挂勾的机制,允许插件把一些功能“挂载”到 WordPress 当中。也就是说,在系统运行至某一个环节时,去调用插件内的一些函数。执行挂勾分为两种:
- 动作 (Action): 动作是 WordPress 运行到某些环节,或者在某些事件发生时,就会被执行的一种挂钩。任何的插件都可以通过动作接口来指示系统在遇到这些环节或者事件的时候,就执行指定的 PHP 函数。
- 过滤器 (Filter):过滤器的是 WordPress 用于修改即将要保存或者发送出去的数据的一种挂钩。任何的插件都可以通过过滤器接口来指示系统在遇到某些环节或者事件的时候,就执行指定的 PHP 函数去修改特定的数据。
某些时候动作或过滤器可以达到相同的效果。比如要修改文章的内容,可以把插件挂载到动作 publish_post 上,在文章的内容保存到数据库前就修改它。也可以把插件挂载到过滤器 the_content 上,在文章的内容发送到浏览器前修改它。
PHP工具之CodeSniffer
PHP编码有很多工具,为我们带来很多便利,比如IDE、Debug工具,PHP单元测试工具等,对于CodeSniffer因为需要,有一定的研究,现在写出来,记录一下,以供以后需要。
工具简介
众所周知,统一的编码风格,不仅使你所写的代码清爽大气,也使无论是你本人,还是其他人,更容易阅读。那么一个统一的编码风格是怎么样的呢?他主要分为以 下几个方面,php标签、变量的命名、每一行的长度、缩进方式、控制语句以及函数的调用等等,具体的标准可以参考Expert PHP 5 Tools.pdf这本书的第一章,而对于我们团队来讲,也有自己的独有的风格,当前,Leapfrog中除了变量和函数命名方式与上书中第一章有所出入 外,其他的都是相同的。Leapfrog中使用的是下划线方式,zend一般采用驼峰方式。PHP_CodeSniffer能够自动检测你的源代码中的风 格为题,并给出具体的行号,告诉你这个与标准有什么出入,以提醒你改正。目前,该工具的安装环境是PHP version 5.1.2及以上。
PHP中$GLOBALS变量和register_globals
最近,在阅wordpress的代码的时候,看到在设置环境的初期,有一些安全性和初始化的工作,其中,有一个函数wp_unregister_GLOBALS()有点意思,函数的具体内容是:
ZeroMQ学习笔记
ZeroMQ是什么?