《自己动手写框架8》:高屋建瓴,理念先行

《史记·高祖本纪》:“地势便利,其以下兵于诸侯,譬犹居高屋之上建瓴水也。”这里用到了高屋建瓴这个词。意思是把瓶子里的水从高层顶上倾倒。比喻居高临下,不可阻遏的形势。现指对事物把握全面,了解透彻。此典故于汉高祖刘邦欲杀功臣韩信,大夫田肯进言到"陛下牢牢地控制着三秦(关中),陛下利用这雄险的地势,来控制、驾御诸侯,就如从高高的屋脊上把水从瓶子里倒下去。”以此来表彰韩信的功劳,于是,刘邦赦免了韩信,只是将他降为淮阴侯。

同样,设计企业框架,也要对事物把握全面,了解透彻。我们设计框架的时候,考虑了以下理念。

1. 使用灵活

可以整个使用它,也可以只用它的一个或几个部分。一个完整的框架可能需要有许许多多个部分组成,但是对于实际应用的用户来说,它可能只需要其中的一部分功能。构架一定要有这种能力,可以由使用者进行点菜式,使用,避免只要用一点点功能,就要引入许许多多的内容。

2. 保持核心的稳定性

我们所设计的框架,是立足于在需要稳定、安全要求非常高的应用环境中使用的,因此其稳定性就是框架构建者首要思考目标,核心部分只使用经过充验证及广泛应用的第三方包。在构建过程中,曾经复用了某饱受赞誉基金会下的一个2.0版的开源包,结果在应用过程中出现了严重的内存泄露问题,最后不得已花费了非常大的工作量才清理干净,这也更让我们对选择第三方包的审慎。

3. 学习成本低、上手容易

框架的学习成本必须非常低,这样才可以让使用者更容易上手,避免由于学习难度大而导致的学习曲线太陡、太长。经过许多次的实践,我们总结出来:有基础的JAVA开发人员经过半天的培训,就可以完全学会基于Tiny框架进行开发,经过1天到两天的实践就会变成熟手。对框架进行扩展或基于框架扩展接口进行扩展,则需要3天左右的培训,就可以完全掌握,经过一周的实践就会变成熟手。

4. 文档一体性

做一个好的软件,好的文档是必不可少的。而做软件过程中非常挠头的就是文档了,文档写得早了,后期变化过程中又不对文件进行不断的调整,工作量非常大,稍不注意,又会导致文档与实际不对应;文档写得晚些吧,又可能会流于形式。Tiny框架在构建之初就深刻的考虑这个问题。这个问题主要涉及几个软件的参与者:Tiny框架扩展者:Tiny框架很多的时候都是一个体系而已,更多的内容需要后期进行扩展,这些扩展的内容的文档如何编写,是需要考虑的问题。Tiny框架使用者:Tiny框架的使用者,主要使用Tiny框架来进行业务开发,他在开发过程中需要用于Tiny框架扩展者扩展的组件,他们期望看到这些组件的最新文档,同时又不希望看到许多与自己无关的内容,同时在开发过程中,又不想到许多地方去查找这些文档,最后是在自己的开发环境就可以随时看到。Tiny组件库管理者:当TIny框架扩展者把这些扩展组件添加到组件库之后,也希望能有一种方式,方便的展现这些组件,方便Tiny框架的使用者选用。基于Tiny框架开发的业务系统:这些系统中有许多对外的服务,而服务需要有文档说明,Tiny框架提供了这些服务文档的生成功能,这样就可以保证服务与服务文档的一致性。所以TIny框架的构建者,在各种组件中都有相关文档描述的元数据,这样,不管是在工具还是在管理台,都可以方便的查阅、导出这些文档信息。

5. 方便的外延性

Tiny框架构建者也深深知道,自己不可能解决所有问题,所以,Tiny框架除了最小的核心之外所有的部分都是可选的、可替换的。Tiny框架对于第三方包的使用也完全持开放态度,这个可以完全由使用者自行选择,不做任何限制

6. 现有资产的可复用性

由于考虑到企业应用的场景,Tiny框架构建者也知道,不可能所有的项目都是从零开始的,一定有一些项目是在现有基础上进行重新开发或者重构的,不管是哪种情况都需要把其中的一部分或者大部分复用起来,以充分降低成本、利用企业现有资产。

7. 资产的可积累性

只有易于知识积累,才可以真正做到越用越强。Tiny框架正是基于上述观点,才提出一构建Tiny生态圈的概念。不管是私有生态圈还是共有生态圈,都是体现一种众人拾柴火焰高的思维,一起来扩展、一起来复用。当然Tiny框架也意识到光有口号是不行的,一定要有规范和机制进行保障,所以在Tiny框架中,许多地方都涉及到规范、元数据等内容,以实现资产可积累、复用的目标。由于考虑到企业应用的场景,Tiny框架构建者也知道,不可能所有的项目都是从零开始的,一定有一些项目是在现有基础上进行重新开发或者重构的,不管是哪种情况都需要把其中的一部分或者大部分复用起来,以充分降低成本、利用企业现有资产。



欢迎入住我们的框架生态圈:http://web.j2ee.top。本例涉及的代码和框架资料,将会在论坛分享。《自己动手写框架》成员QQ群:228977971,让我们一起动手,了解框架的奥秘!



《自己动手写框架8》:高屋建瓴,理念先行

时间: 2024-10-10 09:56:42

《自己动手写框架8》:高屋建瓴,理念先行的相关文章

《自己动手写框架5》:生态圈的建立

