`

为什么Hibernate如此成功!

 
阅读更多
下面是对Hibernate开发工作的个人想法,正是这些工作使得Hibernate如此迅速的得到广泛的欢迎。

1、飞快的版本发布
保持活跃的开发速度,经常进行版本发布,甚至几天之内就从前一个版本开发到下一个版本。这样是保证软件远离Bug的最好的办法,也可以让用户感到很放心,确信Hibernate的开发十分活跃,另外这样做也有一大好处,就是可以发现哪些功能是用户真正需要的。

2、回归测试
我想现在整个Java社区一定都很重视自动回归测试。如果软件的功能和设计有比较大的修改,那么一个综合性的test suite对于软件可维护性和稳定性来说实在是太重要了。我们应该有这样的意识:如果对软件的一个新功能没有进行回归测试,我们根本就不该去做它。

3、把一个功能做到最好
要么不做,要做,就一定做到最好。那些我们做不到最好的功能,我们根本不去做,扔给其他软件去做吧。

4、避免过度设计
浪费大量的时间和精力进行软件功能的抽象和扩充软件的灵活性,还不如多花点时间来解决你的用户面临的实际问题呢!简单一点! 软件能跑起来就OK,不要尝试去解决你的用户根本不关心的问题。就算你的软件设计的不够优雅也没有关系,反正还是initial阶段嘛!以后再refactor,你应该关注的问题是及时的把有用的功能给做出来。

5、集权
在你需要由民主投票来下决定之前,至少你已经把软件轮廓做好了。软件开发需要由一两个开明的人来领导,这样可以保证软件开发的连贯性而不至于产生太大的分歧,可以保证开发团队集中火力把要实现的功能做到最好。我觉得,OSS软件最大的风险就是意见不统一,摊子铺的太大,结果最后搞的什么都没有做好。
6、文档
没有什么比文档更重要的了。如果你的用户不知道你的软件有这么一个功能,就等于没有这个功能,干脆把它去掉得了,省得给源代码增加复杂度。

7、避免标准化
好的标准可以带来软件的互用性和可移植性,坏的标准能够窒息软件创新!“支持XXX标准”根本就不是真实的用户需求,特别是当这个XXX标准是那些在其位不谋其政“所谓”的专家委员会制订出来的。(莫非指Sun,IBM等几个big name?) 最好的软件是在不断的尝试,不断的出错,不断的经验积累的过程中产生的。
8、10分钟之内把Hibernate跑起来
潜在的Hibernate的用户在他们下载了Hibernate,第一次使用的时候根本就不可能花半个小时那么多时间来安装、配置和troubleshooting,他们早就丧失了对Hibernate的兴趣了。我们的口号就是新用户(假设有足够的JDBC知识)5分钟之内把Hibernate的Demo跑起来,而他们能够在1个小时之内写出“Hello World”式的最简单的Hibernate程序并且正常运行。

9、开发人员的责任感
用户总是不可避免的碰到问题,开发团队有责任有义务提供帮助。用户让我们知道了文档的漏洞,用户让我们知道了测试用例的小bug。此外,没有用户来用我们的Hibernate,我们还开发它做什么,不是浪费时间吗!

有个关于bug的笑话:用户根本不介意发现新功能的bug(Windows的用户好像都是如此),只要你能迅速的改掉bug。“责任感”意味着bug修复应该在1周之内。从收到bug报告到bug修复代码提交到CVS上要做到平均在24小时左右,这才是一个理想的目标。

10、易用的、可更新的wiki网页
分享到:
评论

相关推荐

    spring+structs+Hibernate

    Spring、Struts和Hibernate是Java开发中非常经典的三大框架,它们共同构成了SSH(Spring、Struts、Hibernate)架构,用于构建高效、灵活的企业级应用程序。本文将深入探讨这三大框架的核心概念、工作原理以及它们...

    Hibernate获得成功的十大理由

    下面是对Hibernate开发工作的个人想法,正是这些工作使得Hibernate如此迅速的得到广泛的欢迎。 1、飞快的版本发布 保持活跃的开发速度,经常进行版本发布,甚至几天之内就从前一个版本开发到下一个版本。这样是保证...

    Hibernate-ORM-5.4.30 官方文档: 入门指南

    总而言之,Hibernate ORM 5.4.30 入门指南是一份宝贵的学习资源,尤其对于那些希望在Java应用程序中实现高效、优雅数据库操作的开发者来说更是如此。通过逐步的教程和实例代码,用户能够快速掌握Hibernate的基本使用...

    完整ssh源码struts2、spring2、hibernate3整合

    6. **测试**:编写JUnit测试用例,验证SSH整合是否成功,包括Action的执行、Service的调用和数据库操作。 SSH整合后的应用具有良好的模块化和解耦特性,降低了系统复杂度,提高了开发效率。不过,随着技术的发展,...

    数据库事务、hibernate悲观锁和乐观锁

    原子性(Atomicity)确保了事务中的每个操作被视为单个不可分割的操作,即使在系统故障或并发环境中也是如此。一致性(Consistency)保证了事务的执行将使数据库从一个一致状态转移到另一个一致状态,即事务完成后,...

    org.umbrew.hibernate.database.worker.backend:Hibernate Search数据库后端工作器,用于存储Lucene Works以便以后建立索引

    请注意,该处理器在成功的事务提交中运行(由Hibernate通过JTA Synchronization侦听器间接编排)。 因此,存在一个狭窄的漏洞窗口,崩溃可能导致索引更新丢失。 但是,请注意,所有Hibernate Search内置处理器也是...

    三大框架的整合

    在IT行业中,"三大框架的整合"通常指的是Struts2、Hibernate和Spring的集成应用,这三个框架分别负责表现层、持久层和业务层的管理,是Java Web开发中常用的技术栈,被称为S2SH框架组合。下面将详细介绍这三个框架...

    SSH框架整合源码和数据库(结合MySQL实现简单的用户登录)

    验证成功后,可以设置session保存用户信息,跳转到成功页面;失败则返回错误提示。 9. **测试**:通过模拟HTTP请求,测试登录功能是否正常工作。 在实际开发中,SSH整合可以提高代码的可维护性和可扩展性,使得...

    SSH框架代码

    SSH框架,全称为Struts2、Spring和Hibernate,是Java Web开发中的一种经典组合,用于构建高效、可扩展的企业级应用程序。这三个框架分别负责MVC(Model-View-Controller)架构的不同部分,协同工作,提供了强大的...

    SSH框架整合

    6. **测试**:创建JUnit测试用例,验证SSH框架整合是否成功,确保各个组件能协同工作。 SSH框架整合可以带来很多好处,比如代码的模块化、易维护性、事务管理的便利性等。然而,随着Spring Boot的兴起,SSH的使用...

    hoyi-entities:hoyi 实体是一个 orm 结构,类似于 hibernate 和实体框架,但它只是简单的

    尽管如此,它仍然提供了基本的ORM功能,如实体定义、数据查询、事务处理等,使开发者能够在C#环境中快速构建数据库驱动的应用程序。 1. **实体定义**: 在hoyi-entities中,开发者通过创建类来定义实体,这些类...

    SSH实现页面的登录和注册功能

    SSH(Struts2 + Spring + Hibernate)框架是Java Web开发中的一个流行组合,它提供了模型-视图-控制器(MVC)架构模式的实现,帮助开发者构建高效、可维护的Web应用程序。在这个场景中,我们将探讨如何使用SSH来实现...

    J2EE程序设计 下册 第二版

    - **Struts1概述**:Struts1是早期非常成功的MVC(Model-View-Controller)框架之一,它简化了Java Web应用程序的开发过程。尽管如此,Struts1也存在一些局限性,例如配置繁琐、过度依赖XML配置等。 - **MVC概述**:...

    Groovy和Grails配置方法

    Groovy和Grails的结合使用为开发者提供了一个高效且功能强大的开发平台,尤其是在Java平台上进行Web应用开发时更是如此。希望本教程能够帮助初学者快速入门Groovy和Grails的使用,并为后续的深入学习打下坚实的基础...

    Maven2 的新特性.7z

    )如此大的变动到底换来了什么样的结果? 1. 更快、更简单 比起 Maven1 那不急不慢的运行速度,Maven2在速度上有了质的飞跃,甚至与Ant相比也毫不逊色(当然,下载不算)。除此之外,"简化工作,使用业界公认的最佳...

    HELLOBOOK翰博网上书店的设计与实现毕业论文.doc

    尽管如此,论文也指出,该系统仍有改进和扩展的空间,比如增加个性化推荐、优化搜索算法、提升用户体验等。 总结来说,《HELLOBOOK翰博网上书店的设计与实现》是一篇深入探讨Web应用开发的毕业论文,它通过实际项目...

    SSH阶段考核模拟题

    - 入库操作更新库存数量,出库操作同样如此,确保库存信息的实时更新。 - 保存操作后主界面列表的刷新。 - 关闭界面的功能。 此模拟题全面考察了考生对SSH框架的掌握程度,包括MVC模式的理解,前端页面设计,...

    基于jsp+ssh的时装原创设计交流网源码数据库论文.doc

    在Java web应用中,MySQL通常与ORM工具如Hibernate一起使用,为应用程序提供数据存储和检索功能。 **MyEclipse** MyEclipse是Eclipse IDE的一个扩展,专门用于Java EE应用的开发,集成了多种工具,如代码编辑器、...

    slf4j-all-log4j12-1.4.3.jar.zip CXF整合SSH你可能需要它

    6. **测试与部署**:通过单元测试和集成测试验证整合是否成功,然后将应用打包部署到服务器。 整合SLF4J和Log4j 1.2的目的是为了获得更灵活的日志控制,而CXF与SSH的整合则有助于构建一个完整的、基于Web服务的后端...

    CRM需求说明书

    为满足以上需求,系统将基于SSH(Struts+Spring+Hibernate)框架构建,并采用MySQL作为数据库存储解决方案。此外,系统将遵循B/S(Browser/Server)架构模式进行设计和开发。 #### 二、项目功能说明 1. **登录**:...

Global site tag (gtag.js) - Google Analytics