17、软件系统设计的优化与简洁之道

软件系统设计的优化与简洁之道

1. 代码清洁与架构分离

在软件开发中,代码的清洁度至关重要。相较于原始的 EJB2 代码,某些代码通过注解包含实体细节,且这些信息仅存在于注解内,使得代码干净、清晰,便于测试驱动和维护。若有需要,注解中的部分或全部持久化信息可移至 XML 部署描述符,从而得到真正纯粹的 POJO。若持久化映射细节不常变动,许多团队会选择保留注解,其弊端相较于 EJB2 的侵入性已大幅降低。

在分离关注点方面,AspectJ 语言是功能最全面的工具,它是 Java 的扩展,为方面提供“一等公民”支持。Spring AOP 和 JBoss AOP 提供的纯 Java 方法能满足 80 - 90% 方面应用场景,但 AspectJ 提供了更丰富强大的工具集。不过,采用 AspectJ 需要学习新工具、语言结构和使用习惯。不过,最近引入的 AspectJ“注解形式”一定程度上缓解了采用问题,Spring 框架也让缺乏 AspectJ 经验的团队更易集成基于注解的方面。

2. 测试驱动系统架构

通过类似方面的方法分离关注点意义重大。若能用 POJO 编写应用程序的领域逻辑,在代码层面与架构问题解耦,就能真正对架构进行测试驱动。可以根据需求,从简单架构逐步发展到复杂架构,无需进行大前期设计(BDUF)。BDUF 有害,因为它抑制了对变化的适应,而软件在有效分离关注点的结构下,经济上可行进行重大改变。

我们可以从“天真简单”但解耦良好的架构开始软件项目,快速交付可用的用户故事,再根据规模扩展添加更多基础设施。一些大型网站通过复杂的数据缓存、安全和虚拟化等技术,凭借低耦合设计实现了高可用性和性能。

3. 优化决策制
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值