自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

与第三方系统交互的方案设计

 系统与第三方交互时,一般采用Http(s)+xml或webservice。有时出于各种考虑,我们不希望采用Axis等重型手段,相反地,希望以轻量级的方式来实现。但是轻量级的实现方式需要我们手工编写各种代码,随着系统的复杂对提高,我们将遇到各种问题,比如:第三方的API7发生变化;本系统的重复代码块增加;Copy的代码散落各处;各种配置信息无法统一起来;业务的扩展需要调用更多第三方API。...

2011-11-23 23:18:12 1535

利用Specification模式检索缓存数据

    随着缓存技术的引入,网站前台的检索速度大大提高,随之而来的一个问题是检索。通常的经验都是写几个Sql语句,但是现在不同,我们需要从内存中检索数据。如何解决呢?我的方式是使用Specification模式。    Specification模式 把 每一个检索条件转化为对象。我们可以对象进行组合,然后对内存数据进行筛选,这样就可以达到目的。     为什么要采用Specifica...

2011-09-19 13:17:55 209

Map的应用(持续更新)

最近在工作中,用到的Map的特性,与大家分享一下:  1、进行字母频次统计,词组统计等等public class Statistic { private Map<String,Long> statistic= new HashMap<String,Long>(); public void add(String key,Long value...

2011-08-07 17:21:52 126

发一个在学习Junit3.81源码时的小demo

    此代码,是在阅读unit3.81源码时写的,虽然有些粗糙,但是可以理解junit的设计思想:)    一、类得基本介绍         1、command包             a、command,抽象命令类             b、SingleCommand,单一命令             c、CommandSuite,复杂命令             ...

2011-07-30 23:20:31 113

至2011年7月的的读书目录

    好读书,视野才能开阔。分享我读过的书籍:)    一、领域模型           1、领域驱动设计。我无法评价他,因为我为它着迷。           2、UML彩色建模。业务分析的好书,简约而不简单。如果有业务建模经验话,你会爱上他 。           3、领域驱动实战2008。感觉亏大了,不好。只记得【工作单元】。           3、think in u...

2011-07-29 22:52:37 118

工作第一年

    到了7月,说明我已经毕业了一年了,工作了一年。一年不算短,可以发生很多事情,许许多多。     记得在2009下半年的求职期间,不断地被鄙视,被拒接,直到11月才找到工作。    记得最深的一次,就是在支付宝面试时,被面哭了。说起来很是惭愧,不过很感谢那位面试官,因为他给我指明成长途径:如果不能在优秀的团队里工作,就找到一位高手作为你的师傅;如果不找到师傅,就自学,阅读源码就是...

2011-07-17 13:40:14 90

在线交易模型的4p(下)

   一、 product 产品可以定义为:“人们向市场提供的能满足消费者或用户某种需求的任何有形物品和无形服务”【 http://baike.baidu.com/view/1214.htm 】。 这与 Source 区别是产品是面向市场,针对特定人群。举个例子,以深圳世界之窗为例。在深圳世界之窗,人们可以游览景点,观看演出等等。然后华侨城公司决定把这些服务提供给市场,于是针对儿童...

2011-06-26 16:30:16 729

用“主线+事件”的方式来编写代码

      业务是主线和事件组合。      主线是什么?主线就是在完成用户的业务目标时,所涉及到的活动。      事件是什么?在每一个活动中,相关事物的状态变化。       回顾以前的编程经验,我们关注活动,忽略事件。      举一个常见的例子来说。小明在购物网站购物,进行支付并成功后,购物网站要做件事: 1 、更新订单状态, 2 、插入支付记录 3...

2011-06-26 10:32:05 124

运用ViewObject收集信息,利用DTO传递信息

信息的处理需要经过三大步骤 收集、加工、传递。在J2EE体系中,也是如此,总的来说可以如下:收集:接受来自页面的数据,组装数据到页面,验证数据有效性,装配数据。加工:进行业务处理,产出各种数据。传递:组装数据,并转为各种格式,传送到目的地。对于J2EE...

2011-06-13 23:02:15 124

在线交易平台---配额管理模块的设计

    1、 配额管理模块设计的思路:          a、引入账户模型。通过引入账户模型,可以通过控制配额账户的活动,我们可以允许透支,可以规定额度,也可以冻结其账户。另外系统可以追溯配额的使用情况,来龙去脉。          b、引入生产者和消费者模型。配额的产生和配额的使用是两个不同的活动。我把前一种活动产生的配额叫生产配额,后一种叫消费配额。          生产配额是有...

2011-06-08 22:49:52 455

原创 在线交易模型的4p(上)

市场营销的就是4p,产品(product)、价格(price)、渠道(place)、促销(promotion)。这是市场营销的四大要要素,同时也是电子商务的核心。要想建立一个优秀在线交易平台,就要从这四个方面入手。对于从事电子商务的软件工程师来说,必须要了解这四个要素,这是建立领域模型的依据。围绕电子商务的4p,我...

2011-05-31 22:48:51 655

原创 对象转化为Xml

     内部系统与外部系统对接时,需要进行数据交换,一般是采用XML格式。目前的OXM已基本满足要求,但是对于更加的复杂XMl数据,仍需要手工编写。     由于是手工编写ORM,编写风格、方式因人而异。我也尝试写一个,同时和大家交流心得。     代码说明:    1、两个类Person和Address,一个Peson有多个Address    2、使用Dom4j   ...

2011-05-29 18:12:01 190

