立即领取|华润集团、宁德核电、东风岚图等 20+ 标杆企业数字化人才培养实践案例 了解详情
写点什么

Qi4j 提出面向组合编程思想

  • 2007-11-20
  • 本文字数:1073 字

    阅读完需:约 4 分钟

本周Rickard Oberg 在oredev 上宣布推出Qi4j,并宣称“类已死,接口万岁”。 Qi4j 带来了面向组合编程的新思想,提出类中不再放有任何的行为,取而代之的是,类成为混入(mixins)的‘组合’,并在类中使用标注定义接口。 Qi4j 本身是一个提供给所有 java 开发者使用的面向组合编程的 Java 框架。尽管面向组合编程需要较大的思想转变,但是面向组合编程不需要单独的工具、语言或 XML。Qi4j 的应用程序可以在 Spring 应用软件、Web 应用容器、OSGi 和其他地方运行。Qi4j 大量使用了标注,以此摆脱框架特定的知识,让开发者更关注业务规则。项目创始人 Rickard Öberg 和 Niclas Hedhman 在新闻稿中这样描述:

Niclas Hedhman 说:“Qi4j 是一个以领域为中心的应用开发框架,融入了从面向方面编程、依赖注入和领域驱动设计演化而来的思想,利用了 Java 5 平台和其生态系统”。Niclas Hedhman 是长期从事于 Java 框架的开发者,并且现在是 Apache 的活跃成员。

Rickard Öberg 说:“我需要一个能使领域模型和业务规则再度成为关注焦点、让领域专家和开发者能够清晰沟通的系统” 。Rickard Öberg 是以前 JBoss、Webwork 和 XDoclet 的创始人。

由于这仅仅只是框架和范型最初的展示,文档和例子还比较少。但是,面向组合编程的目标是完成从对象思考到组合思考的转变。组合由可复用的片段(fragments)组成。片段是Qi4j 的组成块 。片段携带组合成员的状态(在 mixins(混入)中)、验证和约束它们的使用(在约束(constraints)中)、处理横切点(在关注点(concerns)中)、并提供通知、缓存和撤销管理,以及其他异步需求(在副作用中)。编程范型的转变并不是件容易的事情。Oberg 这样描述对面向组合编程的反应:

人们一贯有两种反应:一是试图从脑海中扫除源于旧有经验的坏主意而头疼欲裂,一是理解我们所提思想的潜力而发出心领神会的微笑。

Qi4j 仍在更新,并且不稳定。此时,他们仍在致力于稳定框架,同时将面向组合编程思想推介给社区, 希望借此获得继续发展。他们也承认目前还没有充分准备好让大家深入到这个框架中,并建议大家在未来数个月中先侧重于概念理解。

查看英文原文: Qi4j introduces Composite Oriented Programming - - - - - -

译者简介:王军,长期从事软件开发工作,实际项目偏重于 JBOSS 平台上构建网管软件。对于性能测试工具有较多的关注,关心软件技术和相关工具的动态,将其中相对成熟的技术和工具应用到实际的项目之中。长期担任技术管理和项目管理工作,一直关心开源软件的发展动态以及软件过程和敏捷开发的实践探索。参与 InfoQ 中文站内容建设,请邮件至 china-editorial@infoq.com

2007-11-20 01:172986

评论

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

为什么厉害的人精力都那么好?

非著名程序员

程序员 程序人生 提升认知 精力管理

冥想与呼吸法之于情绪控制

树上

情绪 冥想 呼吸法 呼吸 自我

Impala UDTF 功能实现

小鹏

大数据 hadoop cloudera 数据仓库

基准测试神器JMH —— 详解36个官方例子

捉虫大师

Java 性能 JMH

python oop 指南

志学Python

Python python 爬虫 oop

Web3极客日报#135

谢锐 | Frozen

区块链 独立开发者 技术社区 Rebase Web3 Daily

聊天机器人为什么这么难?

青菜年糕汤

人工智能 自然语言处理 搜索引擎 chatbot 聊天机器人

NIO看破也说破(一)—— Linux/IO基础

小眼睛聊技术

Linux 架构 后端 Netty nio

人人都要有经营意识

Neco.W

创业 重新理解创业 公司管理

如何成为一个高效的问题解决者?

汪锋

五十年前的一桩公案:数据库关系模型的流行史(下)

青菜年糕汤

数据库 分布式数据库 数据库规范 关系型数据库 数据库设计

创投机会诞生在这四个核心变量中 | 2019年在某大学课堂做的一次讲演的实录

邓瑞恒Ryan

创业 管理 投资 行业资讯

游戏夜读 | 工具游戏的辉煌

game1night

中台是为了复用?未必!浅谈产业中台建设的特点与误区

孤岛旭日

架构 中台 企业中台 企业架构 产业互联网

python中的GIL锁和互斥锁问题

半面人

Python

我在极客大学算法训练营的收获

熊斌

极客时间 极客大学

笔记:《如何系统思考》之因果回路图

wiflish

思维方式

花更多的时间在自己的优势上

Neco.W

创业 自我管理 重新理解创业

MySQL自增ID以及其他唯一ID方式分析

Bruce Duan

MySQL自增ID 唯一ID

Redis学习笔记(安装)

编程随想曲

redis

Java并发编程基础--线程

Java收录阁

Java 线程

五十年前的一桩公案:数据库关系模型的流行史(上)

青菜年糕汤

数据库 分布式数据库 数据库规范 关系型数据库 数据库设计

实战营第一战:FizzBuzz

escray

学习 CSD 认证实战营

一文带你搞懂RPC核心原理

松花皮蛋me

微服务 RPC 远程调用

Java并发编程系列——分布式锁

孙苏勇

Java zookeeper 并发编程 多线程 分布式锁

leetcode141. 环形链表

Damien

算法 链表 LeetCode

leetcode8. 字符串转换整数 (atoi)

Damien

算法 数学

哲少荐书:这才是心理学

Jackey

心理学 读书

Web3极客日报#134

谢锐 | Frozen

区块链 独立开发者 技术社区 Rebase Web3 Daily

Golang杂谈 - graceful shutdown为何离奇失效?

星语

后端 平滑重启 服务端 Go 语言

写在2020年五四青年节

耿老的竹林

个人成长

Qi4j提出面向组合编程思想_Java_Rob Thornton_InfoQ精选文章