Tiny框架2.0版火热推出

方法论

方法论决定了可以达到的高度
方法论,就是人们认识世界、改造世界的根本方法。


它是人们用什么样的方式、方法来观察事物和处理问题。概括地说,世界观主要解决世界“是什么”的问题,方法论主要解决“怎么办”的问题。 


方法论是一种以解决问题为目标的体系或系统,通常涉及对问题阶段、任务、工具、方法技巧的论述。方法论会对一系列具体的方法进行分析研究、系统总结并最终提出较为一般性的原则。 


方法论也是一个哲学概念。人们关于“世界是什么、怎么样”的根本观点是世界观。用这种观点作指导去认识世界和改造世界,就成了方法论。 方法论是普遍适用于各门具体社会科学并起指导作用的范畴、原则、理论、方法和手段的总和。 


Tiny框架有着完整的方法论基础,在方法论的基础上构建了完整的框架构建、扩展、利用体系。

设计理念

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


学习成本低、上手容易:框架的学习成本必须非常低,这样才可以让使用者更容易上手,避免由于学习难度大而导致的学习曲线太陡、太长。 


保持核心的稳定性:Tiny框架是立足于在需要稳定、安全要求非常高的应用环境中使用的,因此其稳定性就是框架构建者首要思考目标,核心部分只使用经过充验证及广泛应用的第三方包。 


资产的可积累性:只有易于知识积累,才可以真正做到越用越强。

设计原则

设计原则解决目标冲突时的解决策略
约定优于配置原则-COC 
不要重复你自己原则-DRY 
减法原则 :减法原则是我们自己提出的,意思就是给程序员做减法。
模块化原则 :模块化对于软件开发过程中开发、高度、集成、发布、维护过程中所起的作用及节省或花费的巨大成本。因此提出了Business Unit的概念,使得与模块相关的所有内容都可以放在一起。
自动组装原则 :在整个Tiny框架的构建过程中,都非常注重集成过程的自动组装,要求做到扔进去不用管,由框架自动集成。
下级服从上级原则 :Tiny框架则从框架层级做了限制,使得下级必须服务上级。
单一原则 :通过单一原则进行强制性的约束,使得一个模块只解决单一模块应该解决的问题,从而避免不同的问题放在一起解决所导致的胡子眉毛缕不清的问题,同时也避免了不恰当的依赖及模板引用。
集中配置原则 :在Tiny框架我们对配置做了大量的工作,一个是COC方式,如果不配,则采用系统默认的值;一个是集中原则:把需要人工需要配置的内容都集中起来统一配置;一个是对于不需要人工干预的配置,那就集成在Jar包中,作为发布者发布项的一部分。

生态圈

生态圈决定了是否可以持续性发展
只有形成完整的开源生态圈,开源才能生存、发展。 


只有输出没有输入的模式不可能得到持续发展。 


Tiny开源生态圈,包含了Tiny框架、Tiny开源组件、Tiny商业组件、Tiny技术支持、Tiny咨询、Tiny培训等,具有较强市场竞争力和可持续发展的体系,展现了一种新的软件产业发展模式。 


不管您处在生态圈的哪个位置,您都会有所付出有所收获,这正是生态圈的意义及可持续发展的动力所在。

模块化

模块化能力决定了业务模块治理的优劣
Tiny框架在模块化方面进行了深入的研究和实践。 


Tiny业务开发过程中的任何内容都可以放入Jar包当中去,包含Java类,静态资源,JSP等等,所以一个业务模块是不是被工程引用,只要引入对应的Jar包,就可以引入此业务模块;只要把某个业务模块的Jar包移除就可以彻底移除此业务模块。 


Tiny框架的业务单元具有非常好的独立性、替换性和通用性。

热部署

热部署可有效帮助提升系统的可用性
所谓热部署,就是在应用正在运行的时候软件升级,却不需要重新启动应用。 


常见的热部署方案有OSGI等框架,但是这些方案具有侵入性大,开发调试困难,使用方式固定等弊端。 