原创 浅淡ViewObject 的设计

如何降低页面的复杂性,如何降低页面的代码量,如何减少 JSP 页面烦人的 <IF><ELSE> 标签。方法之一就是用好 ViewObject 。 在我所在接触过的系统中,我曾经看到过全能的 ViewObject 。数据持久化需要他,业务逻辑需要他、页面展示需要他。以至于造成以下情况:...

2011-05-27 00:28:55 188

原创 利用Listener模式解决复杂业务逻辑

 在传统的编程模型中,对数据更改是同步操作。 举一个常见的例子来说。小明在购物网站购物,进行支付并成功时。购物网站要做四件事: 1 、更新订单状态, 2 、插入支付记录 3 、编写订单日志。 4 、通知支付系统,回调成功。 在系统实现过程,我们通常采用如下代码完成这些任务 public void successToPay(Purc...

2011-05-25 22:51:24 141

原创 重构代码的新的体会

重构代码的过程就是发现知识,探索规律的过程。第一件事情,就是要发现隐藏在泥潭中的各种概念。然后把这些概念意义提炼出来、抽取出来。这个过程犹如发现团队所需要的人才一样。一旦发现某个概念,我们便可以了解到他们能做什么,不能做什么。第二件事情,就是观察代码在做什么事情,已超过一个屏幕的代码,其中必然蕴含着各种缺陷,当我看到一个超6屏的代码时,我就想到一个孤独的程序员,...

2011-05-11 23:19:32 79

在线交易模型-引子

电子商务大行其道,对于技术人员来说怎么应对,关键是了解电子商务涉及到的业务活动以及要素,经分析有以下几个主题    1、电子商务的4p(上)    2、电子商务的4p(下)    3、产品描述    4、产品采购    5、商品组合    6、价格策略    7、配额管理    8、渠道分销    9、优惠政策    10、订单预定    11、订单支付...

2011-03-13 10:02:19 116

原创 利用Enum解决多种登陆方式

1、需要解决的问题: a、避免出现坏味道,比如过多的if,else;b、增加新的登陆方式可以减少修改成本2、为了解决以上问题,将引入以下几个关键点:a、引入Login视图对象。b、使用枚举型。3、具体实现如下。/**登陆值对象 * Date: 2010-11-24 * Time: 21:30:26 */public class Login { priv...

2010-11-24 21:57:02 113

原创 访问历史 的实现

最近访问历史记录的实现,废话不多说,上代码。 1、VisitRecordpublic class VisitRecord { /**标志**/ private String id; /** 标题 */ private String title; public VisitRecord(){} public VisitRecord(String id,...

2010-10-20 12:34:02 183

原创 枚举类在Struts2中的运用

虽然枚举类已经在jdk1.5中已经推出来,但是它的应用还不是很广泛,究竟其原因,有以下几个方面:虽然hibernate,ibatis可以支持enun,但是出于稳定性的原因,大多数公司选择旧的、稳定的版本。 前端框架strut2对enum的支持不够,无法轻松的映射枚举型,增加开发难度。...

2010-10-10 22:20:20 184

商品分类以及统计

     在卓越网首页的左边,或者当当网的左边,都有商品分类列表,并会显示旗下的商品有多少种。如何在计算机中描述?那可定是用树来表示。但要高效地完成这个功能会面临哪些问题?    1、怎么统计某一分类的商品种类    2、如果更改某一分类商品种类数量,怎么通知其他节点    3、对于非叶子节,是否要记录商品数,    4、如果增加新的商品类型,又怎么做     对于这些问题...

2010-09-27 13:31:36 831

原创 Aop拦截链的简单实现

     在 Spring 中有拦截链这一说法,如何通过 JDK 实现一个简易的拦截链呢。起初的想法是动态代理模式加上链表,但是发现存在一个问题,被拦截的方法会多次被调用,因此又想到一个办法:使用用动态代理机制和装饰器模式。        为什么采用装饰器模式。理由如下,装饰器本质上是一条调用链,由内而外调用,这恰好符合拦截链的形式。       具体应该怎么做?...

2010-01-31 20:41:53 249

取模、除法的实现

如何优化除法和取模,一般来说有下的解决方案对于除数为2的n次方的,可以采用位逻辑运算符的形式比如22/16 可以等价为22>>4,;22%4可以等价位22-(22>>4<<4);但如果是不其他数,比如2344/3,45/3,那么该怎么办? 是否可以这样这样想,除法可以转换成减法,比如...

2009-10-28 23:06:59 486

有关蚂蚁的笔试题目

前几天,我参加某公司的笔试,遇到如下题目 一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。 木杆很细,不能同时通过一只蚂蚁。开始 时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。 编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。...

2009-10-27 16:14:00 592

用动态规划算法求解最短路线问题

     问题如下:设有一个旅行者从A点出发,途中要经过B,C,D等处,最后到达E,从A到E有很多条路线可走,各个点的距离如下,问旅行者应该选择哪一条,是使A到E路线最短。  求解算法:public class Dp{ private int[][] matrix; private int[] distance;//记录到终点的距离 public int[][]...

2009-10-03 08:41:44 2147

关于分页的那一点事情

前段时间在学习ssh2框架中,研究有关分页的问题,现把自己的心得分享一下。其思路是:把不变的部分与变化的部分相分开。采用的方法是运用策略模式。具体代码如下 package service;import java.util.List;public class PageBean implements java.io.Serializable { private int...

2009-07-05 09:43:08 71

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除