- 博客(29)
- 资源 (8)
- 收藏
- 关注
原创 项目自动化之道-1.使用ant进行单步建构
俗话说,遍身罗绮者,不是养蚕人。我们为别人写程序,缺陷有时间让我们自己的工序自动化。如果可以让计算机承担更多的更复杂的周期任务,我们将会有更多的时间做更有价值的工作。自动化可使用shell脚本,构建文件,配置和自动构建工具,并不在于多么深入学习这些,而是要综合考虑学习成本和自动化之后效率的提升。一般来说,现在花功夫学习这些自动化工具,对此后的开发是有很大好处的。 这一系列的总结文章,
2012-11-30 19:49:12 1458
原创 QX项目实战-13.基础架构试验四:JavaWeb消息平台
实验一二三已经实现了对象消息的传递和数据库的重做。本实验测试在JavaWeb环境下对本地数据库进行修改,对修改过程进行封装、通过ActiveMQ传递以及在异构数据库上重做的过程。整个流程如图所示:上述图中,本地数据库通过JavaWeb程序对数据库进行进行CURD操作,他的操作过程通过MQAPP序列化之后传递给ActiveMQ服务器,另一端访问JavaWeb程序,得到当前程序修改的信
2012-11-28 10:57:11 1675
原创 QX项目实战-12.基础架构试验三:异构数据库同步
QX项目中的数据库因为遗留系统问题,两端必须采用不同的数据库。因此存在着异构数据库同步的问题。根据实验一、二,现在已经可以实现在ActiveMQ基础上的消息和对象传递、序列化对象和反序列化对象的功能。这就给异构数据库同步提供了基础。 在实验三里,我们继续采用SQLServer发送数据库对象消息,而客户端接收对象消息解析后交给MySql执行的方法来验证系统的可行性。这些操作中,客户端和
2012-11-26 16:24:30 1257
原创 使用Ant和批处理备份数据
之前每周任务里都会安排一个备份资料、代码的任务,无非是压缩成rar文件,然后缀上当前日期。一般一个月或者一周备份一次,虽然并不频繁却也非常麻烦。最近学习Ant和bat批处理,突然想到可以设定批处理任务来进行定时进行这些操作。思路为:文件由ant压缩命令拷贝到备份目录下,代码由svn导出备份,日常进行增量备份。这些操作可以用计划任务进行每日或者每周执行。 这里以E盘下file文件夹压缩
2012-11-26 15:34:57 2382
原创 QX项目实战-11.基础架构试验二:反序列化对象、重写数据库
上篇文章[1]中,实现了实验的前三步。下面开始实验的后两步:重建对象、数据库操作和消息平台的实现与完善。整个系统的架构如图所示,即传递的对象是封装了数据库操作对象和数据库SQL语言的report对象,在客户端解析完成后,重做数据库: 首先修正上篇文章中的发送和接收消息程序,之前的代码估计因为配置问题导致程序发送消息不是太流畅,这里改用如下版本程序,进行发送和接受report对
2012-11-25 16:38:45 1253
原创 JUnit下的测试和suite
Eclipse下使用JUnit3来进行测试的框架为:package test; import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement; import server.db.DB; import junit.fram
2012-11-24 11:05:08 2184
原创 QX项目实战-10.基础架构实验一:传递消息、序列化对象和数据库封装
为了验证ActiveMQ传递序列化对象与同步的可行性,搭建一个小的测试系统来测试。这个系统的结构为: 其中DB为数据库,服务器端和客户端数据定义和数据是一致的。服务器端CURD为数据库操作类,它将操作对象信息序列化后发送给MQAPP,MQAPP负责和ActiveMQ交互传递序列化后的信息。客户端MQAPP接收到序列化后对象反序列化后,重新交给CURD程序写到数据库中。以上
2012-11-23 21:43:15 1744
原创 QX项目实战-9.ActiveMQ编程实例
按照参考1的配置,ActiveMQ已经可以运行了。但是牵涉到它的架构、部署和运行机制比较复杂,动手编程比较困难。所幸基本的消息收发机制已经可以实现了,所以暂时写一个测试例子来测试下消息传递的功能。 按照参考2所述,本例子采用queue消息的形式,用producerClient来发送消息到ActiveMQ的消息队列,用consumerClient来接收ActiveMQ的消息来显示。pr
2012-11-22 11:03:50 3223
原创 Win下自动备份MySql数据库
Window下可以使用Bat批处理文件来对MySql进行备份操作,备份时一般数据量较大的情况可以使用复制文件的方式,但是这种方式要求服务器停机或者停止写入命令,不大使用。如果数据不大,推荐使用mysqldump命令来备份数据库文件为sql文件。使用方法为mysqldump –uroot –ppassword dbname > db_date.sql。编写bat文件,使用window的任务计划来定时
2012-11-18 18:32:31 1644
原创 Ant结构化程序设计和WEB程序发布
Ant虽然只是脚本,但是却可以用结构化的方式组织。其开发步骤大体上分:1.了解需求,对开发工作进行详细地了解和分析,明确个步骤。2.将整个开发流程进行归纳,简化,画出流程图。3.对流程图进行提炼,抽象出通用函数。4.实现各函数。 函数的编写方法采用传参的target,再用antcall调用时传入参数的方式。如创建目录函数为: 调用时使用:
2012-11-18 15:44:43 932
原创 Ant的主要任务的语法
Eclipse默认提供了对Ant的支持,在window-Preferences->ant下对Ant进行配置,Eclipse下可以对build.xml文件进行编译处理,支持错误检查、格式化。Ant脚本是有Ant任务按照一定结构组成的,主要的Ant任务有:任务大类任务使用方法说明归档任务GZipBZip2
2012-11-17 17:32:32 1856
原创 Ant脚本的详细配置
Ant[1]的全部编译工作都是通过一个脚本build.xml完成的,build.xml是一个标准XML文件,根元素是project,他包含description、target、property和task元素,其中target元素也可以包含若干task元素。 元素 特性ProjectName工程名default默认执行的target
2012-11-16 22:15:15 2587
原创 QX项目实战-8.ActiveMQ的Queue消息和Topic消息
项目使用ActiveMQ传递消息,保证大量数据信息的同步任务。对于这种基础架构层面的东西必须进行测试和熟悉。前几天已经下载安装和测试了ActiveMQ服务器[1],对该服务有了直观认识,下面我们深入了解下ActiveMQ到底能完成什么样的功能。 首先测试Queue消息的生产者消费者问题,在cmd下进入ActiveMQ的example目录,运行ant consumer命令,编译执行消
2012-11-15 21:46:16 2142
原创 Subversion综述
Subversion(svn)是近年来崛起的版本管理工具,是cvs[3]的接班人。目前,绝大多数开源软件都使用Subversion作为代码版本管理软件。Subversion的安装方法见参考[1]。需要注意的是,安装完服务器端之后,在客户端一般要安装tortoise工具[15]或者subversion工具。 首先必须理解Subversion的基本概念[4]。建立仓库后[1],导入项目
2012-11-14 14:19:27 1295 1
原创 Subversion的Checklist
本文PDF手册下载地址 http://download.csdn.net/detail/gongqingkui/4760985Subversion的共同选项:--N 只操作单个目录,不处理子目录--v 打印额外的信息--q 打印尽可能少得信息--username name 指定连接授权时的用户名--password pawd 指定使用的密码--editor-cmd 使用
2012-11-12 21:51:32 1253
原创 QX项目实战-7.ActiveMQ的安装与测试
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。项目中要使用该技术作为上传下载同步之用。现在测试下功能:1. 首先到官网下载安装包,最新版本为5.7.0。2. 注意ActiveMQ的安装环境要求。3. 文件解压到任意目录,运行bin\activemq.bat开始启动服务。4. 启动后使用netstat –an|find “61616”查看是否有TCP
2012-11-12 16:49:10 1947
原创 Subversion的备份和Tortoise工具
备份 备份:全部备份:svnadmin dump svndb >svndb.20121011 增量备份:svnadmin dump –incremental –revision 100:104 svndb >svndb.100-104 恢复:首先创建新的数据库svnadmin create svndb2再导入数据:svnadminload svndb2
2012-11-10 21:48:11 1616 1
原创 Subversion创建项目及项目间共享代码
使用subversion管理来项目,初始建立方式有三种1.已有的代码导入到项目仓库中2.使用svn mkdir命令创建目录3.从已有cvs、rcs等导入。 使用第一种方式,切换到当前工作目录的最上层,清理掉各种备份和垃圾,只系那个svn import –m “project initial import” svn://192.168.195.54/hello/trunk。导入当前目录
2012-11-10 17:32:28 1857
原创 Subversion的试验分支
有时为了对项目进行试验性的改进,比如对底层功能进行改写,对安全机制进行重新设定。这种操作非常复杂,有相当的失败几率。为了控制这种修改,可以将代码单独拷贝到试验分支中去,试验完成后决定分支的合并或者废弃。 实验分支作为branches的子项目,按照参考文章1的要求,一般命名为TRY-Reason的形式。开发实验分支,可以按照开发分支的一般方法进行,即单独开辟空间签出代码修改代码,或者使
2012-11-10 15:38:32 1325 1
原创 Subversion分支的Bug修正
在发布分支中修正BUG:在发布分支中发现的BUG,我们必须跟踪所有的改动,然后确保这些改动应用到主线和所有发布分支中。所幸的是Subversion使用版本号来跟踪所有的改动,因此我们可以使用某些版本号来表示修改或者修改区间。甚至有些情况下我们需要新建分支来跟踪修改过程。 修正简单的BUG 本例以在分支修改代码后同步到主干为例 1.签出bug代码到本地svn
2012-11-10 13:05:55 1987 1
原创 Subversion发布分支和发布
发布分支:发布操作可以将当前代码转移到分支目录,在此基础上进行清理和发布,使用的命令要操作服务器端仓库,首先建立起分支目录svn mkdir –m “create branches directory” svn://192.168.195.54/hello/branches再将代码拷贝到分支中去svn copy –m “create release branch for 1.0” svn://19
2012-11-09 20:58:58 1229
原创 Subversion组织仓库的一般形式和标签和分支
一般我们看到的开源项目,主项目并不是直接存在比如http://svnserver/shareproject目录,而是http://svnserver/shareproject/trunk这样的目录里,其实这就是Subversion对于项目的目录管理方式的体现。大部分项目在开始时,都有一条主线(mainline),大部分开发工作是在这里完成,项目可能存在发布分支目录(release branches
2012-11-09 20:40:41 1427
原创 Subversion文件加锁
Subversion对于文件的管理分为文本文件和二进制文件,对于文本文件使用subversion可以进行行级别的管理,但是对于二进制文件,subversion使用锁的方式管理,所有的加锁文件都是只读的,而且在本地拷贝对应了一个锁令牌,下面我们模拟下加锁和解锁的过程。 用户Gongqingkui新建readme.doc文件,使用svn status检查状态,发现有了新建的readm
2012-11-07 17:06:31 3144
原创 Subversion的查看改动历史、放弃修改、反向合并
提交改动:首先更新svnupdate,发现问题,解决之后运行自动测试工具,测试完成后再提交代码,并且注意一定要附上注释信息svn commit –m “message”。这里需要注意注释信息不是你修改的什么,而是为什么这么修改。因为修改了什么很容易通过diff命令查看,而为什么修改才对后来者有帮助。 查看改动历史:使用svnlog 命令,带文件名用svn log filename
2012-11-07 11:12:06 9016 1
原创 SCX项目思考-1.模型建立和股权分配方案
SCX项目是本科生和我一块整的创业项目。初步的设想应该是B2C网站,具体的运营和盈利模式,我固然不可能全面掌控,可自我要求也要深度参与。身为技术人员,这些年我也开始转变看法,以前总是把技术看得太重,轻视资本和运营。实际上我觉得,技术在初起步的公司,最多占20%。如果技术人员胁迫管理层要求资源,对于初期发展,应该是不利的。不过BOOS许诺的股权是30%,其实我不太看重,因为实际上大家都知道创业的成功
2012-11-04 20:56:53 1501
原创 QX项目实战-6.数据库的建立
项目使用SqlServer2008数据库服务器,但是现在还没有安装这个版本服务器,所以先在较低版本服务器建立数据库。其它过程都正常,这里遇到了几个新的知识点。 Bigint:sqlServer中的整形分为tinyint、smallint、int和bigint四种。他们范围为0-255、-32768到32767、-2^31到2^31-1、-2^63到2^63-1,也就是说,他们的容
2012-11-02 14:42:08 1086
原创 使用svnant结合svn进行项目构建
使用ant可以进行项目构建,而在svn环境下进行项目自动构建则需要使用svnant来对源码进行操作。本例以从svn服务器上签出代码,在本地编译、执行为例说明svnant的操作。要执行以上操作,需要安装ant、带命令行的svn客户端和svnant。使用TortoiseSVN不可以,因为他没有svn可执行文件。建立的build.xml文件如下:
2012-11-01 21:41:44 3757 2
原创 Ant系统构建工具的使用
Ant是Apache旗下基于Java的开源系统构建工具(类似make、gunmake、nmake、jam),可以帮助程序员完成编译、打包、上传等功能。使用ant的大体步骤如下:1.下载程序2.配置ANT_HOME和Path变量3.编写build.xml文件4.执行程序。Ant工具基于Java语言实现,要求系统必须安装了JDK。它支持java编写的插件和接口。1.下载程序:下载apache-an
2012-11-01 18:06:54 1494
原创 QX项目实战-5.ajax动态加载影响JS功能,SVN的合并
项目快速开发使用基于Ajax的HTML框架,简便易用、开发速度快、无刷新加载。上篇文章介绍了其大体功能和动态调用的实现方法,这里介绍遇到的问题。 在使用Ajax导入的新页面中,含有调用JS代码功能的submenu菜单。但是在Ajax动态加载过程中,注册到submenu中的js函数已经不可再用了。因为所有的点击功能都是在窗口加载时的onready方法中定义的,而动态Ajax加载并不
2012-11-01 11:09:49 1100
PIM2.0个人信息管理系统
2010-04-24
基于VRML的“神舟7号”虚拟漫游(现实)系统
2009-12-12
单网页纯JavaScript英语字典软件
2009-08-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人