Friday, August 1st, 2008
本博客所有原创文章采用知识共享署名-非商业性使用-相同方式共享,转载请保留链接http://chaoqun.17348.com/2008/08/kiss-with-you/
看到一个同事邮件里面提到的项目困扰,结合过去一个失败案例,写的一段文字供产品人员和程序员参考以应对项目复杂性。
keep it simple,stupid!
武侠小说里面,招式唯快不破,田伯光的快刀碰见令狐冲郁闷了,独孤九剑以无招胜有招。没有招式敌人再快也无用。
招式唯快就是性能至上主义,以前见过一些天书般的代码(代码足够长、足够复杂、足够你细细品味也看不懂),然后自我得到“极大的满足”,就算有“极好”的性能(好不好谁也不知道),出了bug或者升级的时候就抓狂了,自己都理不清楚了。
招式唯快就是功能至上主义,客户核心的需求就是那20%的功能,然后进入一个天花乱坠的页面,还有“强迫需求”,然后郁闷了,跑了。
简单是世间最美的事情,简单首先保证不会有错误,简单意味着更加易用以及易于维护。
有两条建议与大家分享:
第一条:keep it short,sweety.
过长的代码不容易理解(看了后面忘记前面),很多人说如果一个函数的行数超过70行,一个文件代码超过500行,这个函数,这个文件就太长了,怎么办?看第二条。
第二条:keep it separated,sweety.
过长的代码,把他们分开吧。
什么时候需要分离代码?有重复代码(重复是邪恶的)、一个函数超过70行、一个类有数十个成员函数或方法,把他们拆开吧。
什么地方需要分离代码?martin fowler的建议是如果你在程序里面有需要的注释的时候,就想想能不能拆开,用一个函数去取代。
分离的代码更好理解,想想你要看一个30行的程序,看到最后才知道是获取用户信息的操作,如果把这30行程序拆出来新建一个函数getUserInfo(),噢,整个世界都清净了。
分离的代码更好维护,因为分的足够细,哪个环节需要都可以做局部的修改而不至于影响整个系统。
对于产品,求你了,不要把我用不到东西呈现给我,我想用的时候我可以点开。
Posted in 默认分类 | 1 Comment »
Thursday, July 31st, 2008
本博客所有原创文章采用知识共享署名-非商业性使用-相同方式共享,转载请保留链接http://chaoqun.17348.com/2008/07/ffmpeg-php-install-on-centos
最近的一个项目,要批量获取音频文件(包括mp3、wma等格式)的播放时长,由于项目整体是Lamp结构的,所以最佳的方案就是能找到这么一个PHP扩展能提供这样的功能接口。
我们用到的开源项目是http://ffmpeg-php.sourceforge.net/,ffmpeg的php扩展,下面是ffmpeg-php在linux下的快速安装。
安装需求:
ffmpeg-0.4.9_pre1 or higher.
php-4.3.0 or higher *需要有php-dev包,如果服务器上没有,可以通过yum install php-dev进行安装
gd-2.0 or higher (the version of GD bundled with PHP works too) *这个一般都有吧
编译安装ffmpeg非常的麻烦,还好我们找到了一个yum源可以方便的安装ffmpeg以及ffmpeg-dev,下面是步骤:
vi /etc/yum.repos.d/dag.repo
输入:
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
导入Dag的RPM_GPG_KEY,否则提示没有key无法安装
wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
rpm -import RPM-GPG-KEY.dag.txt
安装ffmpeg&ffmpeg-php
yum install ffmpeg ffmpeg-devel
没有找到ffmpeg-php的安装包,所以只能编译安装了,下面是编译步骤:
wget http://internap.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-0.5.1.tbz2
tar -xjf ffmpeg-php-0.5.1.tbz2
phpize
./configure
make && make install
安装完之后,把ffmpeg.so(我的位置是/usr/local/lib/php/extensions/no-debug-non-zts-20060613/) 复制到php的扩展目录下,在php.ini中加入
extension=ffmpeg
ffmpeg-php的api参考http://ffmpeg-php.sourceforge.net/doc/api/
写了一个简单调用程序
在audios目录下放了三首mp3歌曲,用ab简单测试了一下结果(测试机配置巨差),下面是测试结果,处理结果大概是80首/s,还是可以接受的。
[root@centos ffmpeg]# ab -n 5000 -c 100 http://*****/ffmpeg/mp3timer.php
This is ApacheBench, ...
Posted in PHP, 默认分类 | 3 Comments »