`
renjieguixiong5
  • 浏览: 75355 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

每个项目最重要的十件事 转帖

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:我见过很多项目,由于储存库的头部并没有被编译,导致无休止的生产力损坏。始终有一个规则,无论如何至少要让存储库编译(通过测试更为理想的)。使用持续集成服务器,例如cruisecontrolHudson。我宁愿选择[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用户等等…… 

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

相关推荐

    项目管理工具箱(第2版).doc

    项目管理人员考核表是项目管理的重要工具,用于记录项目的项目管理人员考核信息,包括项目的项目管理人员考核结果、项目的项目管理人员考核标准和项目的项目管理人员考核建议等方面的内容。 项目人员考核评分表是...

    IT项目管理的146个表格

    IT项目管理的146个表格IT项目管理的146个表格IT项目管理的146个表格IT项目管理的146个表格IT项目管理的146个表格IT项目管理的146个表格IT项目管理的146个表格IT项目管理的146个表格IT项目管理的146个表格IT项目管理...

    成功的项目管理(第5版).pdf

    作为一种新的工作方法论,项目管理不仅是一系列的计划与控制技术,而且是一系列的工作理念,以及一种独特的管理哲学。本书以通俗易懂的语言、理论和案例相结合的方式,详细讨论项目管理方法论;在介绍项目管理基本...

    软件项目管理规范

    "软件项目管理规范" 软件项目管理是软件工程和项目管理的交叉学科,涵盖了管理软件产品开发所必须的知识、技术及工具。软件项目管理的概念可以定义为:在软件项目活动中运用一系列知识、技能、工具和技术,以满足...

    1.4项目组合管理、项目集管理、项目管理和组织级项目管理之间的关系.pdf

    项目管理是一个宽泛的领域,它涵盖了从单个项目管理到组织级项目管理的广泛实践和方法。了解项目组合管理、项目集管理、项目管理和组织级项目管理之间的关系对于深入理解项目管理的复杂性至关重要。 项目管理...

    PMP项目管理模板(全套157个文档)

    PMP项目管理模板(全套157个文档),包含全套157个项目管理文档。。。。。。 PMP项目管理模板(全套157个文档),包含全套157个项目管理文档。。。。。。PMP项目管理模板(全套157个文档),包含全套157个项目管理...

    软件项目管理.pdf

    软件项目管理概述、软件项目管理的主要问题及解决方法、软件项目风险管理问题及解决办法、沟通管理问题及其解决方法、团队管理问题及解决方法 软件项目管理概述 软件项目管理是为了使软件项目能够按照预定的成本、...

    IT项目管理课后答案

    IT项目管理是信息技术领域中一个至关重要的组成部分,它涉及到项目的规划、执行、监控以及收尾,确保技术解决方案得以高效、按期且符合预算地完成。本资料包包含的"IT项目管理答案"提供了课程的PPT,课后习题及课外...

    软件项目管理第4版课后题及答案.docx

    软件项目管理第4版课后题及答案.docx 本文档提供了软件项目管理的知识点,涵盖项目管理知识体系(PMBOK)的10个知识领域,包括项目集成管理、项目范围管理、项目时间管理、项目成本管理、项目质量管理、项目人力...

    项目管理手册.pdf (产品开发流程)

    项目管理手册(产品开发流程) 项目管理手册是项目管理的核心参考文件,它提供了项目管理的总体架构、项目运作指南、项目团队的组织结构和职责、项目业务汇报关系等重要信息。以下是项目管理手册中提到的关键知识点...

    项目管理概论网课习题答案.zip

    《项目管理概论》是项目管理领域的一门基础课程,主要涵盖了项目管理的各个核心环节。这份"项目管理概论网课习题答案.zip"压缩文件,针对的是南开大学提供的网课学习资源,其中包含了课程的期末习题解答,为学习者...

    华为项目管理金种子初级培训教材.pdf

    华为项目管理金种子初级培训教材涉及的知识点非常丰富,涵盖了项目管理的基本流程、常用知识、实际应用、华为项目管理特定工具介绍以及项目管理的常见误区等多个方面。 首先,项目管理的基本流程包括项目的启动、...

    北邮IT项目管理案例课件

    从给定的文件信息来看,该课件主要探讨了IT项目管理的重要性和实施方法,以及在实际企业中的应用。以下是对这些知识点的详细说明: ### IT项目管理的重要性 IT项目管理是确保信息技术项目的成功实施的关键。它涉及...

    IT项目管理期末考试题总结--还好老师人好

    IT项目管理期末考试题总结 IT项目管理是信息技术项目的核心组成部分,它涉及到项目的规划、组织、领导和控制等多个方面。以下是IT项目管理期末考试题总结的相关知识点: 一、项目整合管理 项目整合管理是IT项目...

    IT项目管理视频教程(28集)

    教程名称:IT项目管理视频教程(28集)课程目录:【】IT项目管理视频教程01~02【】IT项目管理视频教程03~04【】IT项目管理视频教程05~06【】IT项目管理视频教程07~09【】IT项目管理视频教程10~12【】IT项目管理视频...

    埃森哲项目管理方法体系

    **埃森哲项目管理方法体系概述** 埃森哲是一家全球知名的管理咨询公司,其项目管理方法体系是业界广泛认可的专业框架,旨在确保项目的高效、有序和成功执行。该方法论结合了理论与实践经验,旨在帮助项目经理和团队...

    信息系统项目管理师第三版-项目管理知识体系整理.pdf

    信息系统项目管理师在项目管理领域的专业知识体系是相当完备的。根据给定文件的内容,我们可以从中提炼出项目整体管理、项目范围管理和项目进度管理等关键领域的知识点。 项目整体管理是项目管理中的核心组成部分,...

    华为项目管理金种子高级培训教材.pdf

    华为项目管理金种子高级培训教材是一份涵盖了项目管理核心概念、方法、案例分析、华为公司PMO运作经验的教材,适用于内部员工的高级培训。该教材详细地介绍了项目管理的五大过程组和十大知识领域,为学习者构建了...

    一页纸项目管理

    本书语言通俗易懂,数据详尽,说明有力,将项目管理的过程化繁为简,使得即便是项目管理的新手也能按图索骥地将项目管理工作出色地完成。  2.本书不是一本单纯的理论书籍,也不是作者就自身经历所做的一番吹嘘。...

Global site tag (gtag.js) - Google Analytics