Brick笔记(一)

来源:互联网 发布:stm32f103rct6数据手册 编辑:程序博客网 时间:2024/06/07 15:48

  • 开篇

今得闲,便想来把前阵研发的Brick框架也写来分享一下,以此记录Brick的成长。

本人工作过程中发觉于公司做了很多项目后,却很少真正沉淀,实忒糟蹋心血;另现今框架层出不穷,琳琅满目,不乏精品,然去其中根据自身项目挑选组合搭建一个精美的架构环境,相信很多架构师们都会倍感棘手。于是,Brick应运而生。

理论、工作原理,这里就不详述了。这里只会呈现Brick的成长过程,可以说这就是爹地日记。(^_^)

PS:Brick从一开始就不排斥任何一个第三方类库(或框架),相反Brick非常乐意汲取它们并无缝融合。

  • 诞生

Brick是以一切皆为插件的思想着手研发而成。

其内核本身采用模块化编程,初始设定的模块有:IO(接口)、Auth(授权)、Cache(缓存)、Plugin(插件)、Stub(存根)。为实现该内核,过程中诞生了几个不错的基础支撑类库:Brick-blue、Brick-util、Brick-raw、Brick-velocity。

PS:基于第三方类库产生的Brick支撑库,与其说是库,不如说是适配器(因为里面其实就只有那么百十来行代码的几个类而已)。

  • Brick-blue

在实现过程中,很多地方都要求用到反向编程,因此ASM(Java字节码操控框架)自然是不错的选择,它小巧且快速,唯一的缺点是要求Java程序员足够了解java底层实现,因此用它进行编程相当晦涩,很大程度上可以将ASM直接看做是Java的汇编语言。鉴于此,为对Brick的反向编程技术支撑更为顺畅,我着手编写了更为简洁的支撑类库Brick-blue,当然Brick-blue目前肯定没有像ASM那么全面,但对Brick的支撑已够用。

  • Brick-util

我总是以一种追求完美的心态,去雕刻我的程序,尽可能的写出精致的代码(当然我也会写很多烂代码),同时在不夹杂过度设计的基础上尽量保证代码的可重用性,于是我专门写了个Brick-util类库用于存放这些提供通用功能的代码。这里面目前得意之作有反射处理、便车装载模式等。

  • Brick-raw

编程无外乎就是对数据资源做分析处理,所以每个应用程序都会有数据资源。于是我便想找个已成型的第三方类库,可以将数据资源有效的管理起来供我灵活使用,可能是我涉猎面不够,没有寻到一个合适的,没办法只能让Brick-raw支撑类库降生。Brick-raw将我们要处理的数据资源都当做原料,它会提供很便捷的操作为我们扫描并提取符合要求的原料并返回,然后你可以将到手的原料转化为特定形式的加工品,最后统一形式使用。

Brick-raw出来后,让我倍感舒适,我们可以很自由的为它扩展各种形式的资源(可以来自网络数据流、本地文件、数据库等的各种数据),或选用同种形式资源第三方不同的支撑库。Brick的配置文件我是采用JSON格式的,这方面我觉得google的gson挺不错,于是我简单写了个Brick-raw-gson接入库很方便的就把gson集成了进来,于是我的上层不再关注何种形式的资源(哪怕有心者将配置文件格式改为XML,或其它任何自定义格式及来源渠道),我只要通过Brick-raw便能得到我一成不变的目标人造品(Java特定数据结构对象),一股Brick-raw在手,天下我有的王霸之气油然而生(我们要淡定、淡定)。

  • Brick-velocity

我不喜欢做重复的事,于是我引进了模板。观察了一些模板引擎(velocity、freemarker、Jamon、Tea等),最后选用了apache的velocity,感觉它简单灵活。为与Brick更好的协同工作,我通过Brick-velocity将velocity完美的加入Brick阵营。通过Brick-velocity我们可以很方面的生成一些特定格式的文本文件或数据,如:html。


至此Brick已基本成型,于是鉴于我的工作以及现今趋势,集成WEB开发框架显然必不可少。这里我选用了struts2做为首个试点(当然我们也可以集成其他框架,如:nutz;甚至直接用servlet也可以,对于Brick来说适配库只为更优雅的拥抱第三方类库),于是一系列下来又多了几个适配插件库:Brick-struts、Brick-velocity-struts。


  • 源码地址

GitHub

0 0
原创粉丝点击