`
ruyangit
  • 浏览: 18756 次
  • 性别: 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

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

10.易于安装/运行

现在考虑的是让顾客更容易的去尝试你的产品。 我喜欢给我的客户看一个JAR文件,并告诉他们“双击”来启动JVM , Web服务器,数据库,安装架构,并推出网络浏览器(基于本地)。或您的应用通过Java Web Start   开始,这样你就可以在web页面中一键式安装,这样就不需要安装手册了。

    a)把主要class放在JAR MANIFAST,这样只要双击就可以加载你的应用。

    b)把所有的JAR依赖放在主要的JAR文件中,使用JarJar   或者One-Jar-Classloader     。

    c)给应用提供:内存数据;安装schema; 加载Web的容器; 安装自动提供一个admin用户等等……

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

分享到:
评论

相关推荐

    初学者必看!Photoshop入门十件重要事

    ### Photoshop入门十件重要事:初学者指南 Adobe Photoshop作为全球最广泛使用的图像编辑软件之一,对于任何从事设计、摄影或是任何与视觉创意相关领域的个人来说,掌握其基础操作是必不可少的技能。以下是从给定...

    Lotus Notes 的最终用户最需知道的十件事

    以下就是 Lotus Notes 最终用户最需知道的十件事: 1. **邮件管理**:Lotus Notes 提供了丰富的邮件管理工具,如规则(Rules)可以自动处理新邮件,归档(Archiving)则帮助用户整理旧邮件,保持邮箱整洁。 2. **...

    高中历史之教学教研高中时期一步错可能毁一生!想少走弯路这十件事你必须知道素材

    在高中这一人生的关键时期,学生们的每一步选择都可能对未来的道路产生深远的影响。...这十件事,对于高中生来说,是走向成功的重要因素,它们不仅影响着个人的成长,也将对未来的道路产生深远的影响。

    最全的项目经理手册(很好,很实用)

    - **项目组人员的职责**:明确每个成员的具体职责和任务,确保每个人都清楚自己的工作内容和期望。 - **项目组与相关部门的运作关系**:建立与其他部门的有效沟通渠道,确保项目进展顺畅无阻。 - **项目组的组织...

    暑假和孩子一起做的十件事.doc

    暑假是孩子们一年中最值得期待的长假期,此时,家长与孩子共同参与的活动显得尤为重要。孩子在假期中不仅需要放松和娱乐,更需要在家长的陪伴下学习新知识、发展兴趣和提升自我。本文将详细介绍暑假期间家长可以与...

    201803·客户体验CEO指南:CEO最应关心的十件大事1

    《201803·客户体验CEO指南:CEO最应关心的十件大事1》这篇文章探讨了在当前商业环境中,CEO如何关注并提升客户体验的重要性。以下是文章中提到的几个关键知识点: 1. 关键客户旅程识别与理解:CEO应该从客户视角...

    华为产品开发项目计划模板

    - **项目过程定义**:定义了项目执行过程中的各项活动,确保每个环节都符合质量标准。 - **质量目标**:设定了项目的质量目标,为实现高质量的产品奠定了基础。 - **技术手段**:通过采用先进的技术手段来保证产品...

    对程序员来说 最艰巨的十件事

    本文将探讨程序员工作中最艰巨的十件事,揭示他们在技术领域之外所面临的多种挑战。 首先,程序员需要经常解释他们的工作。由于软件开发涉及到的术语和概念对非技术人员来说可能难以理解,因此将复杂的技术过程转化...

    工作中最欣慰的一件事范文.docx

    在探讨《工作中最欣慰的一件事》这一主题时,尽管标题和描述相对简略,但从“技术”这一标签出发,我们可以挖掘出与IT行业相关的多个重要知识点。以下将围绕这一主题展开详细论述,涵盖工作中令人欣慰的经历及其背后...

    最全的项目经理手册.doc

    《最全的项目经理手册》是一份详尽的指导文档,旨在帮助项目经理全面理解并执行项目管理的各项任务。手册涵盖了从项目启动到收尾的全过程,包括工程管理的基础概念、团队组织与运作、项目操作指导、物料方案管理、...

    项目管理及十压缩模具管理知识方案.ppt

    在当今这个飞速发展的信息化时代,项目管理已成为任何企业和组织取得成功不可或缺的重要组成部分。特别是在IT行业,项目管理的作用尤为突出。它的核心任务是组织和协调各种资源,以期实现特定的业务目标。一个成功的...

    56个民族(五十六个民族)中文名、拼音、英文名-MySQL脚本、Excel文件

    每个民族都有其独特的语言、风俗习惯和文化传统,对于理解和研究中国社会具有重要意义。在这个数据集中,我们关注的是每个民族的中文名、拼音以及英文名,这些信息有助于进行多语言的交流和信息检索。 接着,我们来...

    关于落实十件民生实事的实施方案范文合集 (3).docx

    在新时代的背景下,政府工作更加注重民生实事的落实,为...在未来的规划中,我们应当继续坚持以人民为中心的发展思想,进一步完善和深化民生实事项目的推进与落实,让城镇的每一个角落都成为居民幸福生活的温馨家园。

    C++网络爬虫项目

    每个超文本传输线程通过已明确有数据可读的套接字接收来自服务器的超文本 传输协议响应,并交由统一资源定位符队列进行超链接抽取和布隆排重过滤, 直至压入原始统一资源定位符队列。在压入原始统一资源定位符队列...

    市级应急指挥系统建设项目示范试点市申请报告 (5) .docx

    - **预算安排**:根据项目实施方案中的各项内容,合理分配资金,确保每个环节都有充足的资金支持。 - **资金来源**:说明资金的来源渠道,如政府资助、自筹资金或其他外部投资等。 - **落实情况**:提供资金到位的...

    轻快的Java-03一次做好一件事.pdf

    《轻快的Java-03一次做好一件事》这一章节主要探讨的是编程中的“单一职责原则”及其在Java编程中的应用。单一职责原则是面向对象设计的基本原则之一,它提倡一个类或者一个方法应该只有一个引起变化的原因,即只做...

    东北财经大学20年3月课程考试《工程项目融资》参考答案.docx

    - **问题**: 某投资项目预计建成后的年固定成本为38万元,每件产品估计售价为45元,单位变动成本为20元,销售税率为12%。则该项目盈亏平衡点的产量为? - **选项**: A.14839件/年 B.18110件/年 C.19388件/年 D....

    映射自身的“前十”

    同时,通过对个人未来的规划,比如“最想尝试的十种职业”或“退休后想要实现的十件事”,我们可以更明确地设立目标,并为之努力。 然而,了解自身只是“映射自身的‘前十’”的一部分。反向思考,如果我们反过来...

    一件开心的事儿作文.doc

    而作者通过这篇作文,也鼓励着我们每个人去发现并珍惜生活中的小确幸。 语言上,文章简洁明了,非常适合小学生的写作水平。作者没有使用过于复杂的词汇或句式,却能准确地表达自己的情感和经历。这种平实的语言风格...

Global site tag (gtag.js) - Google Analytics