
架构设计
cndes
这个作者很懒,什么都没留下…
展开
-
《开源框架那点事儿14》:教计算机程序解数学题
周末,看关于专家系统方面的书,其中有关于规则方面的内容,忽然就想,能不能模仿人的学习方式来提升计算机程序的计算能力呢? 试想,一个小孩子,他一开始什么也不会,首先,你要告诉他什么是数字,然后告诉他什么是加、减;然后告诉他什么是乘、除,还要告诉他有乘、除要先计算乘除,然后又引入了括号说,有括号永远要先计算括号。如此,随着告诉他的技能越多,他的解题能力也就越强。 于是就想着试验一下。 第一步,教原创 2015-06-16 14:31:21 · 1683 阅读 · 0 评论 -
《开源框架那点事儿13》:开源与中小型软件公司的未来趋势
使用质量好有延续性的开源框架,基于开源框架做应用是未来中小型软件公司的发展趋势原创 2015-06-15 10:11:00 · 2178 阅读 · 0 评论 -
《开源框架那点事儿25》:对框架模板引擎实现方式的改造实录
点滴悟透设计思想,Tiny模板引擎优化实录!加入框架设计兴趣小组:http://bbs.tinygroup.org/group-113-1.html Tiny模板引擎的实现方式原来是采用的编译方式,最近发生了一些问题,因此我觉得有必要把编译方式调整为解释方式,为此就开始了此次实现活动。 编译方式存在的问题 当时采用编译方式,主要是考虑到编译方式在运行时不必再去遍历语法树,因此就采用了编译方原创 2015-07-26 21:42:38 · 2131 阅读 · 0 评论 -
《开源框架那些事儿21》:巧借力与借巧力
同样做前端UI,为什么有人花了一点力气,就可以做好?而有的人费尽全力,仍然错误百出?我们可以先看看几个故事。故事1:巧借力,乌鸦也可以吃核桃有一个盛产核桃的村子,每年秋末冬初,成群的乌鸦总会来到这里,到果园里捡拾那些被果农们遗落的核桃。核桃仁虽然美味,但是外壳那么坚硬,乌鸦怎么才能吃到呢?原来乌鸦先把核桃叼起,然后飞到高高的树枝上,再将核桃摔下去,核桃落到坚硬的地面上,被撞破了,于是,乌鸦就得到了原创 2015-07-06 09:15:21 · 2305 阅读 · 0 评论 -
《开源公开课1》:开源框架构建与实践
课程介绍: 缺乏高端技术人才?缺乏开发标准? 代码复用性低?技术风险难于把控? 招聘成本高?培训成本高? 如果想法不够宏伟,那么就会局限于细节;如果一开始就铺非常大的摊子,将会失去控制;如果不能快速扩展,就无法满足应用需要! 因为,再好的框架也有过时的时候,再优秀的架构师也有视野盲区,再NB的写手也无法实现所有的部分! 来吧,聆听《开源公开课1》:开源框架构建与实践。原创 2015-07-27 23:58:10 · 1671 阅读 · 0 评论 -
《开源框架那点事儿23》:采用TinyDB组件方式开发
在某些情况下,用户需要通过写代码的方式显示进行服务调用。调用方无需知道该服务究竟是远程服务还是本地服务,CEPCore会自己进行服务路由。当本地存在该服务时,会优先进行本地调用。当本地服务不存在时,才会进行远程调用。若本地远程均不存在该服务,将会抛出“找不到服务处理器”的异常。通过代码显示调用服务需要进行以下步骤。 1、获取CEPCore实例对象。 以上步骤完成后,就可以在自己的业务代码原创 2015-07-13 20:13:15 · 3055 阅读 · 0 评论 -
《开源框架那些事儿22》:UI框架设计实战
UI是User Interface的缩写,通常被认为是MVC中View的部分,作用是提供跟人机交互的可视化操作界面。MVC中Model提供内容给UI进行渲染,用户通过UI框架产生响应,一般而言会由控制层调用业务逻辑进行处理,并把处理结果以Model方式返回View,再次渲染。UI框架的大致过程就是如此,按实现方式可以分为RIA和瘦客户端方式,目前基于B/S的瘦客户端方式比较流行。UI框架套路上很简原创 2015-07-08 23:05:38 · 3694 阅读 · 0 评论 -
《开源框架那点事儿33》极限挑战:用一条循环语句正确输出99表!【前两名奖图书一本】
问题的由来 话说我这里有个小萝莉非要拜我为师,呵呵,对于程序媛我一向——嗯嗯觉得程序不如人好看,再加上该名萝莉大学还没毕业,术语都多半没有听过,于是就想着拒绝,当时嘴一贱,就说了一句:你用一个For循环做个99表出来。 当然,这个对于小萝莉们来说,已经足够形成挑战了,但是对于群里的一众大佬们来说,自然是不在话下,3下5除二就搞定了。我又异想天开一下,如果不用判断语句,是不是也完成呢?粗想想是可原创 2015-08-23 21:50:03 · 2561 阅读 · 0 评论 -
《开源公开课分享》:Java开源框架案例视频分享
缺乏高端技术人才?缺乏开发标准? 代码复用性低?技术风险难于把控? 招聘成本高?培训成本高? 如果想法不够宏伟,那么就会局限于细节;如果一开始就铺非常大的摊子,将会失去控制;如果不能快速扩展,就无法满足应用需要! 因为,再好的框架也有过时的时候,再优秀的架构师也有视野盲区,再NB的写手也无法实现所有的部分! 来吧,聆听《开源公开课1》。让我们一起体验Tiny框架的魅力!原创 2015-08-11 20:25:17 · 2154 阅读 · 0 评论 -
《自己动手写框架7》:关于框架体系与战术的思考
什么是框架?这个问题实际上许多“做框架”的人也不明白。 框架和库的本质不同在于: 框架考虑的是机制的复用,而库主要考虑的是代码的复用 框架考虑的是在机制不变的情况下进行扩展,而库则基本不考虑扩展方面的问题 框架本身是不完整的,在大多数的情况下它自己是干不了啥事情的,而库自身是完整的,可以解决某个领域的问题。 框架是活的,通过不断的扩展与衍生,它就更加强大,而库而是死的,发布时是怎样,就是怎样。原创 2015-06-06 17:53:59 · 1654 阅读 · 0 评论 -
Web应用的组件化开发
基本思路1. 为什么要做组件化? 无论前端也好,后端也好,都是整个软件体系的一部分。软件产品也是产品,它的研发过程也必然是有其目的。绝大多数软件产品是追逐利润的,在产品目标确定的情况下,成本有两个途径来优化:减少部署成本,提高开发效率。 减少部署成本的方面,业界研究得非常多,比如近几年很流行的“去IOE”,就是很典型的,从一些费用较高的高性能产品迁移到开源的易替换的产品集群,又比如使用Linu转载 2015-07-30 13:37:09 · 2378 阅读 · 3 评论 -
《开源框架那点事儿24》:开着跑车换轮胎
开着跑车换轮胎,这样的情形您能想象吗?最近,一段拍摄于沙特阿拉伯的视频就记录了这样的超牛特技。地址给大家分享一下:http://www.douban.com/group/topic/52087839。从短片中可以看到,这辆汽车在沙漠中前进,一名男性就站在车门外,在几个大转弯之后,汽车成功地侧翻了约45度,仅靠2个轮子贴在地上行驶着。画面显示五个戴着头巾的男子探身从一辆正在行驶的银色跑车里爬出来,司原创 2015-07-21 14:28:09 · 2981 阅读 · 0 评论 -
《开源分享2》:《开源框架实战宝典电子书V1.0.0》完整版!
经过一个多月的整理,《J2EE开源框架实战宝典》——Tiny文档PDF电子书开始发放,共有将近600页,为喜爱Tiny、热爱Java开源框架的朋友提供更加体贴的文档服务!下载地址:http://bbs.tinygroup.org/group-112-1.html(加入查看下载地址)下面是部分目录的截图。 1.jpg (62.15 KB, 下载次数: 0)下载附件6 天前 上传2.jpg (49原创 2015-07-18 12:54:33 · 2815 阅读 · 0 评论 -
《开源框架那些事儿26》:“最好的模板引擎”Beetl剖析及与Tiny模板引擎对比
查找最好的模板引擎,发现这个搜索词出来的是beetl,于是就仔细学习了Beetl,试图找寻“最好的”三个字表现在哪里?于是搭建环境,阅读代码,与鄙人所做的TinyTemplate进行了粗略的对比,在征得beetl作者@闲.大赋 的同意后,编写了此对比文章。由于时间关系,对Beetl的认知深度还有不足,分析不当之处在所难免,还请广大Oscer和@闲.大赋 同学纠正,定当有错误和不当必改。Beetl的原创 2015-08-01 18:13:23 · 7186 阅读 · 3 评论 -
高清视频:《公开课2》Tiny开源框架服务及CEP深入剖析
在Java开源框架中,如何定义Service规范?如何通过服务中心提供远程服务调用?如何根据用户的服务自动生成相关服务包装类?Java开源框架的服务体系是如何运行的?来吧!让我们一起来聆听《Tiny公开课2:Tiny服务及CEP深入剖析》!高清视频下载地址:http://bbs.tinygroup.org/thread-1429-1-1.html原创 2015-08-14 09:26:49 · 1999 阅读 · 0 评论 -
专访Tiny框架创始人悠然:好的软件设计是“品”出来的
Tiny是基于Java开发的一款开源框架,主要技术领域为J2EE及应用开发平台领域。日前,笔者采访了Tiny开源框架创始人悠然(罗果)请他分享Tiny的构建之路以及对开源的解读。在他看来,好的软件设计是“品”出来的,信奉好的软件架构一定是简单的。原创 2015-08-31 10:28:26 · 2911 阅读 · 1 评论 -
《开源框架那点事儿20》:发布TinyUI前端框架
以前发表过一篇文章:TinyAdmin前端展现框架,其在线演示路径为:http://www.tinygroup.org/tinyadmin/,应该说有许多人还是感觉兴趣的,但是由于这个是基于SmartAdmin框架改写的,虽然我们自己买了SmartAdmin的授权,但是广大用户如果要用的时候,就会有授权相关的问题,这会大大影响一些人的使用决策--尤其是会再发行的朋友。 再一个原因是SmartAdm原创 2015-06-30 17:23:48 · 4627 阅读 · 0 评论 -
开源中国GIT中Java分类下TOP10项目的活动情况分析
TOP 10 ThinkGem / JeeSite 项目GIT情况统计 145546_JjhV_1245989.jpg (198.18 KB, 下载次数: 0) 下载附件 2 分钟前 上传 从上面看到,总共参与的贡献者有15个人,10个以上提交者有3个,最近1个月一个提交也没有。默认分支文件总数有5490。 从这里可以看出,项目规模比较大。总共的提交数是243个,说明整体活动情况还不错,但转载 2015-06-12 17:35:17 · 3320 阅读 · 0 评论 -
《开源框架那点事儿15》:借船下海还是造船下海
1.借船与借力 三国时期,曹操率大军想要征服东吴,孙权、刘备联合抗曹,“草船借箭”即来源于此,意即运用智谋,凭借他人的人力或财力来实现自己的目标。我们来看看这个故事的几个关键环节。 为了筹集十万支箭,诸葛亮找到鲁肃。诸葛亮说:“这件事要请你帮我的忙。希望你能借给我20只船,每只船上30个军士,船要用青布慢子遮起来,还要一千多个草把子,排在船两边。”第三天四更时候,诸葛亮邀请鲁肃一起,原创 2015-06-17 10:34:52 · 2221 阅读 · 1 评论 -
《开源框架那点事儿16》:缓存相关代码的演变
问题引入 上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。 该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。 当然去看相关实现代代码的时候,大致是下面的样子。 12345678910111213public void saveSomeObject(SomeObject som原创 2015-06-18 17:20:10 · 1590 阅读 · 0 评论 -
《开源框架那点事儿18》:为什么要先从测试用例编写和文档编写开始?
有一个同学,问我一个问题:加入Tiny是否必须从写单元测试用例和文档作起? 此问题引发我诸多感触,故形成乱弹一篇。 作为一个新加入者,多看、少说,是正点。而这个时候,写写测试用例、文档,就是个不错的选择。这样入手比较容易,也比较容易体现水平。 可以说好的程序员,测试和文档都是写得好的。测试和文档一定写不好的,一定不是好的程序员。 同时,在看代码,写测试用例、写文档的过程中,还可以这样思考: 他为什原创 2015-06-23 21:59:49 · 1360 阅读 · 0 评论 -
《开源框架那点事儿19》:特斯拉建“桩”与开源的生命力
在美国的硅谷,在中国的中关村,许多的技术先驱者怀揣梦想,用激情不懈地追求着他们宏远的目标和巨大的个人财富。开源,正在成为这个时代目前最火热的名词之一。开源精神,作为一种合作协同的驱动力,正在发展为一种更具竞争力的产品开发模式。原创 2015-06-26 11:54:20 · 2516 阅读 · 0 评论 -
第一波活动:Tiny Framework 2.0“捉虫挑战”激情推出!
历经一年的开发,以及数千个Commits,Tiny 2.0于2015年6月10日震撼推出! 实用的配套工具,完整的配套文档,无限的功能扩展,Tiny 2.0更加成熟! 为了更好的提升框架的稳定性、健壮性、架构的合理性,特推出“捉虫挑战”活动!一、我们的口号是:只要用心找,BUG总会有的没有人敢说自己的代码是完美无暇的,Tiny框架的构建者也这么认为。 虽然我们竭尽全力避免BUG的存在,但是在您挑剔转载 2015-06-10 14:59:06 · 1174 阅读 · 0 评论 -
《开源框架那些事儿12》:框架2.0的设计梳理
方法论 方法论决定了可以达到的高度 方法论,就是人们认识世界、改造世界的根本方法。 它是人们用什么样的方式、方法来观察事物和处理问题。概括地说,世界观主要解决世界“是什么”的问题,方法论主要解决“怎么办”的问题。 方法论是一种以解决问题为目标的体系或系统,通常涉及对问题阶段、任务、工具、方法技巧的论述。方法论会对一系列具体的方法进行分析研究、系统总结并最终提出较为一般性的原则。 方法论也是一个原创 2015-06-11 17:56:20 · 1597 阅读 · 0 评论 -
《自己动手写框架9》:理想的开源框架与设计原则
理想的开源框架•她应该是小的、简单的,满足Simple Is Beautiful•她应该是成长性好的,随着不断的扩展,她可以越来越丰满•她应该是有良好工具支持的,为什么要花时间做工具可以完成的事情呢?•她应该是自组装的,也就是尽可能的脱离配置,而是用一种依赖即可用,取消依赖即消失的全自动处理模式•她应该是模块化的,所有的内容都可以被打入jar包而作为一个整体进行发布,并且能支持热部署的,可以开着车原创 2015-06-07 18:08:52 · 2263 阅读 · 0 评论 -
《自己动手写框架8》:高屋建瓴,理念先行
《史记·高祖本纪》:“地势便利,其以下兵于诸侯,譬犹居高屋之上建瓴水也。”这里用到了高屋建瓴这个词。意思是把瓶子里的水从高层顶上倾倒。比喻居高临下,不可阻遏的形势。现指对事物把握全面,了解透彻。此典故于汉高祖刘邦欲杀功臣韩信,大夫田肯进言到"陛下牢牢地控制着三秦(关中),陛下利用这雄险的地势,来控制、驾御诸侯,就如从高高的屋脊上把水从瓶子里倒下去。”以此来表彰韩信的功劳,于是,刘邦赦免了韩信,只是原创 2015-06-06 22:59:44 · 2216 阅读 · 1 评论 -
《自己动手写框架6》:量身定制规则引擎,适应多变业务场景
规则引擎适合于做业务规则频繁变化的场景,我们的业务在应用过程中,也经常要处理大量的业务规则,当然,也希望能有一套规则引擎来支撑,这样是再好不过的。 对一些常用的商业规则引擎做一下了解,感觉非常不错,但是太贵了。看一些开源的引擎吧,也不错,但是感觉相对于我们自己这么简单的需求,太复杂了。原创 2015-06-05 18:09:31 · 8874 阅读 · 2 评论 -
《自己动手写框架1》:缘起
和很多的朋友一样,在没有开发框架之前,可能我们只有一些落在纸面上的编码规范,或者说是开发约定。但不管怎么说,这些规范和约定对于我们软件开发过程还是有相当的指导与规范作用的。再后来,随着时间的推移,我们的软件代码写得越来越多,它们中的一部分具有相当的通用性,可能就会变成一个公共库;它们其中的一部分,在整体的运行机制来说是统一的,可以抽取成公共的部分,但是有一部分又会业务性非常强,需要在实际做业务的时候进行扩展。于是,这部分就会演变成框架!原创 2015-06-04 13:07:51 · 3482 阅读 · 0 评论 -
《自己动手写框架3》:业务流程引擎设计
一般的时候,我们都采用编程式开发,编程式开发的好处非常明显:直接、高效、自由,当然其缺点也是有的,与其优点刚好相对,因为直接,所以有些变化都要进行代码上的修改;因为高效,所以一旦出问题,导致的结果也比较严重,因为自由,所以带来的修改风险也比较大。 这也就是许多大的公司都在进行流程化开发的重要原因之一,比如:上海普元,Livebos, Justep,还有许许多多知名不知名的公司都有类似的流程化开发原创 2015-06-04 15:04:09 · 9866 阅读 · 0 评论 -
《自己动手写框架2》:用200行的DBF解析器来展示良好架构设计
由于工作关系,需要工作当中,需要读取DBF文件,找了一些DBF读取开源软件,要么是太过庞大,动不动就上万行,要么是功能有问题,编码,长度,总之是没有找到一个非常爽的。在万般无奈之下,我老人家怒从心头起,恶向胆边生,决定自己写一下。结果只用了不到300行代码就搞定了,当然搞定不是唯一目标,还要优雅简洁的搞定,亲们跟随我的脚步一起感受一下简洁的设计与实现吧。原创 2015-06-04 12:49:27 · 2436 阅读 · 0 评论 -
《开源框架那点事儿11》:软件开发杂谈
杂谈之一:技术只是成功的一点点基础条件,真正还是得靠做人话说,有位lianzi同学,水平不错,思想超前,签约阿里现在在百度实习,以前因为喷我的贴又没有啥理由,因此告诉他离我远一点,但是最近他又回到我群里了,一直伸个大拇指,我说啥他都是大拇指,觉得怪怪的,总不是那么个感觉,终于憋了一段时间,又恢复了正常的沟通方式,聊天实录: 【传说】杭州-悠然 18:31:13lianzi本色终于出来了。【传说原创 2015-06-09 15:04:37 · 2079 阅读 · 0 评论 -
《自己动手写框架5》:生态圈的建立
曾经有人提出过一个看似天方夜谭的设想,在我们生活的地球上再造一个“迷你地球”,探求人类在这个现代“南泥湾”之中自给自足,以及未来在月球或火星上建立生存空间的可能性。美国得克萨斯州的石油大王爱德华·巴斯为此憧憬不已。 既然是自己动手写框架,我这里想借鉴一下生物圈(Biosphere)这个概念来描述一下。生物圈是指地球上所有生态系统的统合整体,是地球的一个外层圈,其范围大约为海平面上下垂直约10原创 2015-06-05 14:36:32 · 2149 阅读 · 0 评论 -
《自己动手写框架4》:分布式锁的简单实现
分布式锁在分布式应用当中是要经常用到的,主要是解决分布式资源访问冲突的问题。 一开始考虑采用ReentrantLock来实现,但是实际上去实现的时候,是有问题的,ReentrantLock的lock和unlock要求必须是在同一线程进行,而分布式应用中,lock和unlock是两次不相关的请求,因此肯定不是同一线程,因此导致无法使用ReentrantLock。 接下来就考虑采用自己做个状态来进行原创 2015-06-04 22:48:17 · 2507 阅读 · 0 评论 -
《开源框架那点事儿34》:Tiny模板语言(VelocityPlus)初步入门
2 Tiny模板语言概述3 Tiny模板语言能为您做什么?4 Tiny模板语言简介5 Hello Tiny!6 注释7 引用(References)7.1 变量(variables)7.2 属性(properties)7.3 方法(methods)8 表达式(Expression)8.1 取值表达式8.2 Map常量8.3 数组常量8.4 其他表达式9 索引表示法10 渲染11 与Java无缝对接原创 2015-09-08 15:05:51 · 3256 阅读 · 1 评论