大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

测试驱动的代码重用

  • 2007-09-19
  • 本文字数:649 字

    阅读完需:约 2 分钟

代码重用一直以来是软件开发领域的理想。我们已经尝试通过抽象化和框架来达到“代码重用”这一目的,而它们都有其自身的“痛处”。现在,有一种新方法来达到同样的目的,那就是利用搜索工具和开发人员写好的自动化测试代码来查找那些能够匹配接口与行为的开源代码。

Colin Atkinson 和他所在的曼海姆大学软件工程系的一个研究小组已经研发了一个叫做 merobase 的工具。假如你打算找到与你的接口 (结构) 相匹配的即有代码,你可以用这个工具在互联网上搜索。这个工具看来不错,却不是唯一的一个,还有其它的搜索引擎同样提供类似的服务,例如 Google Code Search

值得一提的是,Atkinson 和他的学生(Hummel 和 Monika Krug)研究出来的 merobase 不但能够以结构(structure)为条件进行搜索,还可以把行为(behavior)做为条件。这个特性不但已 成为搜索标准的一部分,而且是由开发者用 TDD 方式完成的。在网上找到的所有与所需接口相匹配的类都会通过那些给定的测试代码的测试。

Monika 还写了一个 Eclipse 插件,叫做 FAST (Fully Automated Search and Test),它会根据你写好的测试自动解析和查询 merobase。你只要在写好的测试类上点击右键,就可以从互联网上得到与其相匹配的实现类。

下面是一个为名为 Die 的类写的一个测试:

下面是 FAST 的操作:

下面是 FAST 返回的结果:

目前,这只是个研究性项目,但可以想到,对于大型组织来说这种方法是多么有用啊!因为你可以通过搜索并重用千万行代码,而无须投资去建设那些很难理解、使用和维护的框架或抽象结构。

原文英文链接: Test Driven Code Reuse

2007-09-19 20:531256
用户头像

发布了 100 篇内容, 共 25.7 次阅读, 收获喜欢 5 次。

关注

评论

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

电商平台如何用"比价API"省下百万运营成本?实战经验揭秘

代码忍者

API接口平台

数字藏品(NFT)项目的线上运营

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

技术管理者,首先应该学会预期管理

老张

团队管理 职场成长

做定时任务,一定要用这个神库!!

Immerse

JavaScript node.js 定时

实战经验深度解析 | 博睿数据制造行业精选案例集发布!

博睿数据

AI口语练习APP的开发

北京木奇移动技术有限公司

软件外包公司 AI口语 AI口语练习APP

【开始报名啦】4 月 12 日 TiDB 社区活动在南京!传统技术栈替换和 AI 浪潮正当时,面向未来的国产数据库怎么选择?转发海报参与新款双肩包抽奖!

TiDB 社区干货传送门

夏令时的坑:你的数据库真的能正确处理时间跳变吗?

TDengine

数据库 tdengine 时序数据库

MaxCompute MaxFrame正式推出AI Function功能,一键调用大模型处理海量数据!

阿里云大数据AI技术

大数据 MaxCompute Qwen DeepSeek AI Function

为什么大模型在 OCR 任务上表现不佳?

Baihai IDP

程序员 AI OCR LLMs Baihai IDP

深度解析:通过 AIBrix 多节点部署 DeepSeek-R1 671B 模型

火山引擎开发者社区

PB 级大数据新势力!Apache SeaTunnel 亮相 Cloudberry 杭州 Meetup(附报名)

Apache SeaTunnel

订单支付系统难搞?AI 生成 Java 支付状态机代码 (含超时关单 + 回调校验)

飞算JavaAI开发助手

2025长三角国际物联网展

AIOTE智博会

物联网展览会 物联网展会 物联网博览会 物联网展

无需公网IP聚水潭ERP远程调用仓库监控,贝锐花生壳只需简单3步

贝锐

内网穿透 ERP

伟大的德比:皇家贝蒂斯与塞维利亚对阵史

新消费日报

Apache SeaTunnel 用户征稿计划启动!分享数据集成实践经验,赢社区荣誉!

Apache SeaTunnel

YashanDB出席胶东CIO十周年峰会 自研数据管理方案驱动智造升级

极客天地

MySQL遇到AI:字节跳动开源 MySQL 虚拟索引 VIDEX

字节跳动开源

虚拟索引技术 解耦架构 可扩展接口 生产验证 多形态部署

Web3可能是为AI Agents(代理)构建的

PowerVerse

AGI #Web3 AI Agents

国产化不是选择题,而是必答题

TiDB 社区干货传送门

Dify基于TiDB的数据架构重构实践

TiDB 社区干货传送门

告别手写 SQL!AI 工具如何自动生成 Java 数据库 ORM 代码?

飞算JavaAI开发助手

AI口语练习APP的运营

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语学习

Java 开发中的 AI 黑科技:如何用 AI 工具自动生成 Spring Boot 项目脚手架?

飞算JavaAI开发助手

java spingboot #程序员

“从PMO到VMO价值交付管理” — Agile VMO业务敏捷CVP认证 | 7月5-6日 · 北京线下面授周末班

ShineScrum

PMO 企业转型 VMO

AI时代的数据底座:火山引擎多模态数据湖的设计与实践

火山引擎开发者社区

告别数据难题:淘宝商品评论API带来高效解决方案

tbapi

淘宝API 淘宝商品评论采集 淘宝商品评论API 天猫商品评论API

Fabric8 Kubernetes 教程——job、service、ingress、statefulSet、daemonSet

FunTester

普通电脑接入去中心化云算力,玩转3A游戏大作将触手可及

PowerVerse

区块链+ 算力 去中心化云算力

秒级响应!淘宝商品列表 API 一键拉取全品类商品数据

tbapi

淘宝API 关键词搜索淘宝接口 淘宝商品列表接口 淘宝商品列表API

测试驱动的代码重用_Java_Amr Elssamadisy_InfoQ精选文章