`
ldd600
  • 浏览: 103785 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
47bb354f-8b5f-3ea6-a206-c7ead38c741c
Hyperic插件开发不完...
浏览量:11273
社区版块
存档分类
最新评论

近半年的工作体会:什么样的framework是一个好的framework

    博客分类:
  • Life
阅读更多

昨天下午被老大喊去谈话了,主要还是对近半年的一个工作总结,一些体会,和一些建议。

这半年主要完成了2framework,参与了整个开发流程,完成了它们的需求,设计,开发,测试,支持,维护,文档整个流程,我一直也在问自己什么样的框架是一个好框架,我想我首先其实也是一个framework的用户,我们写framework的也不会什么都从头做起,重复的去发明轮子,已有的framework也会拿过来用,这会减少开发的成本和周期,所有framework的目的都是方便application developer的开发,方便他们的使用,对于他们来说framework完成技术的细节,他们只要关心业务的逻辑,而且这些framework用起来都要很简单,简单的使用,完成强大的功能。当然framework的可重用性也要很强,不然framework只能给每个特定的application使用,这就和application自己开发一个framework就没有区别了,所以framework还要考虑到各个项目的可重用性,在某些特殊的情况下,framework也不可能满足所有的需求,这时application用户就需要在framework上加入他们的特殊的逻辑,这些逻辑是特定于这个application的需求的,不是通用的,这时候就要求我们的framework是易扩展的,插件式的,还要注意的是虽然我们已经做到了这些,但是如果我们开发的framework跑起来的时候,如果性能很差,影响了application的正常逻辑,这也是致命的错误,所以我们还需要关心framework的性能,这可能比application关心他们的性能更为重要,因为一些复杂的技术细节是由framework完成的,复杂的技术使用起来可能消耗的资源比较多,我们的framework又是给所有application用的,如果性能太差影响范围也很大,如何来提升framework的性能也是至关重要的,至少我们要追求我们的代码质量,每一行代码都要细细品味;可读性当然不能太差了,framework的源代码,application是可以从clearecase或者maven上获取的,对于一个developer来说可能更习惯于看代码而不是看文档,所以代码和测试就是最好的文档,在开发消息集成框架的时候,也体会到了单元测试的重要性,如果什么问题都放到集成测试的时候去测的话,修一个bug可能要花半天的时间,所以单元测试也是很重要的,到目前为止,我还是不能完全做到测试驱动开发,一个是因为schedule定的比较紧,自己写测试的水平也不够到家,所以有时我也会冲动的先写代码逻辑,但是事后我也会补上我的测试代码,因为自己在看一些开源framework时候,一下子也不知道每个类是干嘛的,所以就会先看测试,从测试中去了解程序的逻辑,测试其实也是一些小的sample,可以指导developer如何去使用,所以详细的单元测试是免不了的。细节上的实现需要注意的就更多,比如我们公开的api是给application用户调用的,如果一个api是发送消息的,你取得名字是和发送消息无关的,application用户使用起来就比较麻烦了,他们可能还需要打开很长的developer guide,来找哪个api可能完成发送消息的功能,如果找不到,他们就会call你了,那自己不是自找麻烦吗,所以每个publicapi名字一定要取的简洁明了,开发上的每个细节都要注意,细节决定成败,实现模式出中文版了,这本书明年还是要翻翻的。Framework是写完了,满足了这个版本的需求,但是developer会有一些反馈,比如哪里用起来不方便,哪里还是不能满足要求,或者又有了什么新的技术也需要加入到framework当中等等,这时我们就要去改代码了,改代码是很头疼的一件事,我是这么认为的,而且改了一行代码,什么东东都要重新测一遍,这就不说了,但是如果时间很长的话,我们可能对一些代码的实现细节,甚至对哪个模块该干什么已经忘得一干二净了,所以就要求我们写的framework的可维护性要比较强,开发人员发现问题应该比业务用户强多了,那就更要求我们的代码要高内聚,松耦合,满足这些OO的原则,加上很好的模式设计,使我们的framework更易维护,重用,扩展,重构等。写的很乱,想表达的就是写好一个framework需要注意的问题,呵呵。

 

分享到:
评论

相关推荐

    avalon-framework-api-4.3.1-API文档-中英对照版.zip

    Maven坐标:org.apache.avalon.framework:avalon-framework-api:4.3.1; 标签:apache、avalon、framework、api、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,...

    Error:Project Target Framework Not installed

    标题“Error: Project Target Framework Not Installed”提示了一个常见的开发环境中遇到的问题,即项目的目标框架未安装。这通常发生在尝试运行或构建一个特定.NET Framework版本的项目时,而该版本尚未在本地开发...

    Apache Calcite: A Foundational Framework for Optimized Query Processing Over Het

    Apache Calcite: A Foundational Framework for Optimized Query Processing Over Het

    VS2013安装问题:NET Framework 4.5.1发生严重错误解决办法

    在Visual Studio 2013(简称VS2013)的安装过程中,部分用户可能会遇到一个较为常见的问题——“.NET Framework 4.5.1发生严重错误”。这个问题往往会导致VS2013无法正常安装完成,给开发工作带来不便。本文将详细...

    curator-framework-4.3.0-API文档-中英对照版.zip

    Maven坐标:org.apache.curator:curator-framework:4.3.0; 标签:apache、curator、framework、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...

    curator-framework-2.6.0-API文档-中文版.zip

    Maven坐标:org.apache.curator:curator-framework:2.6.0; 标签:curator、apache、framework、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性...

    avalon-framework-api-4.3.1-API文档-中文版.zip

    Maven坐标:org.apache.avalon.framework:avalon-framework-api:4.3.1; 标签:apache、avalon、framework、api、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可...

    .net framework4.7.2安装包

    .NET Framework 4.7.2是.NET Framework系列的一个更新版本,它在前代版本的基础上进行了多项改进和增强。此版本旨在提高应用程序的性能、稳定性和安全性,同时也添加了一些新的功能和API,以支持更现代的编程需求。...

    framework 2.0 sp2完整安装版

    .NET Framework 2.0 Service Pack 2(SP2)是一个重要的更新,由微软公司发布,旨在增强和优化.NET Framework 2.0的基础架构。这个版本是.NET Framework开发过程中的一个关键里程碑,它提供了许多新功能、性能提升...

    avalon-framework-impl-4.3.1-API文档-中文版.zip

    Maven坐标:org.apache.avalon.framework:avalon-framework-impl:4.3.1; 标签:apache、avalon、framework、impl、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可...

    mxframework_springboot_mx-framework_MXFramework_slight12l_

    1. 创建项目:首先,使用Spring Initializr或者SpringBoot的starter项目模板来初始化一个新的项目,包含MXFramework的相关依赖。 2. 配置框架:配置MXFramework的核心组件,例如数据库连接、视图解析器等,可以在...

    rapid-framework 整合

    Rapid-Framework 是一个基于Java的轻量级开发框架,它结合了Hibernate、Spring和SpringMVC等流行技术,旨在提供一站式解决方案,帮助开发者快速构建稳定且高效的Web应用。本文将深入探讨Rapid-Framework与Hibernate...

    framework rapid

    总之,"framework rapid"是一个旨在加速软件开发过程的框架,通过提供预配置的组件和工具,减少了开发者在基础架构上的工作,使他们能更专注于业务逻辑和创新。通过使用"framework rapid",团队可以更高效地协作,更...

    .NET Framework 4.0.30319

    .NET Framework 4.0.30319是微软开发的一个关键组件,它为Windows操作系统上的应用程序提供运行环境。这个版本的.NET Framework是.NET Framework 4系列的一部分,它包括了大量的新特性和性能优化,旨在提升开发者...

    MCTS Self-Paced Training Kit (Exam 70-536): Microsoft .NET Framework 2.0 Foundation

    因此,为了更好地反映这一变化,考试名称也进行了相应的调整,由原先的“TS:Microsoft .NET Framework 2.0 – Application Development Foundation”更改为现在的“TS:Microsoft .NET Framework, Application ...

    curator-framework-4.0.1-API文档-中文版.zip

    Maven坐标:org.apache.curator:curator-framework:4.0.1; 标签:apache、curator、framework、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性...

    avalon-framework-impl-4.3.1-API文档-中英对照版.zip

    Maven坐标:org.apache.avalon.framework:avalon-framework-impl:4.3.1; 标签:apache、avalon、framework、impl、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,...

    mybatis-framework修改生成

    1.创建一个utf-8的数据库,数据库名根据自己项目制定,项目采用SpringMVC+Mybatis等主流框架 2.创建好数据库之后建立好自己的业务表同时执行脚本jeecgmybatis.sql,将系统自带的表初始化到新建的数据库中 3.使用...

    zend framework 中文手册

    4. **ZF1 版本**: "ZendFramework-1.9.2" 指的是 Zend Framework 1.x 系列的一个版本,1.9.2 是这个系列的一个稳定版本。每个版本都会修复已知问题,增加新功能,或者优化性能。 5. **中文手册的重要性**: 对于中文...

Global site tag (gtag.js) - Google Analytics