vs网站开发入门,网站优化公司排名,班级网页设计图片,网站建设 企业观点作为软件开发人员#xff0c;我已经在许多不同的环境中工作过。即使是在同一家公司中#xff0c;软件开发的方式也往往是迥然不同的。开发人员每天都要面对各种各样的挑战、面对不同的人和工具#xff0c;考虑到这一点#xff0c;你就会迅速了解他们的世界是多么的变化多端…作为软件开发人员我已经在许多不同的环境中工作过。即使是在同一家公司中软件开发的方式也往往是迥然不同的。开发人员每天都要面对各种各样的挑战、面对不同的人和工具考虑到这一点你就会迅速了解他们的世界是多么的变化多端。我永远也不知道下一个项目又会有怎样惊人的挑战因此我总是在工具箱中保留着各种各样的工具。在很长一段时间内iBATIS只不过是这个工具箱中的一种普通工具。当我不得不手写JDBC代码时它可以帮我节省很多时间。
那么iBATIS是如何从我的工具箱中的普通工具转变为一个为成千上万的人使用的Apache项目的呢其实原本我从没打算过使iBATIS成为一个完全成熟的开源项目。所以尽管它的源代码就在那儿但我从没想过把它推向市场也从没主动地和任何人分享过它直到JPetStore。
故事发生在2002年7月1日我针对网上流传的关于Pet Store的讨论发了一个帖子。当时位于Redmond的一家大型软件公司宣称其C#语言和.NET平台的生产率要比Java高出好几个数量级。我在技术上持中立态度虽然我承认C#和.NET的确相当之好但是我仍然不能接受上述这种论断。因此连续几个星期我用晚上的时间编写了JPetStore以之反驳他们的论断。JPetStore发布后在Java社区引起了广泛的讨论。其中讨论得最为热烈的话题就是JPetStore没有使用Enterprise JavaBeansEJB的持久化层而是用了一个称为iBATIS的小型框架。
经常有人问我“为什么不用其他开源工具”实际上当时根本没有像iBATIS那样的工具。代码生成器倒是有很多有开发时development-time代码生成工具有构建时build-time代码生成工具在此我就不对它们过多赘述了。我只强调一点任何能够被生成的代码在经过适当的泛化generalized后都应该可以被抽取出来成为一个框架或者某个框架的一部分。而这正是iBATIS的本质一个用于加快JDBC编程的经过泛化的框架。
另一个被经常问到的问题就是“为什么不用对象/关系映射O/RM工具”只要环境合适你当然可以使用O/RM工具。例如当你可以完全控制数据库和对象模型时O/RM工具就非常有效你可以毫不费力地得到理想的对象关系映射反之如果你无法同时控制它们那么当两者之间存在不匹配时这几乎是肯定的使用O/RM就会成为一场噩梦因为它们必须匹配。但是要为我经常处理的数据库类型建立与对象模型之间的映射几乎是不可想象的。当然使用一个好的O/RM工具如Hibernate或者TopLink也许可以做到。但问题是真的应该去建立这种映射吗
曾经有人给我讲过一个故事故事中那个拿着锤子的人总是把所有东西都看作是钉子——哈哈是否觉得似曾相识回到我们的话题O/RM工具实际上是一种框架。而框架总是构建于约束和假设之上。这些约束和假设在某些环境中是理想的但并不适用于所有的环境——不要因为拿着锤子就把所有的东西都看作钉子J。作为软件开发人员我们的工作就是用那些理想的解决方案去匹配我们遇到的实际问题并非只能使用那些我们知道的方案或者最流行的方案或者网上最热门的方案而应该使用那些能够最好地解决我们所面对的问题的方案。总之不同的环境需要不同的工具——iBATIS就是这众多不同工具中的一种。
到目前为止iBATIS已经在3种语言中得到了实现Java、C#和Ruby。并且有一个由十几个开发人员组成的小组在专门维护它同时它还拥有一个由成千上万的开发人员组成的社区。你可以在图书和文章中甚至在Web上的博客中学习它。虽然iBATIS算不上也似乎根本不可能成为持久化框架的翘楚但它仍然是一个巨大的成功。另外回答关于iBATIS的各种问题这个任务现在已经由社区全面接管了如果你们不满意以上问题的答案或者仍然有什么其他问题欢迎到社区提问。
有一个能够完全“独立自主、自力更生”的社区是一个开源项目取得成功的真正标志。如果你早就读到过这句话我猜你一定是该社区的一份子。因此让我们一同庆祝iBATIS这个小小框架的巨大成功吧。
Clinton Begin
iBATIS持久化框架的创始人
JPetStore应用程序的缔造者
iBATIS之父的大作——《iBATIS 实战》