项目常用软件及工具

自己的项目主要基于LNMP开发.所以这些四款软件就没有什么太大的必要介绍了.

1) 对于nginx服务器,可以使用国内淘宝版的Tengine最新版
2) 对于PHP推荐使用最新的稳定版本,到目前为止,最新稳定版为PHP 5.4.28
3) 对于服务器来说,国内好像用的最多的应该是centos了,必竟是免费开源的.而redhat有些是收费的.另外就是ubuntu这个系统.也不错的,安装软件也挺方便.
4) 程序开发,建议使用一些mvc类的php框架,方便团队开发.如果还用原生的面向过程开发的话,每个人一套写法,除了维护成本极高以外,而且还不安全.这类的问题一般框架都可以解决了.当然框架也不敢保证100%的安全,这一点就需要开发人员经常注意有些框架的一些动态新闻信息.至少可以保证一旦发现漏洞bug的话可以第一时间内修复.

以于mvc开发框架,推荐使用ci,yii或者thinkphp这类的框架,上手极块,后期招人也比较容易一些.目前thinkphp3.2 已经正式使用命名空间了,还有其它开发框架.如LARAVEL4、Phalcon、Symfony2都是相当优秀的php开发框架.

个人比较喜欢的是yaf这个框架,对于yaf毕竟是底层实现的框架,所以速度上比较有优势的.目前新浪weibo正在用这个的.此框架的开发人员鸟哥在那里守着.所以可以放心使用不会有什么问题的.这个框架不太适合快速上手.而且也没有orm这类的东西的.

原来php加速软件一般用的是zend optimizer这个.现在5.3以后的版本就要使用opcache这个了.还有一些并发用的软件yar也推荐使用,这是一款RPC framework.这几款软件全部出自鸟哥之手.除外还有yac这个缓存框架,这个与apc,xcache这类的加速软件差不多.

另外项目中会有一些缓存之类软件,如memcache这类的.还有一些其它nosql产品,如mongodb,redis.需要根据项目实际情况来决定要使用哪一个软件.

如果系统再复杂一些的话,可能还要用到一些消息队列软件,如 RabbitMQ、ActiveMQ和ZeroMQ 这些的消息队列软件.同样需要根据项目需求而定,尽量做到减少维护的成本和考虑到项目后期的发展需求

有一些定时任务,如果少的话,可以直接使用Linux下的cron实现,如果定时任务特别多的话,可能就要借助于Supervisord这个软件了。

======================================

项目团队开发,肯定离不开一些版本控制软件,常见的有svn 和git,当然还有一些其它的,如hg之类的.只是国内用的人不多而已.这里推荐git这个分布式的版本控制软件.一直在用这个.比较的爽的.

======================================

项目经理是项目管理中,肯定需要一款项目管理软件的,这些比较的多,国内也有一些免费的和收费的.我用过的是redmine这款项目管理软件,还算可以.所以推荐一下.对于jira这个没有用过.不过听说也不错的.

===============================================================

下面就是一些运维的软件的,目前了解到的常见的有cacti,nagios,zabbix这三个,其中第一个比较的简单的.nagios这个是一个功能比较强大的工具.zabbix是一个分布式的监控工具.个人比较喜欢zabbix这一个.但没有实际有过.只用过cacti这款软件.对于大型公司的很多都是基于一些开源的软件,再自行开发一些插件来实现的.

 

Linux中让crontab以秒为单位执行任务

Linux下实现秒级定时任务的两种方案(Crontab 每秒运行):

第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间。

#!/bin/bash
while true ;do

command

sleep XX //间隔秒数

done

或者使用for语句

#!/bin/bash

for((i=1;i<=20;i++));do
/home/somedir/scripts.sh > /dev/null 2>&1 
sleep 3
done

第二种方案,使用crontab。

我们都知道crontab的粒度最小是到分钟,但是我们还是可以通过变通的方法做到隔多少秒运行一次。

以下方法将每20秒执行一次

crontab -e
* * * * * /bin/date
* * * * * sleep 20; /bin/date.sh
* * * * * sleep 40; /bin/date.sh

说明:需要将/bin/date.sh更换成你的命令即可

这种做法去处理隔几十秒的定时任务还好,要是每1秒运行一次就得添加60条记录。。。如果每秒运行还是用方案一吧。
更多crontab命令,请参考:http://linuxtools-rst.readthedocs.org/zh_CN/latest/tool/crontab.html

zendstudio实现多种配色方案(sublime)

 Zend Studio 配色方案插件
1.菜单栏–help–install new software…

2.添加一个更新源,就是点击界面的add按钮,在新窗口的location位置输入
http://eclipse-color-theme.github.com/update/,然后上边的Name自己随便起.然后ok.

3.选择你刚添加的更新源,稍等后应该能看到下边有eclipse_color_theme这个插件了,勾选,安装,同意协议,等等,然后重启Zend Studio.

zs_proferences_color_theme

4.菜单栏–window-preference,直接搜索theme,从右侧选择主题即可,这里我使用的是sublime的默认配色主题方案(注:配色实际上会稍有差别).

zs_color_font

更多见: http://www.geekso.com/zendstudioquestion/

<<编写可读代码的艺术>>学习总结

不会误解的名字是最好的名字——阅读你代码的人应该理解你的本意,并且不会有其他的理解。遗憾的是,很多英语单词在用来编程时是多义性的,例如filter、length和limit。
在你决定使用一个名字以前,要吹毛求疵一点,来想象一下你的名字会被误解成什么。最好的名字是不会误解的。
1.当要定义一个值的上限或下限时,max_和min_是很好的前缀。

2.对于包含的范围,first和last是好的选择。
对于包含/排除范围,begin和end是最好的选择,因为它们最常用。

3.当为布尔值命名时,使用is和has这样的词来明确表示它是个布尔值,避免使用反义的词(例如disable_ssl)。

4.要小心用户对特定词的期望。例如,用户会期望get()或者size()是轻量的方法。

5.条件语句中参数的位置

a_b_compare

6.if/else 语句块的顺序

之前你可能没想过太多,但在有些情况下有理由相信其中一种顺序比另一种好:

·首先处理正逻辑而不是负逻辑的情况。例如,用if(debug)而不是if(!debug)。
·先处理掉简单的情况。这种方式可能还会使得if和else在屏幕之内都可见,这很好。
·先处理有趣的或者是可疑的情况。
有时这些倾向性之间会有冲突,那么你就要自己判断了。但在很多情况下这都会有明确的选择。 Continue reading