
软件工程
gongqingkui
没有
展开
-
英语教材提取单词制作生词表
文章目录英语教材提取单词制作生词表教材分解成单词查英语字典生成单词表英语教材提取单词制作生词表教材分解成单词vim下:以非英语字符为界,切割所有文本:%s/\W/\r/g删除重复单词,并排序:sort u删除含有数字的“单词”部分:g/\d/d查英语字典生成单词表Pythonimport pandas as pd#读入单词和字典words = pd.read_csv('words.txt',encoding='UTF-8',names=['原创 2020-12-20 17:09:57 · 862 阅读 · 1 评论 -
使用svnant结合svn进行项目构建
使用ant可以进行项目构建,而在svn环境下进行项目自动构建则需要使用svnant来对源码进行操作。本例以从svn服务器上签出代码,在本地编译、执行为例说明svnant的操作。要执行以上操作,需要安装ant、带命令行的svn客户端和svnant。使用TortoiseSVN不可以,因为他没有svn可执行文件。建立的build.xml文件如下:原创 2012-11-01 21:41:44 · 3799 阅读 · 2 评论 -
QX项目实战-11.基础架构试验二:反序列化对象、重写数据库
上篇文章[1]中,实现了实验的前三步。下面开始实验的后两步:重建对象、数据库操作和消息平台的实现与完善。整个系统的架构如图所示,即传递的对象是封装了数据库操作对象和数据库SQL语言的report对象,在客户端解析完成后,重做数据库: 首先修正上篇文章中的发送和接收消息程序,之前的代码估计因为配置问题导致程序发送消息不是太流畅,这里改用如下版本程序,进行发送和接受report对原创 2012-11-25 16:38:45 · 1296 阅读 · 0 评论 -
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 · 2217 阅读 · 0 评论 -
QX项目实战-14.Struts2+Hibernate整合
以用户登录为例,说明Struts2和hibernate的整合。首先在MyEclipse8.0下新建一个web项目。注意编译器选择J2EE5.0版本。 我们先来增加Struts开发能力,在项目名上右击选择MyEclipse-增加Struts开发能力,这里选择Struts2.1版本。默认安装即可。再安装Hibernate开发能力,依然如上面的操作,选择Hibernate3.2原创 2012-12-06 17:15:50 · 1649 阅读 · 0 评论 -
项目自动化之道-7.安装与部署之增强安装形象
之前的程序即使是按键发布,产生的也只是一个RAR文件包,客户拿到之后需要解压之后放在某文件夹下,然后执行index.bat文件。这和我们常用的安装软件方法不太相同,所以这里增强安装形象。 使用NSIS可以创建应用程序的安装和卸载包。这个程序是编译安装卸载脚本来实现生产安装程序的。所以我们首先需要编写脚本。编写脚本使用HM NIS Edit程序,使用这个程序可以由向导产生安装脚本。原创 2012-12-04 20:45:28 · 991 阅读 · 0 评论 -
项目自动化之道-5.安装与部署之诊断测试
通常,我们为了排除客户端的故障,需要遥控用户执行相应的检查来确认环境和安装无误。这一过程非常之繁琐而且容易误解。即使我们有一个问题FAQ列表,也需要许多专职的技术支持来搞定用户。所以我们想到能不能用程序的方法来写这个FAQ列表,用程序来检查客户端的程序并报告给我们检查结果。这就是本文第一个要点:用诊断测试来排除故障。我们首先编写诊断测试程序。package userview; publ原创 2012-12-04 19:40:51 · 1004 阅读 · 0 评论 -
项目自动化之道-4.按键发布Bat版的jar打包改进
上两篇文章[9,10]使用的是Ant和Bat进行案件发布,但是发布的内容为编译之后的class文件,这里对bat文件进行改进,使其变成jar包的形式。在目录下直接运行index.bat文件即可调用vendor中的第三方类库来执行userview.jar文件的主类。 这个操作主要牵涉到第三方类库的调用、打包为jar文件。 其中index.bat内容为:java -Xb原创 2012-12-04 14:35:10 · 1229 阅读 · 0 评论 -
Ant结构化程序设计和WEB程序发布
Ant虽然只是脚本,但是却可以用结构化的方式组织。其开发步骤大体上分:1.了解需求,对开发工作进行详细地了解和分析,明确个步骤。2.将整个开发流程进行归纳,简化,画出流程图。3.对流程图进行提炼,抽象出通用函数。4.实现各函数。 函数的编写方法采用传参的target,再用antcall调用时传入参数的方式。如创建目录函数为: 调用时使用:原创 2012-11-18 15:44:43 · 968 阅读 · 0 评论 -
项目自动化知道-4.按键发布Bat版
上篇文章[8]使用的是Ant进行按键发布,比较复杂而且必须安装Ant。这里从新写一个bat版本的程序来实现和上文类似的按键发布功能。这个bat文件是:@echo offREM 这是清理之前的CMD留下的痕迹ClsREM 版本号为传入的参数,调用方法为rb2 1_1,则version变量为1_1set version=%1set name=userviewREM 取得当前日期信息原创 2012-12-02 21:04:30 · 1132 阅读 · 0 评论 -
项目自动化之道-3.按键发布Ant版
为了发布所准备的内容有:1.标示发布的唯一名字和版本号,如userview-2.1。2.完整的功能和文件,例如说明文档和历史文件。3.安装方法,例如安装脚本或者安装包。 发布的步骤为:1.发布工作应该从系统建立之初开始。2.首先应该对发布进行同步。所有程序员对代码进行签入。3.对当前工作进行健全性检查。即首先从仓库中签出代码,然后运行构建代码,修改到构建能够成功运行。4.生成发布分支原创 2012-12-02 14:27:22 · 1032 阅读 · 0 评论 -
项目自动化之道-2.使用CruiseControl定时建构
定时建构可以迅速找到集成问题和失效测试问题,因为它是以规律的时间间隔运行的。各部分的程序员,只在本区域进行集成测试,而不会测试整个系统的集成测试情况。所以为了避免错误的累积,我们必须采用定时建构的方法, 一般而言,定是建构的步骤为:1.签出版本控制系统当前代码2.调用建构文件和测试代码3.建构结果写入日志文件。为了完成上述过程,在UNIx系统上,我们采用cron命令,在win系统下我原创 2012-12-01 13:03:28 · 1163 阅读 · 0 评论 -
QX项目实战-15.使用JSP快速开发核心功能
为了早日看出程序流程和展示,暂时可以先不采用SSH框架来搭建程序,而是采用更为简单快速的JSP脚本语言编写核心功能,达到可以展示的效果。之后为了提高效率或者提高软件复用性再考虑使用框架。 首先在MyEclipse中建立QX_jsp项目,将其部署到当前服务器中,运行服务器验证项目部署完成、服务器正常。 大体上,我们按照JavaEE的分层来编写程序。编写javabean和j原创 2012-12-24 16:39:13 · 1096 阅读 · 0 评论 -
QX项目实战-16.ActiveMQ消息服务部署和维护说明
3.1下载、安装JDK1.6 从官方网站下载JDK1.6以上版本,如jdk-6u4-windows-i586-p.exe。双击执行安装过程,安装到诸如C:\Program Files\Java\jdk1.6.0_10的路径下。3.2配置Java环境在桌面上找到我的电脑,右击鼠标选择->属性,->高级->系统变量在系统变量里点击新建,在变量名填写:JAVA_HOME,在变量值填写诸原创 2013-02-26 22:35:26 · 3206 阅读 · 0 评论 -
QX项目实战-17.同步业务逻辑说明
本文以一个消息服务器居中,作为消息中间件来描述本系统的运行情况,同时帮助理解ActiveMQ的运行机制。1.业务流程ActiveMQ服务器负责数据同步。各地区程序负责将本地修改数据传输到ActiveMQ服务器中。中心端程序负责从ActiveMQ服务器上获取消息,并在中心端进行同步处理,同时将中心端提交数据同步到各地区在ActiveMQ服务器中的消息队列中去。具体业务流程如下:地区端到中原创 2013-02-28 16:46:04 · 1369 阅读 · 0 评论 -
tkinter总结
Tkinter总结注意2.x版本下名为Tkinter,3.X下名为tkinter,注意首字母大小写不一样最简单界面Import tkinter as tkRoot = tk.Tk()Tk.mainloop()组件Label l1 = tk.Label(root,text=’xxx’)第一个参数是Tk()对象,然后l1.pack()布局就行啦。 核心组件Topl...原创 2019-01-08 22:58:11 · 1266 阅读 · 0 评论 -
pyinstaller 简单使用
首先新建虚拟环境Python –m venv bui启动虚拟环境Bui\scripts\activate.batCli提示符出现(bui),表示进入虚拟环境。安装pyinstallerPip installer pyinstaller编译程序测试Pyinstaller pdfwindows.py命令行下执行程序程序出错,提示没有reportlab库,这是因为虚拟...原创 2019-01-08 22:57:22 · 304 阅读 · 0 评论 -
Tmux的使用
用Python编写HTTPServer测试程序,需要后台运行Python。为了解决SSH链接不稳定和一旦退出所运行的命令就丢失的问题,学习了tmux。Tmux是一个功能强大的命令行界面,它在服务器端拥有shell界面,支持多session,多窗口,小窗口。其上运行的命令在退出SSH时不会丢失。允许你一次登录的情况下打开多个回话,并在会话中切换。安装 sudo apt-get install原创 2015-12-20 21:28:16 · 2125 阅读 · 0 评论 -
git简单使用
服务器和初始设置首先需要在服务器https://code.youkuaiyun.com建立一个项目,得到一个地址形如:https://code.youkuaiyun.com/yourname/yourproject.git下载并安装git设置git 的username和email属性git config --global user.name "YourName"git config --global原创 2015-07-29 17:46:23 · 1237 阅读 · 0 评论 -
高效程序员的45个习惯1-15
1. 做事:针对的是事情,而不是人。寻求增加开发时间的方法,无异于寻找铅线来纺织救生衣。2. 欲速不达:编码时,经常对数组进行+-1来修正,最后导致大规模问题,建议不孤立编码,同时进行单元测试。3. 对事不对人:不能否定个人能力,指出缺点,询问提出疑惑。引导让他提出一个疑问,让他自己意识到问题。4. 前进:有勇气承认自己的原创 2013-07-25 16:39:26 · 2018 阅读 · 0 评论 -
QX项目实战-20.阶段性总结反思
进入躁狂状态:1. 交流问题固然存在,但是主要问题不是在于交流,而在于需求的不确定。甲方需求不确定,我们交流再充分、工作再细致、考虑再周全,最后都变成扯淡。2. 加强沟通,不仅仅是组内的沟通,还要加强与湖北的沟通。系统最后要集成到对方的系统内,临到最后再说什么对方的结构,再改底层基础架构,这不是扯淡么!好了,发泄完了,下面切回正常状态……3. 小组内部原创 2013-03-17 15:51:46 · 1676 阅读 · 2 评论 -
人月神话-结合QX项目的总结
前几天关于QX的中期总结,多是发发牢骚1,2。这里看了《人月神话-国内实战体验精华版》的内容,重新对项目中的问题进行思考和总结。1. 无论是开发人员的人数上,还是工作量本身上的变化,都可能导致最终完成时间的非线性变化。进一步的研究表明,增加人手不一定会施工期进一步推迟,不过一定会是工程效率进一步降低。2. 大型系统项目首要的就是保持概念完整性,不要强调功能。为了确保概念完整性,作出决定的必原创 2013-04-15 21:37:02 · 1587 阅读 · 0 评论 -
IDF2013
第一次有机会参加技术类的会议-2013英特尔信息技术峰会。从北大博士师兄那里拿了胸卡,直接到了三楼开始听技术课程。 《用Parallel Studion XE 2013将并行性从至强扩展到至强融核上》至强融核是Inter进行并行运算的协处理器。英特尔工程师以求蒙特卡洛算法为例,指导我们实际动手优化从串行程序到至强到至强融核一系列的改进。软件所的一个姑娘坐在我傍边,超过工程师讲原创 2013-04-15 19:46:53 · 1451 阅读 · 0 评论 -
SVN简单使用
这里不说自己架设SVN服务器的情况1。而是将代码存放到google code中去。然后在本地googlecode中的代码进行签出、修改和协同工作。1. 首先登陆code.google.com新建一个项目gongblog,使用的版本控制工具选择subversion。2. 进入gongblog的source标签页,复制第一个超链接。TotoiseSVN工具操原创 2013-04-22 15:27:35 · 1640 阅读 · 0 评论 -
关于需求变更以及管理
而因为需求变更的原因,致使项目多次的延期后,客户仍然说这不是他们想要的。你还是在抱怨客户的需求像天气一样一直变个不停,最终,无论是你的抱怨还是客户的需求变更只会令项目组中的开发人员疲于奔命,无所适从。 在你的软件项目进行开发之前,你和你的项目成员是否有过这样的想法,在这次软件项目开发中,一定要消除需求变更,不让谈论好的需求发生任何的变更? 项目开发过程中,需求的变更是不转载 2013-03-17 19:46:55 · 1048 阅读 · 0 评论 -
Ant的主要任务的语法
Eclipse默认提供了对Ant的支持,在window-Preferences->ant下对Ant进行配置,Eclipse下可以对build.xml文件进行编译处理,支持错误检查、格式化。Ant脚本是有Ant任务按照一定结构组成的,主要的Ant任务有:任务大类任务使用方法说明归档任务GZipBZip2原创 2012-11-17 17:32:32 · 1897 阅读 · 0 评论 -
项目自动化之道-1.使用ant进行单步建构
俗话说,遍身罗绮者,不是养蚕人。我们为别人写程序,缺陷有时间让我们自己的工序自动化。如果可以让计算机承担更多的更复杂的周期任务,我们将会有更多的时间做更有价值的工作。自动化可使用shell脚本,构建文件,配置和自动构建工具,并不在于多么深入学习这些,而是要综合考虑学习成本和自动化之后效率的提升。一般来说,现在花功夫学习这些自动化工具,对此后的开发是有很大好处的。 这一系列的总结文章,原创 2012-11-30 19:49:12 · 1492 阅读 · 0 评论 -
Subversion的查看改动历史、放弃修改、反向合并
提交改动:首先更新svnupdate,发现问题,解决之后运行自动测试工具,测试完成后再提交代码,并且注意一定要附上注释信息svn commit –m “message”。这里需要注意注释信息不是你修改的什么,而是为什么这么修改。因为修改了什么很容易通过diff命令查看,而为什么修改才对后来者有帮助。 查看改动历史:使用svnlog 命令,带文件名用svn log filename原创 2012-11-07 11:12:06 · 9093 阅读 · 1 评论 -
SCX项目思考-1.模型建立和股权分配方案
SCX项目是本科生和我一块整的创业项目。初步的设想应该是B2C网站,具体的运营和盈利模式,我固然不可能全面掌控,可自我要求也要深度参与。身为技术人员,这些年我也开始转变看法,以前总是把技术看得太重,轻视资本和运营。实际上我觉得,技术在初起步的公司,最多占20%。如果技术人员胁迫管理层要求资源,对于初期发展,应该是不利的。不过BOOS许诺的股权是30%,其实我不太看重,因为实际上大家都知道创业的成功原创 2012-11-04 20:56:53 · 1525 阅读 · 0 评论 -
JavaWeb体系结构的理解-9.程序调试与发布
查看错误信息:JSP页面执行后返回错误信息,或者在Tomcat服务器下logs文件夹存储程序中使用System.out.println输出的信息。常见错误指令名称错误如JasperException指令属性错误JasperException错误:invlid attribute指令格式错原创 2012-10-25 22:29:36 · 632 阅读 · 0 评论 -
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 · 1536 阅读 · 0 评论 -
QX项目实战-5.ajax动态加载影响JS功能,SVN的合并
项目快速开发使用基于Ajax的HTML框架,简便易用、开发速度快、无刷新加载。上篇文章介绍了其大体功能和动态调用的实现方法,这里介绍遇到的问题。 在使用Ajax导入的新页面中,含有调用JS代码功能的submenu菜单。但是在Ajax动态加载过程中,注册到submenu中的js函数已经不可再用了。因为所有的点击功能都是在窗口加载时的onready方法中定义的,而动态Ajax加载并不原创 2012-11-01 11:09:49 · 1123 阅读 · 0 评论 -
QX项目实战-3.读取数据、数据写入数据库、读出数据生成新文件
上篇文章记录了配置文件的读写,属于系统功能的模块。而预处理、处理以及生产部分的实验,在本文章进行总结。1. 预处理(文本源数据读入、解析、进入数据库)预处理部分从文本元数据文件中读入文件,然后解析成数据表的内容,最后写入数据库。这个过程可以分为读文件、解析和写库三个部分。读文件:使用br = new BufferedReader(new FileReader(file));来打开文件,原创 2012-10-23 10:49:08 · 2277 阅读 · 0 评论 -
QX项目实战-4.模型快速开发
为了是客户更早的看到效果,提出双方理解有误的地方,明确需求分析。可以首先开发一个原型来发现更多、更详细的功能定义。这就是模型,模型首先要容易开发,速度要快。最好的方法就是只搭建一个界面,提供功能预览。本例使用html快速搭建软件环境。采用JQuery+html+div/css的方法,用html搭建基本架构,DIV+CSS书写表现,JQuery编写动态效果和Ajava功能。本例中菜单项是使用JS原创 2012-10-31 11:01:51 · 1243 阅读 · 0 评论 -
Subversion的签出、更新、添加文件目录、拷贝移动文件和处理合并冲突
本文总结Subversion常用的功能,以备索引。1. 签出a) 使用svn checkout(co)命令从项目目录中取出东西并且新建一个工作拷贝。b) 不指定名称则使用原文件目录名。Svn checkout svn://192.168.195.54/simple将svn目录的simple项目拷贝到当前目录下的simple下。c) 指定新目录名原创 2012-10-18 22:16:10 · 9324 阅读 · 0 评论 -
Subversion的导入、修改与提交
为了控制多个用户对同一个文件的修改,引入了加锁策略。在严格锁(strict locking)的情况下,文件一旦被某用户签出,那么他就标记为只读,其它用户只能等待这个用户,相当于他独占了这个文件。在乐观加锁(optimistic locking)情况下,用户都可以修改同一个文件,只不过在提交的时候需要更新本地文件,一旦和自己签出的版本和系统最新版有何差别,就需要进行合并系统最新的更新,如果这个修改的原创 2012-10-04 17:16:18 · 2653 阅读 · 0 评论 -
Subversion(svn)服务器端配置
svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。它分为服务器和 客户端两侧,简单说服务器用于管理代码,客户端用于上传下载代码。服务器端安装:下载Setup-Subversion-1.6.5.msi一路安装下来。安装完成后在cmd下执行svn指令,会输出一句帮助信息。客户端安装:可以使用Tortois原创 2012-09-13 19:22:51 · 1406 阅读 · 0 评论 -
QX项目实战-1.需求分析
从今年九月份开始需要参与到某项目中去。虽然之前自己搞过项目、开源软件、工作项目,但都不是太系统和深入。所以这次工程实践一定要总结、记录下有用的东西。关于需求分析:1. 必须明确用户的需求,而不是靠分析师拍脑袋决定系统应该怎么做,应该实现哪些功能。2. 有的时候,尽管我们能够给出更合理的意见,可是客户可能需要的就是一个不合理的功能。这个不合理的功能,让他拥有更多的权限原创 2012-10-16 21:06:48 · 1252 阅读 · 0 评论 -
Subversion文件加锁
Subversion对于文件的管理分为文本文件和二进制文件,对于文本文件使用subversion可以进行行级别的管理,但是对于二进制文件,subversion使用锁的方式管理,所有的加锁文件都是只读的,而且在本地拷贝对应了一个锁令牌,下面我们模拟下加锁和解锁的过程。 用户Gongqingkui新建readme.doc文件,使用svn status检查状态,发现有了新建的readm原创 2012-11-07 17:06:31 · 3194 阅读 · 0 评论 -
使用Ant和批处理备份数据
之前每周任务里都会安排一个备份资料、代码的任务,无非是压缩成rar文件,然后缀上当前日期。一般一个月或者一周备份一次,虽然并不频繁却也非常麻烦。最近学习Ant和bat批处理,突然想到可以设定批处理任务来进行定时进行这些操作。思路为:文件由ant压缩命令拷贝到备份目录下,代码由svn导出备份,日常进行增量备份。这些操作可以用计划任务进行每日或者每周执行。 这里以E盘下file文件夹压缩原创 2012-11-26 15:34:57 · 2412 阅读 · 0 评论