低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

借用对象数据库 db4o 简化开发过程

2007 年 6 月 13 日

Ted Neward 在最近写的一篇介绍db4o 中数据库重构的文章中,强调了在开发过程,特别是以测试驱动为主的过程中,使用像db4o 这样的对象型数据库要比使用关系型数据库节省很多力气。

Java 开发人员在使用 RDBMS(关系数据库管理系统)进行开发时,要么是使用手写的 JDBC 处理代码将查询结果映射到 Java 对象,要么通过 Hibernate 或者 JPA 等框架自动完成映射。但是这样处理的不足之处,是每次发生重构时,都必须对代码做出修改。而使用对象数据库db4o 则可以巧妙地避开这一问题。在Ted Neward 刊发在 developerWorks 网站上的同一系列对 db4o 的简介和概览一文中,详细介绍了这一“新型”数据库,并针对反对 db4o 的言论一一进行了解答。

在 OODBMS(面向对象数据库管理系统)中,如果要对已有数据库的字段进行修改,操作要比 RDBMS 简单许多,因为 OODBMS 的重构完全发生在代码中,代码就是模式。Ted Neward 在文中举例说明了 db4o 的这一优势。另外对于要修改已有类中的字段类型,db4o 也能做到很好的向后兼容:

实际上,db4o 向后兼容的妙法值得解释一下。基本上,当 db4o 看到新类型的字段时,就会在磁盘上创建一个新字段,该字段有相同的名称,但是具有新的类型,就好像它是添加到类中的另一个新字段一样。这还意味着,旧的值仍然保留在旧类型的字段中。因此,通过将字段重构回初始值,总可以 “回调” 旧值,取决于观察问题的角度,这可以说是一个特性,也可以说是一个 bug。

测试先行或者测试驱动的开发方法因为能够最大程度上保证软件的质量,得到开发社区的认可。而 db4o 恰好能适用测试驱动开发过程中频繁的重构要求:

db4o 强大的重构能力使之在开发期间非常有用,因为在开发期间,正在设计的很多对象仍然是变化无常的,即使不需要每个小时都重构,至少也需要每天都重构。如果将 db4o 用于单元测试和测试驱动开发,则可以节省大量更改数据库的时间,如果重构只是简单的字段添加 / 删除或类型 / 名称更改,这一点就更加明显了。

2007 年 6 月 13 日 03:33837

评论

发布
暂无评论
发现更多内容

阿里云重磅发布云拨测产品:深度挖掘数据,精准定位 IT 问题

阿里巴巴中间件

在游戏运营行业,函数计算如何解决数据采集分析痛点?

阿里巴巴中间件

七面阿里成功offer,入职就是25k*16薪,还原我的大厂面经

云流

Java 程序员 面试

偷刷阿里学长的大厂面经宝典,四肝挑战字节,成功上岸

Java成神之路

Java 程序员 架构 面试 编程语言

当视频恋爱 App 用上了 Serverless

阿里巴巴中间件

我国首个自主可控区块链软硬件技术体系发布

CECBC区块链专委会

区块链

编程小技巧之 Linux 文本处理命令(二)

程序员历小冰

Linux 编辑器 sed

微服务“大门”如何选择?

阿里巴巴中间件

京东资深架构师推荐学习6本实战文档:多线程+Redis+Nginx+MySQL+JVM....

Java成神之路

Java 程序员 架构 面试 编程语言

讲真,一位8 年 Java 经验大牛的面试总结,你照猫画虎还怕收不到offer?

Java架构之路

Java 程序员 架构 面试 编程语言

悟透前端 | javascript中变量声明var、let、const的区别

devpoint

var const let js变量声明

28天瞎写的第二百三十一天:一次被骗的故事

树上

28天写作

智能电动车的估值模式及电气架构变迁 (28天写作 Day21/28)

mtfelix

汽车电子 28天写作 智能汽车 汽车电气架构

产业区块链蓬勃发展 联盟链成为落地应用最大杀器

CECBC区块链专委会

区块链

是我太菜,美团四面+蚂蚁金服四面全部凉凉,太难了!!!

Java成神之路

Java 程序员 架构 面试 编程语言

2021直播电商下半场,“网易严选们”为何成主播良港?

脑极体

2021年了,还听到有些兄弟在问Kafka香不香?

后台技术汇

28天写作

“复制”马斯克(二):“一无所有”的世界首富想要什么?

脑极体

推荐给所有程序员!这份“Netty最强宝典”你不服不行(实战+权威指南+项目+面试题库)

Java成神之路

Java 程序员 架构 面试 编程语言

DevOps到底是什么意思?

xcbeyond

DevOps 方法论 软件测试 28天写作

牛皮了!字节面试官爆肝七天七夜总结了一份算法面试笔记

互联网架构师小马

Java 字节跳动 数据结构 面试 算法

《携程技术2020年度合辑》,送给爱学习的你

携程技术中心

北京朝阳法院借力区块链化解物业纠纷

CECBC区块链专委会

法院调解

阿里直招怒斩“P7“offer,自曝狂啃六遍的面试笔记

Java架构之路

Java 程序员 架构 面试 编程语言

LeetCode题解:200. 岛屿数量,DFS,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

宙斯运维平台简述,看数十万云服务器如何高效运维?

李忠良

28天写作

加油,成功通过阿里P7Java岗面试,分享一些面试心得

Java架构之路

Java 程序员 架构 面试 编程语言

收藏=学会!阿里新产Java全栈笔记+2021面试指南全新开源,助力金三银四!

程序员小毕

Java spring 架构 面试 微服务

CSS(七)——设置背景颜色和背景图像

程序员的时光

程序员 前端 七日更 28天写作

《我们一起学集合》-ArrayList

蚊子

数据结构 面试 ArrayList JAVA集合

服务网格的最佳实践

阿里巴巴中间件

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

借用对象数据库db4o简化开发过程-InfoQ