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快速入门之控制层开发

时间: 2024-07-30 08:56:17

Tiny有毒的相关文章

悠然乱弹:“最好的模板引擎”Beetl 剖析及与Tiny模板引擎对比

Beetl的环境搭建 输入命令 ? 1 git clone https://git.oschina.net/xiandafu/beetl2.0.git 不一会儿,输出了下面的内容 ? 1 2 3 4 5 6 7 Cloning into 'beetl2.0'... remote: Counting objects: 5807, done. remote: Compressing objects: 100% (2145/2145), done. remote: Total 5807 (delta

Tiny模板引擎(Velocity Plus)应用示例

把TinyTemplate当成是Velocity的升级版其实也是可以的,毕竟它的语法是基到Veloccity扩展而来的,兼容度在80%以上. 至于TinyTemplate的实例是怎样的,且看下面: 宏的可变参数 在Java中的可变参数使用起来非常方便,Tiny模板也对可变参有一定支持. ? 1 2 3 4 5 6 7 8 #macro hello() ParameterList: ${helloParameterList.size()}     #for(para:helloParameterL

Tiny快速入门之Web界面快速开发实践

本来想改改OSChina的界面,但是研究了一下,OSChina界面实在是高大上呀,不是做不出来,只是工作量比较大,因此还是做个简单的网站来展示一下用Tiny开发界面的过程,同时在展示过程的同时,会把相关的知识做一个充分的介绍 . 一.寻找网站模板 要做网站,不能没有模板,自己不会做网页设计,咋办?问谷歌找百度呗,找了一阵,看到下面这个模板不错,就它了. http://www.tooplate.com/zip_files/2042_the_block.zip 相仔细了解这篇文章的同学,建议把原板的

从应用示例来认识Tiny框架

呵呵,Tiny框架神龙见首不见尾已经许多时间了,里面只看到一些几个孤零零的子框架.今天就通过Tiny开发示例的方式来重点展示一下利用Tiny框架是如何开发的. HelloWorld 首先从这个神一样的示例写起. 服务开发: 方式1:注解方式 ? 1 2 3 4 5 6 7 8 9 10 11 12 @ServiceComponent() public class HelloWorldAnnotationService{     @ServiceMethod(serviceId = "sayHel

TINY框架FAQ汇集

问题:Tiny的贡献者有哪些? 创建及主要设计者:悠悠然然 主要参与人员:Atizose,ballackhui,nishihe,达达 其它贡献人员:dandy 问题:要学习Tiny框架要有什么前提条件? 必备条件: 首先会Java 掌握Maven 熟悉git 可选条件: 有oschina的注册帐号:可以与Tiny框架构建者沟通 有oschina的git注册帐号:便于创建Tiny框架的Fork,并提交给原作者 对悠悠然然加粉:享受果粉待遇,得到辅导及及时回复 加入Q群:可即时互动 问题:学习Tin

构建Tiny生态圈

生态圈 生态圈又称商业生态圈,指商业活动的各利益相关者通过共同建立一个价值平台.各个角色关注其所在的价值平台的整体特性,通过平台撬动其它参与者的能力,使这一系统能够创造价值,并从中分享利益. 一个好的架构,必须构建一个围绕平台的生态系统,或者流行的说法,叫生态圈.因为再好的系统,如果只是做输出,总是会有这样那样不足的地方,Spring提供了一个依赖注入,实际上就是创建了一个Bean的生态圈,所以Spring的应用推广效果就非常好:Maven构建了一个插件生态圈和资产生态圈,所以,通过插件生态圈,

Tiny框架启动过程日志

一个系统的日志,可以看到许多东东. 下面是Tiny框架的Web应用启动与停止过程 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72

Tiny开发框架PPT介绍

我有一个梦想,那就是那一个NB的开发框架,让使用它的企业成本下降,让使用它的软件工程师轻松快乐.有人问我,你觉得smart框架与Tiny相比怎么样?我的回答是:smart是一个非常棒的框架.有人把JFinal的特性贴出来问我,你觉得Tiny框架与JFinal比怎么样?我的回答是:JFinal是一个非常出色的框架.不同的框架有不同的目标定位,有不同的目标群体,只要是使有者觉得不错,那就是合适的,就是好的.也有人非让我把Tiny框架和其它开源框架比较到底差异在哪里?这个问题确实不太好回答,于是我回答

Tiny Shell使用说明书

Tiny Shell是一款轻量级的标准远程Shell工具,可以提供远程执行命令(包括:Rlogin,Telnet,Ssh等)和文件传输功能(上传.下载),支持单字节,完全支持pseudo-Terminal Pairs(pty/tty)等伪终端. 一,前言 随着互联网的发展,使用Unix/Linux系统的越来越多,而入侵一台Unix/Linux系统也不再是什么难事了.通常,在入侵成功之后,都会留一个或几个后门,以便再次进入;对于Unix/Linux系统,后门的种类比较多,初级的有修改".rhost