- 论坛徽章:
- 1
|
1、说说您在程序设计中模块化的工作经验,有何利弊
========================================
模块化是将整个程序应用分解成为一个个的模块,这样便于team内部的任务分解,分工协作,模块化还能够优化程序设计,一方面,当需求发生变化的时候,只需要替换相应的模块即可,另一个方面,拖过模块化的划分,绘制系统组件图,能够更清晰的表达系统各单元之间的功能边界,通信交互以及各种边界条件.
坏处嘛,这玩意儿是个技术活,如果模块组织不好,那么极有可能造成系统由于过多地交互降低系统效率,不合适缺乏通用性考虑的接口规范更是让系统变得僵化.
2、对于Java程序员,说说您对OSGi和Eclipse使用中的最佳实践
========================================
jBuilder倒下以后,eclipse成为java程序员的开发首选工具,就像vi对于c开发人员一样,sun自己的开发工具netbeans好像没有想象的那么流行.一个饭碗嘛,天天用,没啥最佳实践,哪天不用了(找到更大的饭碗了)就是最佳实践了.
OSGi最初是java模块化的一个解决方案,它这个模块化和上面说的模块化不是一回事,上面说的是应用程序层面的模块化,而OSGi是从更底层,虚拟机这个层次提出模块化解决方案,是通过java的class loader真正的将某些需要的类包动态的载人jvm,它不仅仅是将程序模块化,而且提供了只加载需要模块的便利,可以类比c语言里面的动态链接库的使用,但是二者从语法语义等各方面都差很远,这样做的最大的好处,除了模块化本身外,另一个好处是在超大型项目里面,能够通过对系统的模块以OSGi boundle(应该是这个名字吧,忘了)的形式载入jvm,是该部分代码永久的驻留内存(因为别的部分不需要没有加载)。
疑问是:OSGi这么做,是需要程序员,设计人员,从另外一个角度考察分解软件应用系统的,但是对于一般的应用,又找不到一个不得不用OSGi的场景,所以如何权衡得失还需要高手指教。 |
|