`
jerrycong
  • 浏览: 21522 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

一个项目最重要的十件事

阅读更多
转载自其它网站


一个项目最重要的十件事

   1. 版本控制:应该说您需要有某种形式的版本控制系统。如今的版本控制系统应该选择Subversion ,您只需要一台服务器主机。没有服务器主机时,开源项目可以使用code.google.com ,商业项目可以使用Hosted-Projects 。
   2. 命令行编译脚本:我大部分的时间都在用[Intellij IDEA],他可以为我做所有的编译、单元测试和代码覆盖。不过还是需要命令行脚本去不断的build(通常是使用Ant 脚本),脚本应分为:
          * 编译代码
          * 编译测试
          * 生成javadoc
          * 运行测试与代码覆盖 - 项目使用Emma
          * 生成报告:测试的通过/失败和覆盖
          * 建立一个分布的JAR
   3. 持续集成 :始终有一个规则,无论如何至少要让代码库编译通过(通过测试更为理想的)。持续集成服务器有很多的选择,例如cruisecontrol 、Hudson。我选择Hudson,因为安装它很简单,而且功能非常强大,为您的上层管理提供了很多很好的图形显示。您要连续获得 JARs,javadoc ,测试报告,覆盖面的报告它能提供生成的脚本。如果你的老板想尝试最新的代码,他可以下载继续Build。
   4. 自动分级推动 :设置连续Build,如果测试通过就自动的将代码转到分级服务器。我通常会使用Tomcat 服务器,只需要更新Web-INF目录与最新的代码,Tomcat 就会自动的告知新的文件和刷新。这给了人们展示产品的平台。您可以让您的QA使用这个服务器,也可以使用单独的一个。我经常会有很多的自动化测试,所以我将网站直接给客户,并告诉他们这是"Alpha"服务器。这是非常有用的,当您的工作的一项功能完成,客户得到这一部分,对该功能的意见能给你正面的推动,如果到最后客户才能看到,项目就很难进行改变。
   5. 测试和覆盖:即使您是新的自动化测试和单元测试,我仍建议你还是要按照清单上来做。自动化的测试个给下个阶段带来了整体的进步。您从自动化的测试得到的好处是巨大的,并且关于测试的介绍也出版了书籍,所以我们不在这里详细的讲解。
   6. 默认的嵌入式Web服务器:如果您正在建设一个Web应用程序,我推荐Jeety 作为您的Web容器。 Jetty 最酷的地方是您可以在您的main函数中新建服务。使用Tomcat 时,你要导入一个war文件,并将它添加到Tomcat 的目录中,然后等待Tomacat "安装" ,这样就会比较麻烦。但使用Jeety 您可以通过一个main函数开始您的应用(就像一个正常的桌面APP )并通过你的main函数来启动Jeety 。您的开发者更容易去开发/调试,您的客户也更容易去部署。
   7. 默认情况下嵌入式数据库 :没有什么比一个复杂的数据库安装说明更复杂。所以我使用一个嵌入式数据库,例如HSQLDB 。 在开发和测试中,我让系统采用一个内存数据库,然后我才使用这个数据库的硬盘版本。 但在这两种情况下客户/开发做的没有不同,这是最重要的。如果生产环境需要大负载,我再提供命令行选项,切换到外部数据库如Oracle数据库。
   8. 自动安装模式:应用程序启动的第一件事就检查schema是否安装。 如果没有它会自动安装模式。 我通常使用的Hibernate ,如果需要他会为我做所有的事,升级架构,以较新的版本。所以在数据库中我从来没有担心过架构问题。
   9. 依赖注入 :如果您想要一个可维护性,可测性和容易理解的代码库,您需要使用依赖注入(DI) 作为一个设计模式。一个自动化的DI框架,使您的工作更轻松。我使用spring ,guice是最先进的DI投资。
  10. 易于安装/运行:现在考虑的是让顾客更容易的去尝试你的产品。提供一个JAR文件,通过"双击"来启动JVM , Web服务器,数据库,安装架构,并打开网络浏览器(基于本地)。或通过Java Web Start 开始,这样就可以在web页面中一键式安装,不需要安装手册了。
          * 把主要class放在JAR MANIFAST,这样只要双击就可以加载你的应用。
          * 把所有的JAR依赖放在主要的JAR文件中,使用JarJar 或者One-Jar-Classloader 。
          * 给应用提供:内存数据;安装schema; 加载Web的容器; 安装自动提供一个amin用户等等......


分享到:
评论

相关推荐

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

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

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

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

    软件架构师应该知道的97件事.pdf

    软件架构师作为一个专业领域的高级职位,其核心职能...《软件架构师应该知道的97件事》这本书通过多位专家的经验分享,提供了一个关于如何成为优秀软件架构师的丰富知识库,对于提升软件架构师的专业能力具有重要价值。

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

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

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

    我们可以看出,华为产品开发项目计划模板是一个非常全面且细致的文档,它不仅涵盖了项目管理的各个方面,还特别强调了质量控制、风险管理以及团队间的有效沟通,这对于确保项目成功至关重要。同时,该模板也为其他...

    最全的项目经理手册.doc

    第十一章“基础管理技能”是提升项目经理个人能力的关键,包括工程经理的管理技巧、PDCA(计划-执行-检查-行动)和5W2H(5个What,2个How,1个When)工具的运用,授权、请示和指示的艺术,以及时间管理和重点管理,...

    如何做好项目收尾工作.doc

    项目收尾工作是工程项目管理的最后一个重要环节,对项目的成功完成和交付至关重要。在这里,我们将从多角度探讨如何做好项目收尾工作,确保项目的圆满结束。 一、提前进入收尾状态 项目收尾工作的第一步是提前进入...

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

    总结来说,这个数据集提供了一个了解中国56个民族基本信息的窗口,同时结合了MySQL脚本、Excel和CSV三种常见数据处理工具,为用户提供了多样化的数据管理与分析途径。无论是学术研究、教育还是数据分析项目,这些...

    C++网络爬虫项目

    而网页排序最重要的两个参考因素,一个是“内容相似 性”,即哪些网页是和用户的搜索意图密切相关的;一个是网页重要性,即哪 些网页是质量较好或相对重要的,而这往往可以从“链接分析”的结果中获 得。综合以上两...

    xx工业园项目可行性研究报告.doc

    该项目是一项综合性的工业发展计划,旨在建立一个集产品研发、设计、生产、销售和服务于一体的大型塑料产品生产基地。报告首先对项目总论进行了概括,强调了项目的重要性和可行性,接着深入探讨了项目的各个关键方面...

    广播电视大学校园一卡通应用系统建设项目.doc

    广州市广播电视大学校园一卡通应用系统建设项目是一个旨在提升校园管理和便捷性的重要工程,旨在构建一个集成了多种功能的一体化系统。这个系统的第一期建设涵盖了多个关键模块,包括: 1. **一卡通基础平台模块**...

    WEB前端应用十种常用技术.pdf

    当你设计一个Web应用程序时,你不仅需要通过样本数据去测试这个程序,而且最重要的是当什么内容都没有的情况下,你要确保它看起来不错而且是有帮助的。当在页面或者查询结果没有信息时,告诉你如何才能处理这些空白...

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

    - **知识点扩展**: 偿债顺序是项目融资中非常关键的一个环节,合理的偿债顺序能够有效降低项目的财务风险。 #### 七、项目论证方法对比 - **问题**: 关于项目论证的静态与动态评价方法表述不正确的是? - **选项...

    陶瓷酒瓶生产项目可行性分析报告.pdf

    陶瓷酒瓶生产项目的可行性分析涉及多个方面,包括项目背景、产品特性、建设规模、选址、技术方案、原料供应、总投资预算、产量分析、环境影响、劳动安全、组织结构、实施进度、成本核算、社会评价、工程投标、风险...

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

    #### 十、项目主管部门审核并盖章 最后,需要获得项目主管部门的认可和批准,通过其审核并在申请报告上加盖公章。 ### 报告附件 报告附件是支持申报材料真实性和完整性的关键证据,包括但不限于: - **法人执照...

    基于FPGA的十层电梯控制器.zip

    本项目“基于FPGA的十层电梯控制器”是上海大学工程教育中级大作业,旨在通过FPGA实现一个能够管理十层楼电梯运行的控制系统。尽管此项目由大二学生完成,其复杂性和实用性已足以展示FPGA在实际应用中的潜力。 FPGA...

    2021-2022年收藏的精品资料传媒、广电项目可行性研究报告专业可研.doc

    这份报告基于“十三五”规划的重点鼓励类项目,涵盖了多个关键领域。 首先,报告深入分析了项目的资源条件,包括传媒、广电所需的原辅材料和燃料动力供应情况,确保项目的生产基础得以满足。同时,报告也考虑了交通...

Global site tag (gtag.js) - Google Analytics