首页 > 代码库 > Tiny有毒
Tiny有毒
呵呵,想比较通俗的介绍一下Tiny,居然没有办法下手,想了半天想不好一个标题,不知如何,忽然冒出个“Tiny有毒”来,结果越体会,越觉得这个题目不错,于是乎就它了。
学习Tiny的三个层次
初品Tiny
初上手,味道并不如想像象中的那中美味,甚至有一种不知从哪里开始的茫然,确实,导入IDE之后,看到的是一大片的工程,一般的人士看到之后,大呼太夸张了,可能有一些人就退却了,这是正常的,许多人第一次接触毒品也是这样的。
再品Tiny
在品过Tiny的苦涩之后,有些人可能想继续再试一下,在克服对Tiny的恐惧之后,一个一个模块的品尝,这个时候,会感觉到有一种清新的味道,每一个模块可以给人以喜悦的感觉。
三品Tiny
当把Tiny整体都阅读过之后,再三品味,才渐入佳境,才真正体会到了Tiny架构者的良苦用心,才能理解大道至简的道理,才能理解术和道之间的差异。
许多人在初品之后就会放弃,只要进入再品的阶段,Tiny就会让你欲罢不能,因此说Tiny有毒。
Tiny的组织结构
有的同学在问,Tiny的Core在哪里?其实Tiny没有Core。
我们看看世间万物,问一个问题:宇宙的core在哪里?先是觉得是地球,后来发现是太阳,再后来又发现太阳不过是银河系的尘埃而已,银河系又是谁的尘埃呢?
一个软件系统也一样,实际上Tiny的构建者发现,整个软件的运行环境也是同样的道理。
正像整个宇宙的运行不过是遵循了几个定律一样,软件系统的运行,实际上也有其自己的规律。当我们把这些规律一个一个单独拿出来讲,那就有了我们经常说的一个一个小的框架或者小的体系,而整个软件系统都是这些个小体系互相影响的过程而已。
因此从这个意义上来说,Tiny是无Core的。
有一种论断,是说:什么问题研究到最后都会变成一个哲学问题。其实我以前是一直不认同这个观点的,我觉得哲学是虚无的,而科学是真实的。但是,现在我越来越认为,当软件架构做到一定程度,就会上升到哲学的层面,它不再是一个简单的科学问题。
下面我就来说说Tiny框架中的小体系:
应用启动体系
Tiny框架把一个应用的启动,分成若干个过程,这样就可以把复杂的问题简单体。
元数据体系
通过元数据管理体系,可以快速构建跨数据平台的应用,同时也可以让数据应用写升级SQL脚本的日子一去不复返。
应用配置体系
Tiny框架把应用的配置即可以合并为一个文件,也可以分解成N个文件,不同的模块又可以独立处理自己的配置相关逻辑,同时当应用配置变化的时候又可以通过订阅发布机制让配置及时生效。
UI管理体系
在Web应用中,CSS,JS的顺序、依赖相关的问题是非常复杂的,TinyUI引擎,可以方便的解决CSS,JS 等的依赖、顺序、合并、打包等相关问题。
数据库水平扩展体系
读写分享、分库分表等等方面的能力使得数据性能不再是问题,基于JDBC实现,对代码影响最小。
虚拟文件系统体系
通过对各种来源的文件访问方式进行封装,使得Tiny框架的使用者可以用统一的方式来访问所有来源的文件,而不必考虑它们之间的差异。
文件遍历体系
通过构建文件遍历框架,使得对整个环境中的文件系统的遍历,不管实际有多少种文件需要遍历处理,都可以通过框架一次扫描而就,大大提升性能,同时避免代码重复。
Bundle体系
通过Bundle框架,可以做到业务单元的热部署,使得功能的增加与减少不再需要重启动容器,同时也解决了Bundle之间的依赖关系。
数据校验体系
统一提供了数据的前后台数据校验框架,使得大多数的校验可以通过配置规则进行解决。
注解加载体系
通过注解加载体系,可以让框架设计人员方便的扩展自定义注解,而不必接触太多的技术细节和注解扫描相关的处理。
UIML体系
通过统一界面描述语言来进行组件描述,界面设计,界面生成,使得一次开发,到处使用现实。
代码生成体系
通过配置就可以提供各种场景下的代码生成,甚至可以通过界面来让开发人员提供一些代码生成的相关数据。
文档生成体系
通过文档生成体系可以方便的生成各种文档,而不需要了解太多技术细节。
字典加载体系
通过字典加载体系可以统一加载字典,支持多种来源,统一对外提供字典服务。
服务开发与发布体系
通过服务体系,统一规范对外提供的服务,同时可以有多种服务提供者来提供各种各样的服务,真正做到一次开发到处使用。
服务中心注册体系
通过服务中心进行服务注册,使得集群扩展更加容易,可以方便的进行水平扩展。
国际化资源加载体系
对所有的国际化资源进行加载与管理,同时对外提供统一服务。
模板引擎体系
基于组件、布局、页面文件的体系架构,让你体验焕然一新的界面开发。
缓冲处理体系
把缓冲逻辑与业务处理逻辑进行剥离,使得两者职责更清晰,更容易进行管理的扩展。
还有许多,比如:排序框架、远程调用框架、分布式计算框架、信息处理框架、转换框架、ETL框架、格式化框架、日志框架、监控框架、命令行框架、流程引擎、模板引擎,等等太多了,这里不再一一列出。
所以Tiny的架构哲学就是把软件开发和运行过程中的各个问题领域进行细分,然后在每个领域都给一个最优解或者次优解,从每个点来说它都是完整的、易懂的、良好实现的,这也是Tiny这个名称的含义之一。
但是能分得开,还得能合得拢。许多框架要么是分不开,要么是合不拢。许多软件框架就是混在一起的,慢慢就变成一种剪不断、理还乱,说不清、道不明的混沌状软件产物。当然,比较少的一些情况也会出现合不拢的情况发生,这种情况一般出现在利用现有各种开源软件框架进行各种组合,百般撮合之后,终于运行在一起了,谢天谢地,它居然可以跑起来,看上去似乎也比较强大,毕竟集成的所有的开源软件的优点,它都有。但是,它真的可以满足你业务和业务发展的需要么?开发过程是怎么样的?维护过程是怎么样的?压力大了是怎么样的?数据量大了是怎么样的?集群过程是怎么样的?
当一些架构师只会架不会构的时候,其实是非常危险的一件事情。
Tiny之毒性
整体体量非常小
Tiny是体量最小的企业级应用开发套件,运行环境连同第三方包,也不过二、三十兆。
强大模块化能力
Tiny中所有的内容都可以放在Jar包进行发布和集成。
易于快速掌握
普通开发人员只要2-3小时的培训时间即可掌握。
强大工具支持
通过Eclipse插件,可以使得开发更加高效、准确。
自动组装能力
各种软件模块,由框架进行自动组装,避免大量的手工配置节省软件成本
采用Tiny框架,可以大大降低软件开发难度,缩减软件开发成本。 还有许多毒性,需要自己深入体会才会有切身体会。
总结
Tiny有毒,但是她不仅会给您愉悦的感受,还会节省您的金钱,节省您的时间,让您的身心更加健康。
常用链接
详细的介绍请查阅Tiny框架介绍PPT,或者下载了自己电脑看,如果有任何问题,请回贴提问。
Tiny官网
Tiny源码Git仓库
TinyAdmin在线演示网站
Issue填写
Tiny的博客里有许多精彩的文章,不一样的内容,一样的精彩,欢迎前来观看,保证不会让您失望。
当然,也可以看看下面的快速入门文档,了解一下Tiny的开发模式。
Tiny快速入门手册
Tiny快速入门之服务开发
Tiny快速入门之Web界面快速开发实践
Tiny快速入门之控制层开发
Tiny有毒