Tiny框架的Bundle与普通的Jar工程没有本质区别,仅多了一个配置文件。所以,它即可以作为普通的Jar包使用也可以作为热部署的Bundle来进行使用。

流程引擎

流程引擎提供了非编程性开发的能力
所谓流程引擎,就是对通过流程化的方式来进行业务、页面、工作流程的编排支持的开发框架。


Tiny框架提供了业务流、页面流、工作流(正在实现中)等三种流程编排引擎,可以方便的进行业务流、页面流、工作流领域的开发。


强大的可视化流程设计工具,可以便捷的进行流程设计。

WEB展现

WEB展现是互联网应用中重中之重
Web应用开发是J2EE领域的重要问题领域


Tiny框架提供了强大的WEB层的扩展和UI组件支持,对于WEB静态资源放入Jar包,CSS合并压缩、JS合并压缩等方面都有良好支持。对于不同角色的开发者之也可以进行良好角色划分,使得开发过程更加高效有序。


领先的模板引擎提供的一些独特特性使得可以更便捷的进行展现层开发。

组件库

面向组件的开发是效率与质量的保证
组件化编程的关键目的是为了将程序模块化,使各个模块之间可以单独开发,单独测试。组件的提取、管理与利用是面向组件开发的关键。 


Tiny框架中,组件无处不在,有些组件框架中已经默认嵌入,有些组件就需要自己手工纳入。当然,一些愿分享组件的同学也可以发布自己的组件让别人使用。


组件化有助于推动企业资产的积累与高水平开发人员工作成果的复用,这个在现在这个讲究协作的竞争体系中尤为重要。

?
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
├── org.tinygroup.jquery必须使用的jquery包
├── org.tinygroup.publicComponentTinyUi特有资源(基础-必须依赖基于bootstrap)
├── /webapp/compatibility(特殊)compatibility针对各浏览器兼容性特有资源
├── org.tinygroup.bootstrap使用bootstrap最新v3.3.4
├── org.tinygroup.gridSystems栅格系统(布局)
├── org.tinygroup.compose排版(一般都能用到)
├── org.tinygroup.code代码
├── org.tinygroup.table表格
├── org.tinygroup.form表单
├── org.tinygroup.button按钮
├── org.tinygroup.picture图片
├── org.tinygroup.icon图标
├── org.tinygroup.animation动画
├── org.tinygroup.buttonGroup按钮组
├── org.tinygroup.navigation导航
├── org.tinygroup.dropDown下拉菜单
├── org.tinygroup.unslider幻灯片
├── org.tinygroup.tab选项卡
├── org.tinygroup.labelBadge便签与标号
├── org.tinygroup.thumbnails缩略图
├── org.tinygroup.alert警告
├── org.tinygroup.progress进度条
├── org.tinygroup.modal弹出框
├── org.tinygroup.customerService客服
├── org.tinygroup.toTop返回顶部
├── org.tinygroup.example案例
├── org.tinygroup.rolling滚动
├── org.tinygroup.search搜索
├── org.tinygroup.ad广告
├── org.tinygroup.tags标签
├── org.tinygroup.fold折叠
├── org.tinygroup.maskBar遮罩
├── org.tinygroup.comment评论列表
├── org.tinygroup.syntaxhighlighter代码高亮
├── org.tinygroup.dataTablesDataTables数据表格
├── org.tinygroup.mmGridmmGrid数据表格
├── org.tinygroup.superBoxsuperBox图片列表
├── org.tinygroup.zoomPiczoomPic图片列表
├── org.tinygroup.Smart-navigation导航集合
├── org.tinygroup.Smart-treeview树形菜单
├── org.tinygroup.highChartshighCharts图表
├── org.tinygroup.voteCharts投票图表
├── org.tinygroup.pieCharts饼状图比例分布图
├── org.tinygroup.bootstrapDate日期控件
├── org.tinygroup.uedTipsUED提示
├── org.tinygroup.loginRegistered登录注册
├── org.tinygroup.trumbowygTrumbowyg编辑器
├── org.tinygroup.UEditorUEditor编辑器
├── org.tinygroup.fullCalendarfullCalendar日程表
├── org.tinygroup.emailTemplate邮件模版
├── org.tinygroup.error404错误404
├── org.tinygroup.error500错误500
├── org.tinygroup.searchPage搜索页
├── org.tinygroup.interfaceElements界面元素
├── org.tinygroup.forum论坛页
├── org.tinygroup.timeline时间轴
├── org.tinygroup.iconTab图标控制选项卡
├── org.tinygroup.userComment用户评论
├── org.tinygroup.tabShowTabs展示
├── org.tinygroup.viewsControl视图控制



