2016年9月17日

少一些套路,多一些真诚 ——groovy消灭表现层套路

摘要: 初次认识groovy是在2009年,当时看了Manning出版的《Groovy in Action 1st Edition》,对groovy这个语言的交互性shell,以及灵活的语法留下了深刻的印象,但限制于自己对脚本语言的特性了解甚少,社区基础的薄弱,以及所谓java is best的年少轻狂,没有进行实际应用,只是作为一种兴趣的萌芽种在了知识的土壤里。 转眼间到了2016年9月,... 阅读全文

posted @ 2016-09-17 21:09 jinspire 阅读(903) 评论(0) 推荐(0) 编辑

2015年4月4日

Thinking in 查询设计

摘要: 近日,互联网动物园的各位小伙伴们召开了一次会议,考虑到大火的电子商务,准备在动物园里开发一个电商系统。首先上台的是销售山鸡,清了清嗓子,说道,人类正在进行电商革命,动物园也需要上一个电商系统,必要性有三点,第一点是赚钱,第二点是迅速的赚钱,第三点是赚很多的钱…说完这点后,小伙伴们激动的开始... 阅读全文

posted @ 2015-04-04 20:43 jinspire 阅读(755) 评论(2) 推荐(0) 编辑

2015年3月10日

Html5新瓶装老酒之一--Touch事件处理

摘要: 移动端的应用越来越多的开始采用html5来实现的。Html5有许多新特性需要开发者注意,比如css3,touch事件等等。比如做一个轮播图,分析其实现要领,有三点:1.图片的轮播效果对应的css 样式;2.定时操控函数改变css样式来实现动画;3.绑定触摸事件对动画的播放进行控制。在原来的桌面js开... 阅读全文

posted @ 2015-03-10 10:52 jinspire 阅读(2916) 评论(0) 推荐(0) 编辑

2014年12月23日

接口的故事

摘要: 接口是为了解决庞大的公司和逻辑结构的关系而设置的。毕竟,面对一个人总比面对一大堆人要好的多。接口不仅是逻辑上的程序上的,还有一个与之血肉相连的负责人。对于技术人员而言,接口就是呼吸的空气,接口就是清冽的泉水,离开它就无法生存。 接口有各种各样形式的,从技术角度来说,有Json的,有xml的;有http的,有rpc协议的;有同步的,有异步的。为了屏蔽如数据分析等复杂的逻辑和部门,对调用者来说,... 阅读全文

posted @ 2014-12-23 16:12 jinspire 阅读(897) 评论(2) 推荐(0) 编辑

2014年7月14日

Bash CookBook(一)--基础

摘要: Bash 是brian Fox在1988年1月10号出于Richard Stallman的建议而写的。 一、 运行模板: 交互登陆的shell,登陆后bash会读取和执行/etc/profile。 然后依次读取~/.bash_profile,~/.bash_login,~/.profile,发现第一个能执行的,执行之。退出登陆时,会读取和执行~/.bash_logout. ... 阅读全文

posted @ 2014-07-14 09:59 jinspire 阅读(1248) 评论(0) 推荐(0) 编辑

2014年3月18日

Spring学习笔记(四)--MVC概述

摘要: 一、 飞机 最近马来西亚航空370号班机事故闹得沸沸扬扬,情节整的扑朔迷离,连我在钻研springMVC平和的心情都间接的受到了影响。正当我在想这个MVC的处理过程可以怎样得到更好的理解呢?灰机,灰机… 同事的议论和天上的嗡嗡声刹那间给了我一个答案,可以和民航系统进行类比。 民航系统类似于一个专业处理旅行的系统,此系统中有一些对旅行去做的事比如出差等本身意义不大,只在旅行系统中才存在的术语。比... 阅读全文

posted @ 2014-03-18 10:31 jinspire 阅读(8568) 评论(2) 推荐(1) 编辑

2014年1月23日

