精通组件兼容性依赖

简介:        <<精通组件兼容性依赖>>,这篇文章首先从Java语言层面阐述了什么是兼容性,JDK是如何处理兼容性的?然后提出了一个最佳实践路线图,首先要保证你的组件包是面向接口编程的,别人可以稳定地依赖你的接口,而实现可以采用动态发现的机制去做。并用SLF4j和Maven Dependency插件作为推荐准则,讲解了它们的源码实现,顺便引出了臭名昭著的common

       <<精通组件兼容性依赖>>,这篇文章首先从Java语言层面阐述了什么是兼容性,JDK是如何处理兼容性的?然后提出了一个最佳实践路线图,首先要保证你的组件包是面向接口编程的,别人可以稳定地依赖你的接口,而实现可以采用动态发现的机制去做。并用SLF4j和Maven Dependency插件作为推荐准则,讲解了它们的源码实现,顺便引出了臭名昭著的commons logging的ClassLoader问题,感兴趣的同学可以顺藤摸瓜,一探究竟。其次介绍了组件签名&兼容性保护策略,使用开源已有工具可以轻松帮助我们解决这类问题。最后,也是重中之重,介绍了Dependency Mediator项目的初衷,和OSGI等模块化思路不同,它试图通过编译期检查而不是运行期隔离的方式,为我们降解三类常见运行期错误:NoSuchMethodError,NoSuchFieldError 和 NoClassDefFoundError。项目目前已经发布了1.0版本,而在2.0版本中,会有重量级的优化和功能,希望大家多多使用。

        当然,文章比较长,大家如果能耐心通读,势必会对兼容性依赖这个领域有更深刻的认识,也欢迎大家积极在Issue上提需求和BUG,好的产品离不开大家的帮助!


文章地址:Mastering Component Compatible Dependency

项目地址:dependency-mediator

目录
相关文章
|
3月前
|
数据管理 测试技术 持续交付
组件和依赖管理
组件和依赖管理
51 0
|
5月前
|
Ubuntu iOS开发 MacOS
如何在使用Pygame时避免依赖额外的库带来的配置复杂性和兼容性问题?
【6月更文挑战第12天】如何在使用Pygame时避免依赖额外的库带来的配置复杂性和兼容性问题?
37 2
|
6月前
|
编译器 Linux C语言
Valgrind兼容性解析:从核心依赖到错误诊断
Valgrind兼容性解析:从核心依赖到错误诊断
246 0
|
开发框架 JavaScript 小程序
扩展应用功能的无限可能——UniApp生态系统中的组件库与插件探索
扩展应用功能的无限可能——UniApp生态系统中的组件库与插件探索
|
JSON 小程序 前端开发
小程序引入第三方插件Vant和小程序WeUl组件库
现如今前端的技术再向框架化的发展,框架的使用提高我们的编码的效率和性能的优化,同样CSS样式也是越来越高的要求,今天我要向大家介绍的就是较火的前端UI框架Vant UI组件库
267 0
|
数据库
插件配置设计
插件配置设计
106 0
转载:OSGI组件依赖
原文链接: OSGi组件依赖     OSGi doesn’t allow you to specify class visibility at the class level, but instead at the level of the containing package. 1. The header:Export-Package and The directives for the Export-Package header     当指定一个package export,默认的它的subpackage是没有exportde,需特别指定。
856 0
|
JavaScript 前端开发 CDN
浅析组件库实现按需引入的几种方式
浅析组件库实现按需引入的几种方式
910 0
浅析组件库实现按需引入的几种方式
|
前端开发 小程序 项目管理
前端:组件、插件、模块、子应用、库、框架等区别
前端:组件、插件、模块、子应用、库、框架等区别
1058 0
版本依赖和插件管理
版本依赖和插件管理
100 0