开发工具

开发工具是软件工程方法的延伸
不用Tiny开发工具你可以完成所有基于Tiny框架的开发工作。


用了Tiny开发工具你可以更快的完成基于Tiny框架的开发工作,效率提升5倍不是想象。


这,就是开发工具的意义。

模板语言编辑器

流程编辑器

可视化界面编辑器

还有许多不再一一贴图。

总结

如果说Tiny1.0还只是一个开发框架的话,那么2.0不管是从思想体系还是从框架体系都更加完整、完善,对于工程化的解决软件开发过程中的各种问题进行了充分的有益的探索。

也欢迎所有感兴趣的同学们以各种方式一起参与。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java--Socket通信

下面内容是Java开发内容的高级知识点,需要对Java中的面向对象、IO、多线程、以及网络相关知识有一定的基础。(知识永远都有深度,本章节长期更新内容) 1、网络基础知识 网络通信的条件:1、两个通信的端都要有各自的IP地址作为唯一标识&#xf…

一幅长文细学华为MRS大数据开发(五)——MapReduce和Yarn

5 MapReduce和Yarn 摘要:本文中主要讲述大数据领域中最著名的批处理和离线处理计算框架——MapReduce,包括MapReduce的原理、流程、使用场景,以及Hadoop集群中负责统一的资源管理和调度的组件——Yarn。 作者:来自ArimaMisaki创作…

数据:ContentResolver类

ContentResolver是通过URI来查询ContentProvider中提供的数据。除了URI以 外,还必须知道需要获取的数据段的名称,以及此数据段的数据类型。 如果你需要获取一个特定的记录,你就必须知道当前记录的ID。 简要介绍ContentResolver的主要接口&…

[MySQL 5.6] Performance Schema 之 PS配置项(1)

尽管Performance Schema(以下简称PS)在5.5中已经出现,但一直没有使用过,并且相比5.6,5.5的PS表要少很多。 以下从一个初学者的角度,阅读PS的官方文档,做一些简单的笔记官方文档见:ht…

Tensorflow从入门到精通之——Tensorflow基本操作

前边的章节介绍了什么是Tensorflow,本节将带大家真正走进Tensorflow的世界,学习Tensorflow一些基本的操作及使用方法。同时也欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知…

一幅长文细学Vue(七)——路由

7 路由 摘要:在本文中我们会谈及路由的知识点,了解前端路由工作的过程以及如何在Vue3中配置路由,知道怎么使用嵌套路由和实现动态路由匹配,以及使用编程式导航和导航守卫。 声明:为了文章的清爽性,在文章内…

[编程题] 按照左右半区的方式重新组合单链表

[编程题] 按照左右半区的方式重新组合单链表 给定一个单链表的头部节点head,链表长度为N。 如果N为偶数,那么前N/2个节点算作左半区,后N/2个节点算作右半区; 如果N为奇数,那么前N/2个节点算作左半区,后N/21…

iOS开发之单例模式

1、概述 单例模式是一种常用的软件设计模式,通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。 如果希望系统中某个类的对象只能存在一个,单例模式是最好的解决方案&#xff0c…

Codeforces 913 二进制背包(柠檬水) 暴力贪心特殊背包(选题)