Spring学习笔记(三)--Convert System设计

摘要: 一.概述 转换系统是不同范式系统间交互常常会需要碰到的,如WEB 中HTTP KV文本流到对象的转换和对象到http KV文本流的转换;还有对象到关系型DB和关系型DB到对象之间的转换(ORM)。 一个面向对象的转换系统涉及到以下几个方面: 1. 转换映射, 如类型转换:String—>Number,Boolean—>String,String—>Boolean; 字段转换:从一个类... 阅读全文

posted @ 2014-01-23 15:00 jinspire 阅读(834) 评论(0) 推荐(0) 编辑

2013年11月5日

java web框架发展的新趋势--跨界轻型App

摘要: “跨界(cross over)在汽车界已然成风,将轿车、SUV、跑车和MPV等多种不同元素融为一体的混搭跨界车型,正在成为汽车设计领域的新趋势。从个人而言,当包容、多元的审美要求和物质要求越来越强烈时,跨界代表了一种新锐的生活态度与审美方式的融合。有人说,这是我们内心深处的渴望,也是我们在短暂一生中尽量多尝试应用不同体验的方式———驾驶跨界车,演绎着一种新颖的生活方式。”目前互联网开始渗透到各行各业中,各互联网之间的整合也是此起彼伏。大量整合、渗透互联网如新浪和高德地图,支付宝和基金,支付宝和快递等的轻量型的跨界试水业务纷纷抢滩。如何来提供这种跨界业务形态的快速上线所需的开发效率和应对其所.. 阅读全文

posted @ 2013-11-05 09:28 jinspire 阅读(3827) 评论(3) 推荐(2) 编辑

2013年7月22日

由Strurts2漏洞引开谈谈web代码安全问题

摘要: 漏洞与补丁齐飞,蓝屏共死机一色。最近struts2的安全漏洞影响面甚广,此后门为可以在url中直接远程调用脚本的漏洞和一个重定向漏洞。大家可以在s2-016远程执行脚本漏洞和s2-017重定向开放漏洞中看到攻击的例子。第一个漏洞即远程执行脚本通过构造ProcessBuilder创建进程执行脚本,框架开放度太大,由外界用户输入的字符串可以被当成代码执行。第二个漏洞重定向开放则可被钓鱼网站利用,外链上伪造成如著名电子商务网站淘宝,京东,比如是打折新款,用户点击后来到一个钓鱼网站,这网站可以跟淘宝或京东网站登陆界面做的一样,来欺骗用户进行获取密码。 struts2作为一个老牌的web开源框架,尚且. 阅读全文

posted @ 2013-07-22 10:17 jinspire 阅读(4698) 评论(0) 推荐(2) 编辑

2013年7月5日

Java线程同步之一--AQS

