程序员的自动化

2009年8月15日 robertbao 没有评论

为什么是程序员?

我想不出还有什么职业比程序员更接近计算机,让机器代替我们工作,让我们享受自动化带来的快乐。

自动化的好处?

自动化最少能带来下面两个显而易见的好处:

  1. 减少工作量,减轻重复劳动
  2. 减少手工工作出错的机率

把什么自动化?

我们无法把每件事都自动化,所以先把事情分分类[1]

  1. 只做一次的事情:既然只做一次,我想就没太大必要自动化,要做成自动化会比直接做事更花时间
  2. 重复做的事情:只要有重复就一定能找出其中共性的部分,马上把它抽取出来,开始自动化

如何自动化?

可以考虑按下面4个步骤来进行:

  1. 手动去做一遍:首先要确定你可以手动执行此流程,或许你可以写下此流程,这样一是确保不会遗漏步骤,二是可以强迫你好好再想上一想
  2. 编写每个步骤的脚本代码:把每个步骤转成由命令行或小程序组成的脚本,并单独测试每个步骤,确保每个步骤的脚本都是正确的,有些参考资料[2]可以帮到你
  3. 把所有步骤的脚本合在一起:如果在这步能够渐增式合并的话,可以将最终脚本的错误率降至最低
  4. 最后别忘了测试:写个自动化脚本即使我们用不到TDD[3],最后的测试还是不要忘了

自动化脚本举例

参见我以前所用的一个oracle数据备份脚本的片段:

day=`date ‘+%Y%m%d’`

su – oracle <<EOF
rman target / nocatalog;
run {
allocate channel t1 type disk;
sql ‘alter system archive log current’;
backup format ‘/back/rman/last/arch/arc_%d_%T_%u_%s_%p’ archivelog all delete input;
release channel t1;
}
exit
exit
EOF

mt -f /dev/rmt/0mn eod
cd /back/rman
tar cvf /dev/rmt/0mn last/arch/arc_$day_*


注释:

  1. 国外也有人用四象限法把事情按是否重复和简单还是复杂分为四类
  2. Windows下可以参考《Win32 Perl Scripting》,Unix下可以参考《Advanced Bash Scripting Guide》
  3. TDD:测试驱动开发,Test-driven development,利用测试来驱动软件程序的设计和实现,极限编程中倡导的一种程序开发方法
分类: WORK 标签:

Java SE for Business–Java收费版

2009年7月25日 robertbao 3 条评论

现在访问Sun的JDK/JRE下载页面,可以看见在通常的JDK/JRE下载项之下已经悄然加上了Java SE for Business,

java-business.jpg

Sun对此官方的描述是:

Faster access to critical fixes, a longer support roadmap, and enterprise features designed to reduce the cost of deployment. Each JRE or JDK version you select for download is made available in binary format and includes the related license files and other documents.

说的很清楚,Sun要靠提供JDK/JRE的服务和第一时间的补丁修正来赚钱了,不知这是不是Sun被Oracle收购后的盈利压力造成,确实Sun守着Java这棵摇钱树这么些年,花出去的钱如流水,真金白银却赚的很少,反而是处处被IBM抢得先机。看样子现在Sun是该让Oracle教教它该怎么赚钱了。

分类: WORK 标签: , , ,

以实际行动庆祝建党88周年

2009年7月1日 robertbao 3 条评论

不错,不错,招商银行以实际行动庆祝建党88周年,今天股价又涨了不少,看来最近的这次投资还算是成功。最近金融板块集体狂欢,银监会下发《关于进一步加强信贷管理的通知》,看样子是可以被理解为银行股的长期利好。中金公司最新研究报告也继续看好银行股走势,预计银行业在下半年将进入盈利稳定增长通道,将2009 年和2010年行业盈利预测分别上调3%和14%。我也认为银行股仍有不少的上涨空间,当前的股价还是远被低估了,继续持有一段时间再说。

jiandang_88.jpg
stock_zhaoshang.jpg

分类: PASTIME 标签: ,

网站配色方案

2009年6月3日 robertbao 3 条评论

下面是本站的配色方案,色系的选择以简约、清新为主,冷暖结合。

web_color.jpg

下面是我比较常用的几个色彩选择:

web_color_01.png

web_color_02.png

web_color_03.png

web_color_04.png

分类: WORK 标签: ,

Mysql主从服务器配置

2009年5月29日 robertbao 1 条评论

虽然Mysql与大型商用数据库服务器,如Oracle、DB2等相比,在功能、性能和稳定性等方面差距不小,但Mysql对于中小型的数据库应用远远能够满足需要,绝对不失为一款优秀的数据库软件。下面我介绍一个Mysql中稍微高阶的特性,在Windows下进行Mysql服务器主从配置的过程,所使用的Mysql版本为5.0.12。

1、准备工作

从Mysql官方网站下载Mysql解压包mysql-noinstall-5.0.12-win32.zip,注意是解压包,不是安装包。

解压为两个目录:

mysql-5.0.12-master和mysql-5.0.12-slaver

2、主服务器配置

2.1、修改mysql-5.0.12-master/my.ini,其中

[client]
port = 3306
[mysqld]
server-id = 1
port = 3306
binlog-do-db =test
binlog-ignore-db=robertbao
log-bin=mysql-bin

2.2、运行mysql-5.0.12-master/bin/mysqld.exe

2.3、进入命令行,创建同步用户

grant replication slave,reload,super on *.*
to robertbao@'localhost'
identified by '123456';

2.4、查看主服务器状态

show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 106 | test | robertbao |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

3、从服务器配置

3.1、修改mysql-5.0.12-slaver/my.ini,其中

[client]
port = 3308
[mysqld]
server-id = 2
master-host = localhost
master-user = robertbao
master-password = 123456
master-port = 3306
port = 3308

3.2、运行mysql-5.0.12-slaver/bin/mysqld.exe

3.3、进入命令行,参照主服务器状态数据,执行操作

slave stop;
change master to master_log_file='mysql-bin.000001',master_log_pos=106;
slave start;

4、结果

在主服务器命令行中

use test;
create table mysite;

然后在从服务器命令行中

use test;
show tables;

能看到

+----------------+
| Tables_in_test |
+----------------+
| mysite |
+----------------+
1 row in set (0.00 sec)

说明主从服务器数据已经同步成功,在主服务器中建的表在从服务器中也有了。

分类: WORK 标签: ,