每个项目最重要的十件事 转帖
1,版本控制,推荐git
2,db,推荐hsqldb
3,web server 推荐 jetty
4,ssh推荐nutz
5,项目管理推荐jira
6,持续build 推荐ant
7,其他的 如:持续集成服务器,代码测试和覆盖率,schema 自动模式 hibernate(??),还有简易的安装模式
除第七条外,其他的都在做。
下一步就是学学 第七条里面所有的内容
这是我在做每个项目时的明细表,我强烈建议您也这样做。原因是:(1)新的开发者很快的就能够加快这个项目的进程,(2)用户能够容易的安装你的产品,而且也很容易去维护。
1.版本控制:应该说您需要有某种形式的版本控制系统。如今的版本控制系统应该选择Subversion ,您只需要一台服务器主机。开放源代码的项目时,我使用code.google.com ,商业项目时我使用Hosted-Projects 。[url= http://hosted-projects.com]Hosted-Projects[/url],每月只需几美元,你在网上有一个备份。您需要检查你的repository,也包括所有的依赖库。
2.命令行编译脚本:我大部分的时间都在用Eclipse,他可以为我做所有的编译,单元测试和代码覆盖(EclEmma )。不过您需要命令行脚本去不断的build(通常是使用Ant 脚本)。你的脚本应分为:
1. 编译代码
2.编译测试
3.生成javadoc
4.运行测试与代码覆盖:我使用Emma 或cobertura 。
5.生成报告:测试的通过/失败和覆盖
6.建立一个分布的JAR。
3.连续Build:我见过很多项目,由于储存库的头部并没有被编译,导致无休止的生产力损坏。始终有一个规则,无论如何至少要让存储库编译(通过测试更为理想的)。使用持续集成服务器,例如cruisecontrol或Hudson。我宁愿选择[url= https://hudson.dev.java.net/]Hudson[/url],因为安装它很简单,而且功能非常强大,为您的上层管理提供了很多很好的图形显示。您要连续获得JARs,javadoc ,测试报告,覆盖面的报告它能提供生成的脚本。对于code-base的状态基本上没有疑议,如果你的老板想尝试最新的代码,他可以下载继续Build。
4.自动分级推动:设置连续Build,如果测试通过就自动的将代码转到分级服务器。我通常会使用Tomcat 服务器,只需要更新Web-INF目录与最新的代码,[url= http://tomcat.apache.org]Tomcat[/url] 就会自动的告知新的文件和刷新。这给了人们展示产品的平台。您可以让您的QA使用这个服务器,也可以使用单独的一个。我经常会有很多的自动化测试,所以我将网站直接给客户,并告诉他们这是“Alpha”服务器。这是非常有用的,当您的工作的一项功能完成,客户得到这一部分,对该功能的意见能给你正面的推动,如果到最后客户才能看到,项目就很难进行改变。
5.测试和覆盖:即使您是新的自动化测试和单元测试,我仍建议你还是要按照清单上来做。自动化的测试个给下个阶段带来了整体的进步。您从自动化的测试得到的好处是巨大的,并且关于测试的介绍也出版了书籍,所以我们不在这里详细的讲解。
6.默认的嵌入式Web服务器 :如果您正在建设一个Web应用程序,我推荐Jetty 作为您的Web容器。 Jetty 最酷的地方是您可以在您的main函数中新建服务。使用Tomcat 时,你要导入一个war文件,并将它添加到Tomcat 的目录中,然后等待Tomacat “安装” ,这样就会比较麻烦。但使用Jetty 您可以通过一个main函数开始您的应用(就像一个正常的桌面APP )并通过你的main函数来启动Jetty 。您的开发者更容易去开发/调试,您的客户也更容易去部署。
7.默认情况下嵌入式数据库 :没有什么比一个复杂的数据库安装说明更复杂。所以我使用一个嵌入式数据库,例如HSQLDB 。 在开发和测试中,我让系统采用一个内存数据库,然后我才使用这个数据库的硬盘版本。 但在这两种情况下客户/开发做的没有不同,这是最重要的。如果生产环境需要大负载,我再提供命令行选项,切换到外部数据库如Oracle数据库。
8.自动安装模式 :应用程序启动的第一件事就检查schema是否安装。 如果没有它会自动安装模式。 我通常使用的Hibernate ,如果需要他会为我做所有的事,升级架构,以较新的版本。所以在数据库中我从来没有担心过架构问题。
9.guice 依赖注入 :如果您想要一个可维护性,可测性和容易理解的code-base,您需要使用依赖注入 ( DI )作为一个设计模式。一个自动化的DI框架,使您的工作更轻松。我使用guice我想这是最先进的DI投资,同样还有picocontainer 和spring 。
10.易于安装/运行 :现在考虑的是让顾客更容易的去尝试你的产品。 我喜欢给我的客户看一个JAR文件,并告诉他们“双击”来启动JVM , Web服务器,数据库,安装架构,并推出网络浏览器(基于本地)。或您的应用通过Java Web Start 开始,这样你就可以在web页面中一键式安装,这样就不需要安装手册了。
a)把主要class放在JAR MANIFAST,这样只要双击就可以加载你的应用。
b)把所有的JAR依赖放在主要的JAR文件中,使用JarJar 或者One-Jar-Classloader 。
c)给应用提供:内存数据;安装schema; 加载Web的容器; 安装自动提供一个admin用户等等……
这给您带来了什么好处?您将有快乐和富有成效的开发流程和快乐的顾客,而且可以很容易为你的产品吸引到客户。
分享到:
相关推荐
全套项目管理文件模板.zip全套项目管理全套项目管理文件模板.zip文全套项目管理文件模板.zip件模板.zip全套项目管理文件模板.zip全套项全套项目管理文件模板.zip目管理文件模板.zip全套项目管理文件模板.zip全套项目...
软件项目管理之学生管理系统课程设计 软件项目管理是指对软件项目的计划、协调、控制和监理,以确保软件项目的成功实施。软件项目管理涉及到项目计划、进度控制、资源分配、风险管理、质量控制、沟通管理、人力资源...
IT项目管理的146个表格IT项目管理的146个表格IT项目管理的146个表格IT项目管理的146个表格IT项目管理的146个表格IT项目管理的146个表格IT项目管理的146个表格IT项目管理的146个表格IT项目管理的146个表格IT项目管理...
, 我们希望《项目管理成功案例精选》能为本同行业、不同管理层次、不同管理主体的项目管理人员提供对项目管理核心内容的理解与感悟,对项目管理实践的指导与建议;提供在实际操作中可以参考的管理流程、工作规范、...
信息系统项目管理师案例分析教程是一本专注于信息系统项目管理的教材,旨在帮助读者通过对项目管理案例的深入剖析,理解项目管理的基本理论和方法,提高解决实际问题的能力。本书涉及项目管理的多个关键领域,包括但...
软件项目管理课后习题答案 软件项目管理是指对软件项目的规划、组织、指导和控制,以确保项目目标的实现。以下是软件项目管理课后习题答案的相关知识点: 1. 项目的概念:项目是指为特定的目的、时间和预算,通过...
信息技术有限公司的项目管理手册是企业规范项目操作、提高效率、保证质量的重要文档。这份手册详细阐述了项目管理的各个环节,涵盖了从项目启动到结束的全过程,包括职责分配、项目整体管理、项目范围管理、项目进度...
通信工程项目经理项目管理资料合集,WORD/PPT/PDF等格式,共37份。 通信工程项目管理及监理PPT课件(共9章) 第1章通信工程项目管理及监理引论 第2章 通信工程项目组织管理 第3章 合同管理 第4章 信息管理 第5章 ...
《研发项目管理方法》(RDPM) 是一套针对科研与开发领域的项目管理理论与实践的综合指导体系。它旨在提供一套系统化、科学化的管理工具和技术,帮助研发团队有效地规划、执行、监控和控制研发项目,确保项目按时、按...
软件项目管理案例教程习题答案 软件项目管理是指在项目的整个生存期内,协调项目管理其他各管理知识域,将项目管理的方方面面集成为一个有机整体,保证项目的总目标的实现。项目集成管理从一个宏观的角度将项目作为...
### 项目管理学知识点概述 #### 一、项目与项目管理的基本概念 1. **项目的定义**: - 项目是一种独特的、一次性的任务或工作,旨在创造特定的产品或服务。 - 它通常受到时间、人员和其他资源的限制,并且具有...
IT项目管理是一个涉及规划、组织、指导和控制项目全过程的专业活动,目的是在有限的时间、资源和预算内,达成项目目标并满足相关利益方的需求。本知识点将根据提供的文件内容,详细解读IT项目管理的相关概念、过程、...
软件项目管理第4版课后题及答案.docx 本文档提供了软件项目管理的知识点,涵盖项目管理知识体系(PMBOK)的10个知识领域,包括项目集成管理、项目范围管理、项目时间管理、项目成本管理、项目质量管理、项目人力...
在IT行业中,项目管理是一项至关重要的任务,它涵盖了项目的整个生命周期,从启动到收尾,确保每一阶段都得以顺利进行并达成预设目标。"项目管理表格模板"为IT项目经理提供了一套完整的工具,帮助他们有效地组织和...
教程名称:IT项目管理视频教程(28集)课程目录:【】IT项目管理视频教程01~02【】IT项目管理视频教程03~04【】IT项目管理视频教程05~06【】IT项目管理视频教程07~09【】IT项目管理视频教程10~12【】IT项目管理视频...
1. 项目管理的重要性:文档指出项目管理不仅仅是一系列流程,而是一种结构化的体系方法,对于公司的生存和业务管理至关重要。它的核心在于通过管理项目来间接管理业务。 2. 项目管理的最佳实践积累:项目管理的最佳...
IT项目管理是信息技术领域中一个重要的实践领域,它涉及到项目的规划、执行、监控以及收尾等各个阶段。在青岛理工大学信息管理与信息专业的课程中,IT项目管理的课后练习涵盖了多个关键知识点。 1. 项目特点:项目...
在软件开发过程中,项目管理是至关重要的一个环节,它涵盖了从项目启动到交付的全过程,确保项目的顺利进行、质量和时间表的控制。本资源“软件项目管理考试试题”旨在帮助计算机软件工程及相关专业的学生或从业者...
《项目管理案例.zip》是一个包含了41个具体项目管理案例的压缩文件,这些案例以MPP格式呈现,是Microsoft Project的文件类型,专门用于规划、组织和管理各种类型的项目。通过对这些案例的学习和分析,我们可以深入...
### 研发项目管理方法(RDPM)详解 #### 1. 概述与基本概念 **研发项目管理方法**(RDPM)是华为技术有限公司内部研发项目管理的标准指南,旨在提升项目管理效率与成果质量。它涵盖了项目管理的全过程,从项目启动到...