A B C 给你N(N<30)种水瓶每种水瓶有无限个 每个的体积是2^(i-1)价格是cost[i] 要求你花最少的钱弄出L体积的水 先从前到后扫一遍cost[i1]min(cost[i1],cost[i]*2) 再从后往前扫一遍cost[i]min(cost[i],cost[i1) 保证了价格的最优化 然后从0开始到30 如果二进制有当前体积的…

android baidupush

实战 QQ demo源码&#xff08;本例中有该应用&#xff09; 服务器端下载&#xff1a;http://download.csdn.net/download/knight_black_bob/9822551 android eclipse 版&#xff1a;http://download.csdn.net/download/knight_black_bob/9822553 android stdio 版本&#xff1…

jQuery源码分析--Event模块(1)

jQuery的Event模块提供了强大的功能&#xff1a;事件代理&#xff0c;自定义事件&#xff0c;自定义数据等。今天记录一下它实现的原理。 我们都知道&#xff0c;在js的原生事件中&#xff0c;有事件对象和回调函数这两样东西。但是事件对象是只读的&#xff0c;所以jQuery就用…

tab enter键出现

PHP>code style>formatter>edit>tab policy>space>indentation size > 2转载于:https://www.cnblogs.com/qinqiu/p/8711835.html

JSP内置对象(9个常用的内置对象)

为什么80%的码农都做不了架构师&#xff1f;>>> 2012-08-06 1.request对象 客户端的请求信息被封装在request对象中&#xff0c;通过它才能了解到客户的需求&#xff0c;然后做出响应。它是HttpServletRequest类的实例。 序号 方 法 说 明 1 object getAttribute(S…

用户可计算型出题程序

此次程序是对上次程序的再次开发&#xff0c;我将自己视作另一个在开发者&#xff0c;在对自己前面程序进行再次审视时&#xff0c;有了别样的感受&#xff0c;自己写的程序&#xff0c;一定要为别人(也有可能是自己)留一条活路。闲话不多说&#xff0c;进入大家最喜欢的**环节…

085 Maximal Rectangle 最大矩形

给定一个填充了 0 和 1 的二进制矩阵&#xff0c;找到最大的只包含 1 的矩形并返回其面积。例如&#xff0c;给出以下矩阵&#xff1a;1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0返回 6 详见&#xff1a;https://leetcode.com/problems/maximal-rectangle/description/ Java实现&am…

使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(三)

前篇 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程&#xff08;一&#xff09;使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程&#xff08;二&#xff09;原文第十三步&#xff0c;Express API路由 第一个路由是用来创建角色…

匿名方法,lambad表达式,匿名类

其实lambad表达式就是“函数”或者说是“方法”写法的一个进化&#xff0c;越来越简化而已&#xff0c;如数学方法里的f(X)。 匿名方法&#xff1a;顾名思义&#xff0c;匿名方法就是没有名称的方法&#xff0c;但是有定义参数。 匿名方法最明显的好处就是可以降低另写一个方法…

Python3.1-标准库之Numpy

这系列用来介绍Python的标准库的支持Numpy部分。资料来自http://wiki.scipy.org/Tentative_NumPy_Tutorial&#xff0c;页面有许多链接&#xff0c;这里是直接翻译&#xff0c;所以会无法链接。可以大致看完该博文&#xff0c;再去看英文版。 1、先决条件 想要运行numpy&#x…

poxtfix+dovecot+saslauthd+courier-authlib +mysql + extmail 完整虚拟邮箱系统部署

所需软件&#xff1a;平台&#xff0c;RHEL5.8postfix-2.9.15 dovecot系统自带courier-authlib-0.62.4高与0.64本平台可能无法使用mysql 5.7 含&#xff1a;mysql-5.7.12-1.el5.x86_64.rpm mysql-community-client-5.7.12-1.el5.x86_64.rpmmysql-community-common-5.7.12-1.el5…

C++笔记------模版

模版-----是为了让代码更加通用&#xff0c;使代码不受数据类型的影响。减少代码冗余。模版将数据类型当作一个参数进行传递。包括函数模版和类模板。 函数模版&#xff1a; //定义一个比较大小的函数模版 template<typename Type> // 也可以写成 template <class Ty…