`
housheng33
  • 浏览: 238264 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

个项目最重要的十件事 --转载

 
阅读更多
这是我在做每个项目时的明细表,我强烈建议您也这样做。原因是:(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用户等等……

这给您带来了什么好处?您将有快乐和富有成效的开发流程和快乐的顾客,而且可以很容易为你的产品吸引到客
分享到:
评论

相关推荐

    项目经理应该知道的97件事

    ### 《项目经理应该知道的97件事》关键知识点解析 #### 一、书籍概述 《项目经理应该知道的97件事》是由Barbee Davis编辑的一本集合了众多项目管理专家智慧的书籍。本书收录了97篇由不同领域的专家撰写的关于项目...

    华为HCS-field-PM认证葵花宝典V1.0.docx

    - **关键环节**:项目交付计划初稿制定完成后,需要经过多个审批环节,其中**客户评审**是最不可或缺的一个环节。这有助于确保项目满足客户的实际需求。 #### 五、项目快速跟进的目的 - **缩短项目工期**:快速跟进...

    uCOS-II移植到PC项目文件(使用VS2015,包含uCOS-II代码).zip

    标题中的“uCOS-II移植到PC项目文件(使用VS2015,包含uCOS-II代码)”表明这个压缩包包含了一个将嵌入式实时操作系统(RTOS)uCOS-II移植到个人计算机(PC)上的项目,使用的开发环境是Visual Studio 2015。这个...

    系统集成项目管理工程师教程(第2版)目录完整版.pdf.zip

    该教程的目录完整版包含多个章节,旨在帮助读者理解并掌握项目管理的各个环节,为备考系统集成项目管理工程师资格认证或实际工作提供坚实的理论基础。 1. **引言** - 介绍系统集成项目管理的重要性及其在IT领域的...

    软件项目设计方案模块(框架)

    软件项目设计方案模块(框架)是软件项目的整体架构设计,旨在为软件项目的设计和开发提供一个统一的架构模式。本文将对软件项目设计方案模块(框架)进行详细的介绍和分析。 项目概述 ---------- 软件项目设计...

    IT项目管理那些事儿.pdf

    根据提供的信息,“IT项目管理那些事儿.pdf”似乎是一份关于IT项目管理的文档或书籍,但从给定的部分内容来看,并没有直接提供与IT项目管理相关的具体知识点,而是反复提到了两个链接:一个是作者的博客链接,另一个...

    【标准版】-IT软件项目实施方案

    - **项目背景**:IT软件项目的实施是一项复杂的系统工程,涉及多个阶段和技术领域,需要周密的规划和执行来确保项目的顺利进行。 - **目标**:确保项目能够按时、高质量地完成,满足用户的业务需求。 #### 二、工程...

    vue的一个实战项目

    9. **单元测试**:对于一个完整的项目,单元测试是保证代码质量的重要环节。可以使用 Jest 或 Mocha 进行 Vue 组件的测试。 10. **性能优化**:项目中可能会涉及 Vue 的性能优化技巧,如使用 `v-once` 提高性能、...

    完整版PMP项目管理模板(全套157个文档).rar

    这个认证在全球范围内被广泛认可,是衡量项目经理专业能力的重要标准。本资源为"完整版PMP项目管理模板(全套157个文档).rar",它包含了项目管理过程中的各种关键文档,旨在帮助项目管理人员更有效地执行和控制项目...

    一个完整的nodejs项目

    这个"一个完整的Node.js项目"是一个实践性极强的学习资源,适合初学者用来提升技能或者熟悉Node.js的全栈开发流程。 1. **项目结构分析** 一个完整的Node.js项目通常包括以下部分: - `package.json`:项目配置...

    java项目经验 大概有20个

    在Java领域,项目经验是衡量开发者技能和实践经验的重要指标。这里提到的20个项目涵盖了各种类型的系统开发,展示了丰富的Java技术栈应用。以下将详细阐述几个关键项目及其涉及的技术和责任: 1. **NovaCenter短信...

    IT项目管理最佳实践

    项目生命周期通常被划分为多个阶段,包括需求评估、项目定义、项目选择、项目章程制定等。每个阶段都有其特定的目标和任务。 #### 十四、有代表性的项目生命周期 不同类型的项目可能有不同的生命周期,例如: - *...

    项目立项书模板

    项目立项书是企业在启动一个新项目时所必需的重要文档之一。它不仅明确了项目的具体目标、范围和预期成果,还为后续的项目执行提供了明确的方向和依据。项目立项书通常包括但不限于以下几个关键部分: 1. **项目...

    Python电影推荐系统+爬虫+可视化+Django框架(协同过滤推荐算法)(包含项目源码+数据库文件+文档)计算机毕业设计

    | |-- models.py django的model 不懂百度一下即可 这个有点重要 | |-- views.py 后端主要代码 重点 重点 重点 重点 重点 重点 |-- meteorological | |-- settings.py 配置文件 | |-- urls.py 路由 这个有点...

    软件开发项目人员配置参考

    在软件开发过程中,合理的人力资源配置对于项目的成功至关重要。本文档旨在为软件项目管理提供一份详细的人员配置指南,帮助项目管理者(GM)更好地理解不同阶段所需的角色及其数量,从而更高效地组建和管理开发团队...

    研发项目管理方法(RDPM)

    它涵盖了项目管理的全过程,从项目启动到关闭,涉及了商业目标设定、项目生命周期模型、项目组织模型等多个维度,是华为项目管理人员的必修课程。 - **项目定义**: 项目被定义为一个具有明确目标、限定时间、预算和...

    高项-信息系统项目管理师(论文范文模板)

    ### 高级信息系统项目管理师论文知识点解析 #### 一、项目背景与目标 - **项目名称**:智慧社区综合服务信息系统 - **发起方**:XX市地区经济和信息化委员会 ...这对于其他类似项目具有重要的借鉴意义。

    软件项目建设方案.模板

    模板”是一个全面指导软件项目规划与实施的重要文档。它不仅涵盖了项目的各个方面,还提供了详细的步骤和方法,帮助项目团队有效地完成各项任务。通过遵循这一模板,可以显著提高项目的成功率,确保项目按时按质完成...

    Project项目管理 42个案例

    《Project项目管理 42个案例》是一份深入探讨项目管理实践的宝贵资源,它涵盖了Microsoft Project(通常简称为MPP)在实际操作中的多种应用场景。Project是一款强大的项目管理软件,广泛应用于各种行业,帮助项目...

Global site tag (gtag.js) - Google Analytics