tiny

  • 像写SQL一样编写Java数据应用-TinySqlDsl
    像写SQL一样编写Java数据应用-TinySqlDsl

    前言 话说企业应用,一般离不开数据库.要做数据库,可以有N种方案,比如:直接采用JDBC层自己封装下使用的,采用一些框架的,如:iBatis,Hiberate,Spring JDBC Template等等(这个太多了,因此不一一列举)的,这些方案也都在各自的领域展示了自己的特点,解决了相当部分的技术问题,并取得了相当好的应用效果. 但是不管是哪种方案,其优点和缺点往往也是连在一起的,究其原因是因为SQL和Java编程之间是割裂的,如果封装得不到位,做Java的人太难使用:如果封装得太多,在做一些

    dsl, database, tiny, tinyframeworkMay 4

  • 吐槽一下J2Cache

    槽点一:集成方式采用ANT 工程还是传统的工程,集成还在用的ant,当然ant来做没有什么不可以,但是作为OSC这么高大上的作者拿出的作品能不能槽点高一些?已经采用了Maven了,用Maven无法独立完成的意思么? 槽点二:提交内容的不审慎 居然把Eclipse的工程文件提交到配置库,难道不知道有N多种开发工具么?不知道Eclipse工程文件中有一些东西是与本机相关的么?这样冲突如何解决呢?难不成所有作者的工程环境全是一样的? 槽点三:文件治理不够严谨 在src/main/java中赫然有xml

    Framework, tiny, j2cacheMarch 23

  • RESTful风格的支持实践
    RESTful风格的支持实践

    RESTful方式的访问确实即方便又易用,确实是非常不错的一种架构模式.前面一直嘴馋了好长时间,但是由于时间及人员关系,一直没有启动,刚开年,时间也有了,人员也到位了,没啥说的,开工! 本人的习惯,在开工之前,先去学习.研究.了解别人是怎么做的,在看了大量的文档及Roy Thomas Fielding博士的论文还有大量的实践之后,对于它是个啥,解决了啥等等有了比较充分的认识,接现来就是实现了. 程序员同学的第一想法是采用Spring中的RESTful方案来进行解决,这个当然马上被我否掉,原因是这

    Framework, 框架, RESTful, tinyMarch 5

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

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

    freemarker, velocity, 模板, template, tinyFebruary 5

  • Tiny模板引擎之开发工具
    Tiny模板引擎之开发工具

    要想做一流的模板引擎,当然有一流的模板编辑器是必须的. Tiny模板引擎推出已经有一段时间了,但是由于其语法是独立的,因此编辑只能采用一般的文本编辑器,但是编辑效率自然就低.还有一种是采用Velocity编辑器进行编辑,但是带来的问题经常会有错误的语法提示,有些语法无法正确提示,总而言之言而总之,就是不好用.那问题已经来了,咋办?答案当然是最好有一个自己的了. 现在,Tiny模板引擎的专有编辑器来了! 特性介绍 大纲支持:支持在大纲当中显示一些关键内容,并可以快速定位 语法高亮:支持在编辑器中,

    模板引擎, tiny, TinyTemplateJanuary 9

  • Tiny有毒

    呵呵,想比较通俗的介绍一下Tiny,居然没有办法下手,想了半天想不好一个标题,不知如何,忽然冒出个"Tiny有毒"来,结果越体会,越觉得这个题目不错,于是乎就它了. 学习Tiny的三个层次 初品Tiny 初上手,味道并不如想像象中的那中美味,甚至有一种不知从哪里开始的茫然,确实,导入IDE之后,看到的是一大片的工程,一般的人士看到之后,大呼太夸张了,可能有一些人就退却了,这是正常的,许多人第一次接触毒品也是这样的. 再品Tiny 在品过Tiny的苦涩之后,有些人可能想继续再试一下,在克

    j2ee, Framework, 框架, tiny, tinyframework, tinygroupDecember 8

  • Tiny1.2.0预览版全面开源

    感谢 感谢codeweblog.com为我们提供了这么好的共享与交流平台. 感谢红薯及codeweblog.com管理团队所有打过没打过交道同仁对Tiny一直以来的支持与帮助. 感谢所有鼓励和批评我的同学们,鼓励者为我们添加勇气,批评者让我们弥补不足. 感谢那些关注或点击过我的同学们,你们每一次的点击都会给我们力量,让我们坚信我们做的是有意义的:也感谢那些从来没有点击过我的同学们,因为你们让我知道我们还需要做得更多,更努力,更扎实. 当然尤其要感谢我的团队,正是我的团队们几年来对我的强力支持,才

    j2ee, Framework, 框架, tiny, tinygroupNovember 28

  • Tiny快速入门之控制层开发
    Tiny快速入门之控制层开发

    下面是一些常用的链接,供大家使用: GIT地址(必须是OSC家的):https://git.codeweblog.com/tinyframework/tiny 问题报告:https://git.codeweblog.com/tinyframework/tiny/issues 官方网站:http://www.tinygroup.org 更多内容,请看本人博客.不一样的内容,一样的精彩! 前面讲了Tiny快速入门之服务开发和Tiny快速入门之Web界面快速开发实践,也就是说开发服务和界面都没有问题了

    j2ee, Framework, 框架, tinyNovember 27

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

    前面讲了基于Tiny做服务,这篇来讲讲用Tiny怎么做界面.f 下面是一些常用的链接,供大家使用: GIT地址(必须是OSC家的):https://git.codeweblog.com/tinyframework/tiny 问题报告:https://git.codeweblog.com/tinyframework/tiny/issues 官方网站:http://www.tinygroup.org 更多内容,请看本人博客,不一样的内容,一样的精彩! 本来想改改codeweblog.com的界面,但

    Framework, 模板, 前端, tinyNovember 25

  • Tiny快速入门之服务开发
    Tiny快速入门之服务开发

    周五发了Tiny框架即将全面开源一文,有不少同学给了不少有意义的意见和建议,其中一条就是感觉太虚了,期望来点实的,因此本文将从实打实的快速开发方面讲起,来说明一下用Tiny框架开发一些业务是如何操作的,本文中的内容全部来源于Tiny快速入门手册,希望亲自动手实践的同学们,可以直接去下载并按照手册进行即可进行验证. 下面是一些常网的链接,供大家使用: GIT地址(必须是OSC家的):https://git.codeweblog.com/tinyframework/tiny 问题报告:https:/

    j2ee, Framework, 框架, tiny, tinygroupNovember 23

  • Tiny开发框架PPT介绍
    Tiny开发框架PPT介绍

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

    j2ee, Framework, 框架, tinyNovember 21

  • 悠然乱弹:从一段代码讲开去

    序言 今天偶然看到一框架,在框架的里面有一段这样的描述: xxx并不愿意其他人来直接修改YYY框架的代码,因为XXX致力于将它打造为完美的作品,其他人写的代码,实在没有加入进来的意义. 但是您可以当小白鼠,提意见,提bug,好的idea我还是愿意接受的. 这里解释一下,其中xxx是作者名字,YYY是框架名称,这么OSC上牛人众多,牛到这个程度的还是第一次见到,于是就想去速度学习一下.其实框架好不好,看例子代码就可以看出一二,去找了找,果然找到了示例代码,我摘了两个方法: /** * 发布文章 *

    Framework, tiny, 悠然乱弹November 6

  • TinySpider实战之-Visual Paradigm教学相关文档下载
    TinySpider实战之-Visual Paradigm教学相关文档下载

    Visual Paradigm是一个非常棒的UML绘图工具,需要对它了解的,可以直接看官网,在此不做更多介绍,最近要使用它来做一些设计,它有非常完备的在线教学,写得非常不错.这个时候问题来了,这些教学非常多,而且如果所有人都访问外网的话及学习效率都比较低.通过观察,发现里面的所有文章都有PDF可以下载,而且里面的示例也可以下载,呵呵,这就好办了,做个程序把它抓下来不就解决了?于是把此问题交给HulkZ同学去干了,HulkZ同学花了半天时间交工,我看了下,发现虽然局部有优化的地方,但是总体还是可以

    Framework, 爬虫, spider, tinyNovember 5

  • TinyAdmin前端展现框架
    TinyAdmin前端展现框架

    一直在苦苦寻找一个合适的前端框架,少说也看了几十个. ext太重,而且有内存泄露,在IE下就是个悲剧. dhtmlx,速度比较好,开源是GPL不适合企业应用,商业的要钱,倒也不贵万把块钱,但是样式比较接近于传统管理台应用,另外一个弊端是比较小众 Dojo,其实架构比较好,但是比较小众 Semantic:非常好的一个框架,但是成熟度不太好,对IE支持尤其比较差,另外比较小众 easyui:相对来说,也是一个不错的框架了,但是样式有点接近ext,也存在内存泄露 wijmo:非常完善的前端框架,但是比

    Framework, 框架, 前端, tinyNovember 1

  • Tiny相关子工程

    1 悠悠然然 / TinyDbf 2014-10-11 11:52 解绑 管理成员 2 悠悠然然 / tinyUIML 2014-10-11 11:52 解绑 管理成员 3 悠悠然然 / TinyTemplate 2014-10-11 11:52 解绑 管理成员 4 悠悠然然 / FizzBuzzWhizz 2014-10-11 11:52 解绑 管理成员 5 悠悠然然 / TinySeg 2014-10-11 11:52 解绑 管理成员 6 悠悠然然 / TinyFlow 2014-10-11

    Framework, 框架, tinyOctober 11

  • 缓存相关代码的演变

    问题引入 上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲. 该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲. 当然去看相关实现代代码的时候,大致是下面的样子. public void saveSomeObject(SomeObject someObject){ MemCacheUtil.put("SomeObject",someObject.getId(),someObj

    memcache, redis, 框架, 缓存, tinySeptember 28

  • 服务模拟-ServiceMock

    在软件开发过程中,经常会有如下情况发生: 界面开发人员要开发界面,但是要使用的服务还没有开发好,这个时候,要么只能开发一半,要么就只能等服务开发好之后再继续进行开发,无论是哪一种情况,都会导致影响开发进度. 与第三方对接的时候,由于各种原因,无法在本地构建第三方测试环境,只能到客户现场进行开发和测试,这会导致出差成本增加,开发人员满意度下降等情况的发生. 做一个Demo系统,如果是全部做静态页面,与客户沟通讲解的时候,总是讲起来不够真实,如果全部采用真实实现,会导致Demo系统构建成本太高. T

    Service, mock, tinySeptember 4

  • TinyTemplate与Velocity详细对比

    项目 Velocity代码 TinyTemplate代码 比较 单行注释 ##单行注释 ##单行注释 效果完全相同 多行注释 #*多行注释*# #*多行注释*# #--多选注释--# 效果完全相同 Tiny多一种 定义变量 #set($a=1,$b=2) #set(a=1,b=2) 效果完全相同 Tiny不需要在变量前加$,更简洁 定义数组 #set($a=[1..5]) #set(a=[1..5],b=[5..1],c=[1+2..a+b]) Tiny的起始和终止值都可以是表达式或常量 全局变

    velocity, 模板引擎, engine, template, tinyAugust 1

  • 悠然乱弹:云里雾里说Tiny

    今天从杭州到重庆,登机时间晚了20分钟,又晚了20分钟,又晚了20分钟,尼玛,这和我们软件实现的进度有得一比,总是他妈的延迟.延迟再延迟. 终于登机了,可能是MH17的事情影响了我的心情,上了飞机先仔细观察了一下,嗯嗯,看到一个空姐,比较漂亮,心情好了一点:又看到一个空姐,更漂亮,心情更好了:又看到一个空姐,依然漂亮,心情舒畅多了. 往窗外看看,发现我窗外就正好是发动机,上面刷了一行字:"The power of flight",于是我就想:The power of Tiny是啥呢?.

    Framework, tiny, Tiny框架July 20

  • 悠然乱弹:200行高质量的代码,也不是那么容易完成的
    悠然乱弹:200行高质量的代码,也不是那么容易完成的

    悠然 17:47:43 路人甲,速度报到领取任务了. 悠然 20:01:28 今天完成200行代码,呵呵,完不成,淘汰:) 悠然 20:02:11 http://git.codeweblog.com/tinyframework/tiny.git 悠然 20:02:20 https://git.codeweblog.com/tinyframework/tiny/fork 悠然 20:02:26 去fork一下. 路人甲 20:02:44 好 悠然 20:03:10 然后把自己fork下的代码clo

    Java, Framework, tiny, 悠然July 9

  • 如何快速编写并运行Tiny模板语言?
    如何快速编写并运行Tiny模板语言?

    说到模板开发,当然就离不开要调试,要运行. 由于一般情况下模板语言都是由Java程序驱动跑的,因此,每次都需要搞一个Java类来驱动它,才能运行出结果.这个对于悠然来讲,是不可忍受的.因此,TinyTemplate必须要可以快速开发,快速运行. 首先编写一个模板文件 33table.vm #for(i:[1..2]) #for(j:[1..2]) ${i}*${j}=${i*j}#eol #end #end 然后在资源管理器中,选中33table.vm,点鼠标右键,然后选择运行方式,在运行方式里

    Java, template, 模板语言, tiny, 悠悠然然June 27

  • 悠然乱弹:如何正确看待加入Tiny团队先从测试用例编写和文档编写开始?

    有一个同学,问我一个问题:加入Tiny是否必须从写单元测试用例和文档作起? 此问题引发我诸多感触,故形成乱弹一篇. 作为一个新加入者,多看.少说,是正点.而这个时候,写写测试用例.文档,就是个不错的选择.这样入手比较容易,也比较容易体现水平. 可以说好的程序员,测试和文档都是写得好的.测试和文档一定写不好的,一定不是好的程序员. 同时,在看代码,写测试用例.写文档的过程中,还可以这样思考: 他为什么要这么设计?换成我,我会怎么设计?然后有相当一部分,会转化成:哦,原来是这个样子的!这个时候你进步

    Framework, tiny, tinygroup, 开源组织June 26

  • 对TinyTemplate进行性能优化过程简介
    对TinyTemplate进行性能优化过程简介

    在做TinyTemplate的过程中,避免不了要进行性能优化,在群里与同学们讲,结果许多同学都没有接触过这项业务,因此就开一贴子简单介绍一下,希望对感兴趣的同学们有帮助. 用于进行性能分析的工具有JProfiler,JProbe,JProfile等等许多工具,都是大同小异的了. 今天用来示例的同学是JProfiler,由于现在的结果是已经优化的的结果,因此,看到的可优化之处就非常少了.但是可以说明的是,借助工具的帮助,很快的定位到了性能瓶颈的点,只花了少许时间就性能提升了一倍,基本上达到了最大处

    jprofiler, 模板引擎, Framework, template, tinyJune 25

  • TinyTemplate模板引擎火热出炉,正式开源了~~~
    TinyTemplate模板引擎火热出炉,正式开源了~~~

    涉水模板引擎领域,纯属不小心. 在此对以下人员表示强烈感谢与致敬: @sub jetbrick作者 @sept @webit webit作者 @罗格林 rythm作者 @闲.大赋 beetl作者 以及许许多多虽然没有列出来,但是在我写tinytemplate时帮助过我的人. 序言 本来是没有自己写一个模板引擎的计划的,因为按我的理解,一直认为这种"语言"级的引擎,难度是非常大的.总感觉自己的水平不够,因此不敢有这个念头.直到大量使用Velocty的时候,碰到velocty诸多不尽如人意

    template, 模板语言, tiny, tinyframeworkJune 18

  • TinyTemplate(Velocity Plus版)即将火热推出~~~
    TinyTemplate(Velocity Plus版)即将火热推出~~~

    本来是没有自己写一个模板引擎的计划的,因为按我的理解,一直认识这种"语言"级的引擎,难度是非常大的.总感觉自己的水平不够,因此不敢有这个念头.直到大量使用Velocty的时候,碰到velocty诸多尽如人意的地方,但是又无能为力,退回到JSP吧,又心不有甘.于是就期望着寻找一种语法结构接近velocty,但是又没有Velocity这些不方便之处的模板语言.于是进到一个模板语言群,一群大佬们个个至少是一个模板语言的作者,于是作者在里面表达了自己的期望,大佬们都介绍了自己的模板引擎,于是作

    模板, 引擎, engine, template, tinyJune 11

  • Tiny服务的开发配套的工具来了
    Tiny服务的开发配套的工具来了

    第一步 写个类 第二步 切换到服务管理Tab页 第三步 在要发布成服务的方法前面点个"√",这个时候会再出一个Tab页,对应要发布成服务的方法,点击sayHelloWorldTab页进入第三步. 如果没有啥特殊的,基本上一切都原样就可以特殊情况需要修改就修改几个参数值. 实际上第一步是必须要做的--如果是通过编程的方式开发服务的话. 实际上第二步打完"√"就已经完成了,保存就可以了. 第四步 测试验证: 返回XML内容 返回JSON内容 如果要进行页面访问也是可以的

    Java, Web, Framework, Service, tinyMay 28

  • 使用TinySpider实战抓取自己博客中的内容
    使用TinySpider实战抓取自己博客中的内容

    因为做官网,没有内容,因此就想办法从codeweblog.com中写的博客里弄点内容,这就要用到爬虫了. 然后就花了几分钟搞了一下,步骤如下: 第一步,写个方法抓目录: public static void processCategory(String categoryId) { Watcher watcher = new WatcherImpl(); Spider spider = new SpiderImpl(); watcher.addProcessor(new codeweblog.co

    爬虫, spider, tinyMay 28

  • Tiny实例:TINY框架官网制作过程详解
    Tiny实例:TINY框架官网制作过程详解

    Tiny框架的官网已经开通:http://www.tinygroup.org/ 新增加war包下载地址,呵呵愿意体验的可以直接下载并发布到容器即可试用,也可以查看里面的内容. 由于只花了两天时间制作,一天时间搞页面,一天时间搞内容,所以还非常粗糙,还有许多需要完善的地方,欢迎同学们提出改进和完善意见,但是今天网站做的好不好不是重点,重点讲讲网站是怎么做出来的.当然了,不用问,必须用Tiny框架来做,所以今天就来讲一下如何利用Tiny框架来高速有效的进行网站开发. 网站模板选择 首先声明,本人是美

    Web, Framework, html, tinyMay 26

  • 从易于扩展扩展的角度来设计FizzBuzzWhizz

    序言 最近FizzBuzzWhizz比较热,很多OSCER们也写出了自己的版本,有写的最快的,有写的最短的. 前面写过一篇文章叫 悠然乱弹:拉钩网FizzBuzzWhizz试题之悠然版解答,是悠然闲来无事写的一种算法,当时的文章只有写了实现与结果,但是没有详细说明作者为什么这么设计,所以导致一些人可能没有看明白,觉得有些设计是脱裤子放屁,多此一举. 今天悠然就来谈谈,悠然为什么这么设计,这么设计有什么好处?以与广大朋友们分享. 从题目来看,并不复杂,就是几种报数规则,并且有一些解决冲突时的规则,

    Java, 算法, 数据结构, tiny, FizzBuzzWhizzMay 12

  • 悠然乱弹:拉钩网FizzBuzzWhizz试题之悠然版解答
    悠然乱弹:拉钩网FizzBuzzWhizz试题之悠然版解答

    试题 你是一名体育老师,在某次课距离下课还有五分钟时,你决定搞一个游戏.此时有100名学生在上课.游戏的规则是: 1. 你首先说出三个不同的特殊数,要求必须是个位数,比如3.5.7. 2. 让所有学生拍成一队,然后按顺序报数. 3. 学生报数时,如果所报数字是第一个特殊数(3)的倍数,那么不能说该数字,而要说Fizz:如果所报数字是第二个特殊数(5)的倍数,那么要说Buzz:如果所报数字是第三个特殊数(7)的倍数,那么要说Whizz. 4. 学生报数时,如果所报数字同时是两个特殊数的倍数情况下,

    thoughtworks, 算法, 设计, tiny, FizzBuzzWhizzMay 6

  • 34.最简单的mvc框架tiny,总结分析&V2版思路
    34.最简单的mvc框架tiny,总结分析&V2版思路

    总结一下目前tiny的问题 前面已经说了2个:1.TinyMap和2.aop,TinyMap的思路我觉得挺好的,但是TinyMap类实现有点简单粗糙,需要增强. aop,前面说的方式1,不合适tiny v1,方式2思路就是直接操作class字节码,添加aop的代码,这个jdk 1.5就开始支持了,1.6又增强这个功能,一些开源库都有实现如asm或一些aop框架,spring和hibernate也有用到,但我不想实现了,这个下面有提到原因. 3.设计的问题 tiny的开发属于临时起意,tiny的所

    aop, mvc, ioc, tiny, 零配置mvcApril 18

  • 如何让程序员更容易的开发Web界面?重构SmartAdmin展示TinyUI框架
    如何让程序员更容易的开发Web界面?重构SmartAdmin展示TinyUI框架

    序言 如何让程序员更容易的开发Web界面,是一个持久的话题,所有的从事相关开发的公司都会碰到这个问题,并且被这个问题所深深困扰. Tiny框架也不得不直视这个问题,确实来说,想解决这个问题,也是非常有难度与深度的,业界也有各种各样的尝试,这也是有各种各样不同框架出现的原因. Tiny框架构建者认为,完全采用一种框架解决所有问题,是不现实的.而且即使目前找得到一种非常好的框架,暂时可以满足应用需要,但是随着技术的发展,业务的进化,就会慢慢变得不再满足业务需要.因此,Tiny框架构建从不再把做一套U

    velocity, engine, 组件化, tinyApril 17

  • 33.最简单的mvc框架tiny,自动转型TinyMap
    33.最简单的mvc框架tiny,自动转型TinyMap

    前面我说的实现一个自动转型功能的TinyMap,实现思路前面已经说过,我引用下 解决思路: 重写一个TinyMap类继承HashMap.我们实现getInt,getString等方法,调用这些方法可以对类型自动转换,当使用get方法时,其实是调用HashMap的get方法,放回object类型,代码如下: TinyMap tMap = new TinyMap(参); tMap.getInt(key); tMap.getString(key); tMap.get(key);//Ojbect 然后由

    泛型, tiny, 零配置mvc, TinyMap, 自动转型April 16

  • 悠然乱弹:我的开源观

    前几天看到一朋友,在营销自己的开源产品,有一点感触,也说说我的开源观点. 关于收入的问题,如果期望开源能够快速给自己带来收入,这个可能绝大多数的可能是会失望的.一般来说,一个开源产品,从开始,到发展,到最后能有收入,能营收平衡,这个一个漫长及艰难的过程.如果靠这个买米买肉,估计要饿死的. 那开源不关心收入,为什么还要开源呢?我可想可能有如下可能: 1.获取精神上的满足 比如,你做了一个好东西,但是又卖不了钱,放在自己兜兜里,一点成就感也没有,拿出来开源,让大家使用使用,自己获得一下成就感,满不错

    opensource, 框架, 开源, tinyApril 3

  • 如何模仿人的学习模式来教计算机程序解数学题?

    周末,看关于专家系统方面的书,其中有关于规则方面的内容,忽然就想,能不能模仿人的学习方式来提升计算机程序的计算能力呢? 试想,一个小孩子,他一开始什么也不会,首先,你要告诉他什么是数字,然后告诉他什么是加.减:然后告诉他什么是乘.除,还要告诉他有乘.除要先计算乘除,然后又引入了括号说,有括号永远要先计算括号.如此,随着告诉他的技能越多,他的解题能力也就越强. 于是就想着试验一下. 第一步,教计算机学习什么是数字. 下面的正则表达式,就是告诉"孩子",数字就是前面可能有"-&q

    Java, 算法, 数字, 表达式, 规则, tinyMarch 20

  • 悠然乱弹:关于优先队列
    悠然乱弹:关于优先队列

    背景分析 说到优先队列,熟悉jdk的朋友可能就知道,从jdk1.5开始,jdk中就提供了优先队列类,具体的做法就是实现了可比较的接口之后,就可以过比较使得优先级高的对象先出队列,从而体现"优先"性. 一般的情况下,这么做当然也都是没有问题的. 我们假设现在有这么一个应用场景: 你到银行去办一项业务,但是由于办业务的人多,由于金卡,银卡,钻石卡的用户不停的来,这样队列中的普通用户们就一直没有办理业务的机会.你和其它的普通用户的怒火一点一点的升起来,最后小宇宙爆发,估计够大堂经理受的.同样

    Java, 算法, 队列, 优先, tinyMarch 9

  • 悠然乱弹:WebMagic VS TinySpider

    上次@黄勇 提到与@黄亿华 WebMagic比较的问题.我在后面简单回复了一下下,现系统整理一下,不一定正确. 两者都是可以用于网页数据抓取,都有良好的扩展性及架构设计,但是由于定位稍有差异,因此在开发的时候各有侧重点,今天就写一篇专门的文章进行比较,由于对WebMagic学习得还不够,因此有些地方可能是错误地,欢迎指正或板砖伺候. 一.扫描方法的差异 a.WebMagic的扫描 WebMagic采用的是遍地撒网.愿者上勾的方式,怎么解释这个遍地撒网呢? 在进行内容抓取的时候,与事先定义好的处理

    网页抓取, webmagic, tiny, tinyspiderMarch 4

  • 用TinySpider进行网页抓取实例

    非常感谢@李少龙 的提醒 本例中用到的maven坐标变化如下: <dependency> <groupId>org.tinygroup</groupId> <artifactId>org.tinygroup.spider</artifactId> <version>0.1.0-SNAPSHOT</version> </dependency> 在百度中搜索笑话,看到这么一个网站:http://www.jokeji

    网页抓取, spider, tinyMarch 1

  • Tiny示例:对整个目录中的POM树进行批量处理

    原来我的POM中groupId是org.tinygroup,artifactId是对应的工程名,如parser. 后出有一个处理上的原因,而且便于进行分隔,还可以避免与别人的冲突,想把所有的artifactId前面增加个"org.tinygroup."前缀,比如parser就变成org.tinygroup.parser.但是这样一来,所有的依赖信息也全都对不上了,也就是要对工程的artifactId及依赖中的artifactId都进行修改才行. 由于工程数比较多,一个一个手工改总是麻烦

    xmlparser, vfs, tinyFebruary 28

  • 悠然乱弹:从几个方法的重构讲开去--性能大优化

    上一篇讲到经过上面两篇的优化与重构,整体来说,前面提到的问题,除了性能问题之外,其它问题都已经顺利的解决了. 现在还存在多次扫描处理的问题,也就是说虽然代码结构性重构是成功的,但是性能问题还是没有根本解决. 在给出解决方案之前,需要对这个处理方式缕一缕: 处理方式1:每次遍历全路径找到待处理文件,文件然后批量进行处理.优点是处理起来比较简单,但是会重复扫描. 处理方式2:一次遍历所有文件,然后对每个文件进行注解检测.扫描全路径只有一次,然后要把每个文件与过滤器进行比较如果比较成功那就做,比较不成

    smart, Java, 优化, 重构, tinyFebruary 26

  • 悠然乱弹:从几个方法的重构讲开去--注解相关的处理

    上一篇我们讲了文件相关的处理,并进行了结构上的优化,味道好极了. 接下来我们看看注解方面的处理,熟悉注解的同学们都知道,注解是可以添加到类型上.方法上.属性上的. 有时候它们的处理没有关联性,有些时候,它们的处理又是有关联性的. 我们用伪代码来示意一下. if(includeAnnotation(testClass,Abc.class)){ doSomething... } if(includeAnnotation(testClass,Abc.class)){ for(Field field:t

    smart, Java, 优化, 重构, tinyFebruary 26

  • 悠然乱弹:从几个方法的重构讲开去--文件相关的处理

    上一篇,我们写了引言,说明了几个方法之前有比较坏的味道,也分析了存在一些性能和扩展性方面的问题. 但是如何进行优化解决呢?? 简单看看吧,确实没有什么好的解决方案,那我们就抽丝剥茧,看看这三个方法里都涉及到哪些个领域? 涉及到注解方面的处理 涉及到多种注解方面的处理 涉及到文件查找方面的问题 涉及到多种资源文件查找方面的问题-file,jar 涉及到对查找到资源文件之后的后续处理的问题 好吧,可能还有别的问题,我们先利用上面分析出来的问题,看看有没有着手之处?? 仔细分析下来,暂时有三种要遍历的

    smart, Java, 优化, 重构, tinyFebruary 26

  • 悠然乱弹:从几个方法的重构讲开去--引言

    引言: 在学习代码的过程中,看到如下几个工具方法: // 获取指定包名下的所有类 public static List<Class<?>> getClassList(String packageName, boolean isRecursive) { List<Class<?>> classList = new ArrayList<Class<?>>(); try { Enumeration<URL> urls = get

    smart, Java, 优化, 重构, tinyFebruary 26

  • 牛人与新手的区别

    昨天看到篇文章"80秒验证13亿个身份证号码,包含省市县验证",忽然就在想牛人与生手之间的差异,呵呵,不一定正确. 1.牛人就是越来越觉得自己不牛的人:生手就是觉得自己越来越牛的人. 2.牛人就是越来越感觉不会的东西越来越多的人:生手就是觉得不会的东西越来越少的人. 3.牛人就是代码写得越来越简单的人:生手就是代码写得越来越复杂的人. 4.牛人就是动手之前总是不知道如何动手的人:生手就是动手之前根本不用考虑如何动手的人. 5.牛人就是有时候根本都不知道自己在用范式的人:生手就是要么不知

    牛人, 生手, tiny, 悠然January 15