MVC就是个选择题
由于采用了Web开发框架来开发项目,所以我首次在真正的项目中采用MVC的开发模式。随着项目的不断深入,我也在不断反思,MVC设计模式到底给项目带来了什么?成倍的开发时间?复杂无比的目录结构?铺天盖地的文件数量?听起来都很难听对吗,但是确实如此。那么MVC所许诺的那些好处呢?清晰的代码结构,易于维护,易于扩展?真有吗?
当然,我不是在批判MVC,只是觉得,在使用MVC过程中,还是需要投入更深入的思考,到底怎样才能用好这个设计模式。MVC给我的感觉是,要求使用其的开发者有更高的觉悟,来正确选择存放一段代码的地方。从而实现解耦合,代码复用,和易于维护。为什么说使用MVC会有成倍的开发时间,主要就是因为在开发中,我们需要更多的时间去思考,这些代码放在哪里更合理一些。在MVC框架下代码被切割成一个又一个的小文件,分散在复杂的目录树中,那么到底怎样选择把代码写在哪里呢?这道选择题,并非有看起来那么容易。就我个人感受而言,更多的时候,无论将代码放在哪里都可以正确实现你的逻辑,MVC不是什么神兵利器,并不能通过其模式本身的约束,将开发者导入到一个正确的轨道上,反而会因为开发者本身错误的选择而让MVC自己变得一团糟。所以说,当一个团队确定要在一个项目中引入MVC时候,应该思考一下,每个团队成员是不是真的都有能力驾驭,如果没有对应的能力话,是不是要考虑前期对项目成员进行一定的培训。
逝者如斯夫,不舍昼夜
这么zhuangbility的标题,其实内容没啥新意的。主要是感慨一下,工作了以后,真的时间如梭。更可怕的是,我觉得我的生活也要被工作吞噬了,即便是这样,仍旧很难看到什么希望。或许呢,我真的太过悲观了也说不定。
好吧,在一个技术博客上,本不该发这些无谓的感慨的。这些年维护博客走过来,互联网上各种新鲜的东西如过眼云烟,微博啦,社区啦,LBS啦等等等等,但是渐渐发觉,真正能够沉淀价值的东西,仍旧只有博客。当然也或许,这是我作为一个书生的癖好或者偏见而已。
无论多么艰难,多么没有时间,我还是决定要在这块自留地上好好种点东西。就一个好,都是自己的。
[WordPress Tips] 教你3行代码隐藏Admin Bar
从WordPress 3.1开始起,增加了一个新的组件,就是Admin Bar(管理工具条)。如果你登录了自己的博客,在首页上就会看到顶部出现了一个黑色的工具条。里面有一些常用的功能。可以直达后台。虽然说,这是一个很方便的功能,但是我想,并非每个人都会喜欢这样的东西。我就很不喜欢。研究了一下源代码,发现这个功能并不能通过在wp-config.php中使用常量定义禁用。必须使用类似插件的功能才能禁用该功能。不过呢,就像本文标题说的那样,使用插件未免太不值当了,毕竟为了3行代码,写个插件,还是很不划算的。估计等3.1发布后,会有某个同学将这个小功能整合到自己的插件中的。如果等不急或者不希望装太多插件的同学,我这里提供一个轻松挪掉Admin Bar的方法。如下的三行代码,请加入到你使用中的主题的functions.php文件中,如果没有这个文件,那么请自己创建:
使Mac OS X的终端看起来更舒服
初次打开Mac OS X的终端,我非常不习惯。以界面优美著称的苹果操作系统,终端竟然如此丑陋,实在是大出我的意料之外。别的我也就不说了,最不能容忍的是两个,一个是没有颜色的ls,还有一个就是那个命令提示符。
实际上,Mac OS X作为一个类Unix系统,或者说根本就是一个Unix系统,而且默认shell已经变更成了bash,那么它理应该可以配置到跟Linux下的表现一样才对。在Linux系统中,ls能呈现多彩的颜色,还需要终端的支持,而Mac OS里的终端显然是支持颜色的,那为什么ls就显示不出来颜色呢?网上有老外说,ls用的不是gnu的core-utils,给了一套更换core-utils的方案,太麻烦我没采纳。今天,静心看了下man,才发现,感情人家根本就是支持彩色的。只是参数变成了-G,而不是我们熟悉的–colors,唉,竟然这么简单。
Dedian 5的PHP包缺少readline支持
命令行下,PHP有一个很有趣的功能,就是interactive mode,在这种模式下,用户可以使用php shell,很自如的运行各种php函数。只要在shell下执行php -a命令即可。但是这个模式需要readline支持。
在Debian 5下,通过官方源使用apt安装的php5,不支持readline,所以,就无法使用interactive mode了。搜索了下,找到了解决办法。参见:http://www.dotdeb.org/instructions/ 这可能是一个组织,专门支持在Debian下搭建Web服务系统。
如何在Debian上安装PHPUnit
Debian上安装PHPUnit最方便的做法,就是使用apt-get或者aptitude,当然,如果你想安装最新版本的PHPUnit,那又另当别论了。
安装最新版本的PHPUnit,我推荐使用pear来安装,不过前提是首先要安装最新版本的pear,Debian源里的pear,版本低于1.8.1,不能安装最新版的PHPUnit。
好,下面的代码用来安装pear,然后是PHPUnit:
PHP 5.3.x中弃用的特性 Deprecated
今天在服务器上检查PHP的版本,发现了一条提示,说在PHP配置文件中,使用#号作为注释标记是已经被弃用(Deprecated)的特性了。特地去了解了一下这个问题,原来从PHP 5.3.x开始起,有很多特性已经被不建议使用了。
我这里整理了一下我日常工作中会用到的一些,剩下的大家看指南好了。
使用Gii时出现403错误
在Yii框架中,使用Gii代码生成工具之前,首先要编辑好配置文件才能访问。一般,都是默认在本地环境安装了Yii框架,所以书里的范例写的时候,很多都没有提,要配置IP限制。我正好在学习过程中,使用了Linux虚拟机来学习Yii开发,结果配置完了,发现访问Gii时候出现403错误。在网上查了一下,可以检查一下自己的配置是否限制了IP。
’gii’=>array(
’class’=>’system.gii.GiiModule’,
给WordPress增加苹果中的Dock菜单效果
苹果操作系统的Dock菜单,可能是个人桌面操作系统中,最成功的一种UI设计了。这个交互设计效果优美,使用简便,一目了然。无数爱好者,将Dock菜单的交互设计和视觉效果移植到了各种各样的系统和平台上。
在Web上实现Dock菜单,也不是什么新鲜事了,包括我以前想要汉化过的一个favourate类插件,也都是Dock的理念。
jQuery有个插件,就是专门实现这个Dock菜单的效果的。在这里可以看到例子。文章标题里说的,是一个WordPress的插件,插件的名字翻译成中文的话,叫动态WP鱼眼菜单。我不知道为什么作者要取这么难听的名字,而且并不让人一目了然,既然Dock已经是几乎人尽皆知的效果了,何必再去自己发明名字。不过呢,这并不妨碍作者实现了这么一个使用简便的插件。到这里可以看效果。