曾经有人提出过一个看似天方夜谭的设想,在我们生活的地球上再造一个"迷你地球",探求人类在这个现代"南泥湾"之中自给自足,以及未来在月球或火星上建立生存空间的可能性.美国得克萨斯州的石油大王爱德华·巴斯为此憧憬不已. 既然是自己动手写框架,我这里想借鉴一下生物圈(Biosphere)这个概念来描述一下.生物圈是指地球上所有生态系统的统合整体,是地球的一个外层圈,其范围大约为海平面上下垂直约10公里.它包括地球上有生命存在和由生命过程变化和转变的空气.陆地.岩石圈和水.

《自己动手写框架1》:缘起

前言 自己动手写框架?第一次接触这本书的读者可能会有一些惊讶.是的,这就是写本书的缘由. 1.1  缘由 从毕业以来,我一直从事软件开发及软件管理,做过大量的项目与产品,但是还是喜欢平台软件及软件管理方面的工作.多年的业务开发及平台构建的过程中,踩了许许多多的坑,也积累了许许多多的经验. 和很多的朋友一样,在没有开发框架之前,可能我们只有一些落在纸面上的编码规范,或者说是开发约定.但不管怎么说,这些规范和约定对于我们软件开发过程还是有相当的指导与规范作用的.再后来,随着时间的推移,我们的软件代码

《自己动手写框架4》:分布式锁的简单实现

分布式锁在分布式应用当中是要经常用到的,主要是解决分布式资源访问冲突的问题.  一开始考虑采用ReentrantLock来实现,但是实际上去实现的时候,是有问题的,ReentrantLock的lock和unlock要求必须是在同一线程进行,而分布式应用中,lock和unlock是两次不相关的请求,因此肯定不是同一线程,因此导致无法使用ReentrantLock. 接下来就考虑采用自己做个状态来进行锁状态的记录,结果发现总是死锁,仔细一看代码,能不锁死么. public synchronized

《自己动手写框架9》:理想的开源框架与设计原则

理想的开源框架?她应该是小的.简单的,满足Simple Is Beautiful?她应该是成长性好的,随着不断的扩展,她可以越来越丰满?她应该是有良好工具支持的,为什么要花时间做工具可以完成的事情呢??她应该是自组装的,也就是尽可能的脱离配置,而是用一种依赖即可用,取消依赖即消失的全自动处理模式?她应该是模块化的,所有的内容都可以被打入jar包而作为一个整体进行发布,并且能支持热部署的,可以开着车儿换轮胎的?她应该是支持水平部署的,想加服务器就加,想减服务器就减?她应该是有良好知识积累体系的,使

《自己动手写框架7》:关于框架体系与战术的思考

什么是框架? 这个问题实际上许多"做框架"的人也不明白. 框架和库的本质不同在于: 框架考虑的是机制的复用,而库主要考虑的是代码的复用 框架考虑的是在机制不变的情况下进行扩展,而库则基本不考虑扩展方面的问题 框架本身是不完整的,在大多数的情况下它自己是干不了啥事情的,而库自身是完整的,可以解决某个领域的问题. 框架是活的,通过不断的扩展与衍生,它就更加强大,而库而是死的,发布时是怎样,就是怎样. 当然,关于这两货之间的比较,还有许多个角度,但我个人觉得本质是我上面举的这些. 设计的时候

自己动手写框架(一)

PHP框架接触有一段时间,主要是Kohana和Thinkphp.这两个框架各有各的特色,总体来说Kohana还是相对来说比较简单,但是国内资料较少. 简单的,我把我的这个框架命名为Demo. 框架搭建第一步,总体目录规划: 目录  APP(应用)->TEM (主题) -> SYS (系统) ||-------Application 应用 |---classes Controller Models |---views || ---Template 主题 |---classes Controlle

《自己动手写框架3》:业务流程引擎

一般的时候,我们都采用编程式开发,编程式开发的好处非常明显:直接.高效.自由,当然其缺点也是有的,与其优点刚好相对,因为直接,所以有些变化都要进行代码上的修改:因为高效,所以一旦出问题,导致的结果也比较严重,因为自由,所以带来的修改风险也比较大.  这也就是许多大的公司都在进行流程化开发的重要原因之一,比如:上海普元,Livebos, Justep,还有许许多多知名不知名的公司都有类似的流程化开发引擎存在,通过流程化开发,增强代码的复用性,降低软件开发成本及测试成本,提升软件的可维护性及降低维护

《自己动手写框架2》:用200行的DBF解析器来展示良好架构设计

由于工作关系,需要工作当中,需要读取DBF文件,找了一些DBF读取开源软件,要么是太过庞大,动不动就上万行,要么是功能有问题,编码,长度,总之是没有找到一个非常爽的.在万般无奈之下,我老人家怒从心头起,恶向胆边生,决定自己写一下.结果只用了不到300行代码就搞定了,当然搞定不是唯一目标,还要优雅简洁的搞定,亲们跟随我的脚步一起感受一下简洁的设计与实现吧. 在开始编码之前,先介绍一下DBF,这个DBF可是个老东西,在DOS时代就已经出现,并且风骚了相当一段时间,后来随着大型数据库的应用,它逐步没落

《写自己的框架8》:远视眼的,理念先行

<记录·千年的皇帝>:"地形便利,秉诸侯之下,丕房子仍然排名高于高水也减龄."这里所用的词睿. 这意味着一瓶水从顶部顶部浇注. 居高临下的隐喻,阻遏的形势.现指对事物把握全面,了解透彻. 此典故于汉高祖刘邦欲杀功臣韩信,大夫田肯进言到"陛下牢牢地控制着三秦(关中),陛下利用这雄险的地势.来控制.驾御诸侯,就如从高高的屋脊上把水从瓶子里倒下去."以此来表彰韩信的功劳,于是.刘邦赦免了韩信,仅仅是将他降为淮阴侯. 相同,设计企业框架.也要对事物把握全面.了解