`
housheng33
  • 浏览: 239672 次
  • 性别: 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用户等等……

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

相关推荐

    信息系统项目管理师-高项-笔记分享2015

    - 独特性:每个项目都有其独特的目标和成果。 - 渐进性:项目随着工作的进展逐步明确和细化。 2. **项目与日常运营的区别**: - 日常运营:是持续不断的、重复性的活动。 - 项目:是一次性的、临时性的,并追求...

    项目管理实战工具模版-PMP.zip

    项目经理的“开门七件事”可能包括以下内容: - 定义项目目标和范围 - 组建并管理项目团队 - 制定项目计划 - 分配和跟踪资源 - 管理风险和问题 - 监控项目进度 - 保证项目质量并适时调整计划 通过使用这些模版,...

    项目管理项目计划书-模板.doc

    《XX项目计划书》是项目管理中的重要文档,旨在详细规划和指导项目的实施。这份27页的计划书由1Co. Ltd公司制作,包含了多个关键部分,旨在确保项目的顺利进行。 1. **简介** - **目的**:明确计划书的作用,即为...

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

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

    软考 中级系统集成项目管理工程师

    【系统集成项目管理工程师】是信息技术领域中一项重要的专业资格认证,主要针对系统集成项目进行管理的专业人士。考试涵盖的内容广泛,包括项目管理基础、软件工程、系统集成等多个方面。以下是对部分核心知识点的...

    第05章 项目范围管理 练习题.pdf

    产品需求和项目需求:这个选项包含了完成项目所需的所有具体要求,是最全面的答案。 - **答案**:D.产品需求和项目需求。 #### 二、项目范围说明书内容 - **题目解析**:项目范围说明书是对项目范围的正式描述,它...

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

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

    一个软件项目计划的模板

    软件项目计划是软件开发过程中的...通过以上各点,我们可以看到软件项目计划的重要性,它不仅指导项目的实施,还是项目成功的关键因素。有效的计划能够帮助团队避免常见问题,提高工作效率,确保项目按预期顺利完成。

    信息系统项目管理师教程(第3版)各章知识点整理

    《信息系统项目管理师教程(第3版)》是备考信息系统项目管理师认证的重要参考资料,它涵盖了项目管理的全过程,包括项目启动、规划、执行、监控和收尾等关键环节。以下是对各章节主要知识点的详细解析: 1. **第一...

    java金融项目开发-商业银行业务

    商业银行业务是金融项目开发的重要组成部分,涵盖了贷款、投资、存款等多个方面。 一、资产业务 资产业务是商业银行的主要收入来源,包括贷款、投资等多个方面。 1. 贷款业务 贷款业务是商业银行的主要资产业务...

    Eclipse JavaEE 2020-03最新版 eclipse-jee-2020-03-R-incubation-win32-x86_64.zip

    3. **2020-03版本**: 这个版本代表了2020年3月发布的一个重要更新,其中可能包括性能优化、新的API、修复的bug和增强的功能。Eclipse社区定期发布新版本,以保持与最新的Java技术同步,并持续提升用户体验。 4. **...

    android 扫描二维码 [android-support-v7-appcompat] eclipse的完整项目

    这个了项目【android-support-v7-appcompat】 里面 包含 R.styleable.AppCompatTheme这个变量,资源很有用,很全面。 这个是 ADT的项目, 好多人都在用 Android Studio了。。。可正常扫描二维码了,识别出来...

    项目立项书模板

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

    最新版android-support-v4.jar

    Android Support Library v4是一个重要的组件,它为Android应用程序提供了向后兼容的功能。这个库使得开发者能够使用最新的API特性,即使目标设备运行的是较旧版本的Android系统。最新版的`android-support-v4.jar`...

    软考+信息系统项目管理师+学习笔记(核心内容)

    **这些法律法规对于规范信息系统项目的行为、保障各方权益具有重要意义。** 综上所述,信息系统项目管理师需要具备全面的知识体系,包括但不限于项目管理的核心知识领域、信息技术领域的专业知识以及相关法律法规...

    PMBOK-2004重要知识点

    2004年的版本是其发展中的一个重要里程碑,其中包含了项目管理的核心知识领域和过程组。以下将详细阐述PMBOK-2004中的关键知识点。 1. **五大过程组** - 启动过程组:项目启动阶段,定义项目并建立初步的工作基础...

    HCS-filed-PM笔试考题

    - **项目风险识别的步骤**:项目风险识别是项目管理中的重要环节,它涉及到一系列的步骤,如识别潜在的风险源、评估风险的可能性与影响等。具体步骤包括但不限于: - 定义项目目标和范围 - 识别风险因素 - 分析...

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

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

    SRA2021-G10-童峻涛-项目个人总结1

    在这个名为"SRA2021-G10-童峻涛-项目个人总结1"的项目个人总结中,童峻涛分享了他在"渔乐生活"项目中的工作经验,这个项目是在软件工程1802班的课程——需求分析中进行的。以下是他在项目中涉及的主要知识点和经验...

Global site tag (gtag.js) - Google Analytics