摘要: 线程同步是指两个并发执行的线程在同一时间不同时执行某一部分的程序。同步问题在生活中也很常见,就比如在麦当劳点餐,假设只有一个服务员能够提供点餐服务。每个服务员在同一时刻只能接待一个顾客的点餐,那么除了正在接待的顾客,其他人只能等待排队。当一个点餐服务完成之后,其他顾客就可以上去进行点餐。从这个例子中可以看到如下几个关注点:点餐服务为临界区域(critical area),其可同时进行的数量,即为有多少人可进入临界区域。 排队即为对目前暂时无法取得点餐服务的人的一种处理方式。这种处理方式的特性有公平性(按次序),效率性(接手最快为最好)等。 顾客进行排队和从队伍中叫一个顾客来进行服务即为睡眠(. 阅读全文

posted @ 2013-07-05 08:46 jinspire 阅读(3431) 评论(0) 推荐(1) 编辑

2013年5月7日

Spring学习笔记(二)--AOP

摘要: 一.概论从图上可以看出,Spring AOP的所有概念基本分为三块:第一块(左上角)为AOP配置,主要包含ProxyConfig,AdvisedSupport,这些配置包含AOP主要概念如target(目的对象),Advisors(切入点及其对应的增强)构成的处理链。第二块为(右上角)AOPProxyFactory这主要是沿用了spring的主要思想即构造主要都采用factoryBean封装,可以生成不同的AopProxy,如Cglib2AopProxy,JdkDynamicProxy.第三块(下方)为代理逻辑,包含Spring的InvocationHandler实现JdkDynamicPro 阅读全文

posted @ 2013-05-07 09:03 jinspire 阅读(1820) 评论(0) 推荐(0) 编辑

2013年3月25日

HttpComponents分析之连接池实现

摘要: 想象一下喵星人和汪星人在打电话时的情景: 1. 喵星人先找到汪星人电话号码, 2. 再拨汪星人电话号码,等待 3. 喵星人接通电话后说一句“miao" 4. 汪星人收到"miao"后进行通话"wang", 双方都可听到对方的讲话时,电话线路就通了。 这个过程是相当耗时的,特别是接通电话说了一句”@#!$%@#”就挂了.每隔一小段时间,发现还有话要说,然后反复的进行上述过程建立连接,这样的通话效率是非常低下的。打电话过程就相当于TCP的三次握手,说话交流相当于在其上传输的通信信息。但其实早期的Http就是这样的,一次http请求完成后,立即关闭连 阅读全文

posted @ 2013-03-25 10:16 jinspire 阅读(5115) 评论(2) 推荐(1) 编辑

2012年12月25日

Spring学习笔记(一)——IOC

摘要: AbstractApplicationContext中会初始化resourcePatternResolver,默认是org.springframework.core.io.support.PathMatchingResourcePatternResolver.setConfigLocations(configLocations); ApplicationContext初始化主要函数: o... 阅读全文

posted @ 2012-12-25 10:41 jinspire 阅读(2984) 评论(0) 推荐(0) 编辑

2012年10月31日

企业架构模式读后感--企业架构模式之O/R映射

摘要: 一、 数据源模式1. Table Data Gateway根据表为单位来对数据源进行封装,一个实例处理这个表中所有的行的操作。查询操作的对象都为RecordSet.主要用处就是隔离sql操作和面向对象操作。2. Row Data Gateway根据记录为单位来对数据源进行封装。3. Active Record将数据库的一行包装起来,封装数据库访问,并在其中实现领域逻辑。(充血式对象)4. DataMapper(JAVA中目前使用最多的一种方式)隔离O/R映射,在其中完成对象à关系和关系à对象转换,并保持对象和关系的独立性。耳熟能详的DAO方式应该就是此方案的实现。二、 对象 阅读全文

posted @ 2012-10-31 09:12 jinspire 阅读(426) 评论(0) 推荐(0) 编辑

2012年8月13日

软件开发神话--中

摘要: 神话6:只要充分详尽的了解用户的需求,就可以做出完美的产品,如果用户不满意,肯定是开发没有完全按照用户需求来。反神话:需求有很多漏洞,用户根本就不了解系统,不会提需求。既然太阳上也有黑点,“人世间的事情”就更不可能没有缺陷。 ——车尔尼雪夫斯基 所有的产品都是从用户需求而来的,但是对于没有或甚少用过信息化系统的用户来说,很难提出那么完美的需求。需求是对一个未见产品的期望,真的见到产品之后可能会发现当初设想不适宜,或者还有些迫切需要的需求根本没想到。一个人怎么能对一个没了解过的东西提出详尽的问题呢,就比如一个没驾驶汽车过的人去想象驾驶汽车一样,只能大致提出如汽车驾驶要基本掌握起步、加速、减速、刹 阅读全文

posted @ 2012-08-13 08:55 jinspire 阅读(2324) 评论(7) 推荐(0) 编辑

2012年4月23日

Maven开发过程实践之四—(迅捷自测web应用)

摘要: 在幽暗的灯光下,诺大的办公室里只有一台显示器依旧亮着,其上有一堆堆字符在跳动,一个模糊的背影在聚精会神的盯着屏幕…那就是IT男罗书全。旁边计算机的指示灯像萤火虫一样的闪烁,寂静…寂静,突然传来一声欢呼。这是一个标志性的时候,代码基本开发完毕。 接下来就是自测阶段了,令人欢喜令人忧的阶段。喜得是搞完后基本就可以放松一下了,忧的是web应用程序的自测非常繁琐,必须在... 阅读全文

posted @ 2012-04-23 09:16 jinspire 阅读(2207) 评论(1) 推荐(5) 编辑

2012年2月10日

java.util.Timer浅析

摘要: Timer是JDK中的定时调度类,主要用来定时触发任务: 用法: Timer是调度控制器,TimerTask是可调度的任务: 1: import java.util.Date; 2: import java.util.TimerTask; 3: 4: public class PlainTimerTask exte... 阅读全文

posted @ 2012-02-10 14:00 jinspire 阅读(15088) 评论(0) 推荐(1) 编辑

2011年12月13日

需求精化—思考力决定竞争力

摘要: 在某条河流上有个地方发生了污染泄露,需要提供一个河流应急布点方案,让其能够及时保障污染情况的及时有效监测。具体方案是什么呢?问客户?不知道。如果他知道,就不用找你了。其实很多时候用户并不明白自己需要的东西具体是如何的,作为我们,更重要的是能够提供一个信息化的解决方案而不是根据用户的原始需求去编写代码。站在用户的角度进一步思考,才能提出能抓住用户痛处提供更有价值性的产品。 回到上述例子,假设出现了污染,考虑到河流沿岸的百姓,只给你10分钟的时间,你会怎么解决此布点问题?首先考虑此问题的特点,有几下三点: 第一个要求是实时预测性,能对污染现在的情况做一个实时预测,比如现在污染浓度最高的在什么地方. 阅读全文

posted @ 2011-12-13 09:21 jinspire 阅读(1803) 评论(6) 推荐(2) 编辑

2011年11月23日

多维分析之概念准备篇

摘要: 让我们从现实的例子开始,比如现在要对某公司销售人员的年度销售量进行统计。原始数据如下:97年98年张三10万13万李四20万12万假使我想进行一次奖励,对每年度销售最成功的销售人员进行鼓励,这就是一次统计活动。那我就会按如下步骤进行:1. 寻找97年中所有销售人员及其对应的销售量的集合;2. 找到其中最大的销售量并取出其对应销售人员的姓名3. 同理对98年数据进行步骤1,2的运算4. 得出每年度销售业绩最好的销售人员97年98年业绩最好销售人员李四张三直观上来说,数据项变少了,得到的是更为抽象的数据——各年度业绩最好的销售人员。各年度业绩最好的销售人员就是对从年,销售量这两个角度上对销售人员的 阅读全文

posted @ 2011-11-23 08:54 jinspire 阅读(6910) 评论(6) 推荐(3) 编辑

2011年11月7日

软件开发神话--上

摘要: 神话1:神话本身。神话2:只要开发过程遵循敏捷的构建过程,就能够显著提高生产力和品质。 乍听上去,这句话逻辑非常正确。其实细想一下,这句话其实是倒果为因的,误把敏捷这个结果当成原因。打个比方说吧,等于说跑的快的人一定跑的迅速。敏捷方法论的名字起的太妙了,就相当于跑步运动员的名字叫飞速那么传神。敏捷专家们现在也越来越提倡tdd,scrum这些工具,似乎通往敏捷的路掌握在他们的手里。 其实,敏捷原本的意义是: Individuals and interactions over processes and tools Working software over comprehensive docum 阅读全文

posted @ 2011-11-07 08:48 jinspire 阅读(3870) 评论(8) 推荐(1) 编辑

导航