`
sing100star
  • 浏览: 28545 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
  系统与第三方交互时,一般采用Http(s)+xml或webservice。有时出于各种考虑,我们不希望采用Axis等重型手段,相反地,希望以轻量级的方式来实现。但是轻量级的实现方式需要我们手工编写各种代码,随着系统的复杂对提高,我们将遇到各种问题,比如:第三方的API7发生变化;本系统的重复代码块增加;Copy的代码散落各处;各种配置信息无法统一起来;业务的扩展需要调用更多第三方API。   基于这些问题,结合自己的工作经验,我提出如下方案,与大家交流。(由于工作的缘故,并不能把相关源码上传,只能简单描写)   一、了解哪些角色可以帮助系统:
    随着缓存技术的引入,网站前台的检索速度大大提高,随之而来的一个问题是检索。通常的经验都是写几个Sql语句,但是现在不同,我们需要从内存中检索数据。如何解决呢?我的方式是使用Specification模式 。     Specification模式 把 每一个检索条件转化为对象。我们可以对象进行组合,然后对内存数据进行筛选,这样就可以达到目的。      为什么要采用Specification,因为Specification可让开发人员专注于 【检索条件】的使用。      下面给个例子,供大家参考,源代码在附件     1、年龄规约 public class AgeSpeci ...
最近在工作中,用到的Map的特性,与大家分享一下:     1、进行字母频次统计,词组统计等等 public class Statistic { private Map<String,Long> statistic= new HashMap<String,Long>(); public void add(String key,Long value){ Long result = statistic.get(key); if(result == null){ result = valu ...
    此代码,是在阅读unit3.81源码时写的,虽然有些粗糙,但是可以理解junit的设计思想:)     一、类得基本介绍          1、command包              a、command,抽象命令类              b、SingleCommand,单一命令              c、CommandSuite,复杂命令              d、RepeatedCommand,可以重估执行多次命令,装饰类              e、PauseCommand,暂停一段时候后,执行命令,装饰类         2、person包    ...
    好读书,视野才能开阔。分享我读过的书籍:)     一、领域模型            1、领域驱动设计。我无法评价他,因为我为它着迷。            2、UML彩色建模。业务分析的好书,简约而不简单。如果有业务建 ...

工作第一年

    到了7月,说明我已经毕业了一年了,工作了一年。一年不算短,可以发生很多事情,许许多多。       记得在2009下半年的求职期间,不断地被鄙视,被拒接,直到11月才找到工作。     记得最深的一次,就是在支付宝面试时,被面哭了。说起来很是惭愧,不过很感谢那位面试官,因为他给我指明成长途径:如果不能在优秀的团队里工作,就找到一位高手作为你的师傅;如果不找到师傅,就自学,阅读源码就是最好的自学方式。我以前也不懂struts,后来我把struts源码吃透了,遇到任何前端框架,我都能游刃有余。     因为他的话,我开始阅读源码。从2010年起,就先后看jiveJdon,petSto ...
    一、 product 产品可以定义为:“人们向市场提供的能满足消费者或用户某种需求的任何有形物品和无形服务”【 http://baike.baidu.com/view/1214.htm 】。 这与 Source 区别是产品是面向市场,针对特定人群。举个例子,以深圳世界之窗为例。在深圳世界之窗,人们可以游览景点,观看演出等等。然后华侨城公司决定把这些服务提供给市场,于是针对儿童提供【世界之窗儿童票】,针对情侣提供【世界之窗情侣票】。而这些票就是产品,不同的票有不同的目标人群。因此产品是面向市场的,针对特定人群,提供服务的集合。因此在产品模型中要尽量表达出这些特点。 产品如 ...
      业务是主线和事件组合。       主线是什么?主线就是在完成用户的业务目标时,所涉及到的活动。       事件是什么?在每一个活动中,相关事物的状态变化。         回顾以前的编程经验,我们关注活动,忽略事件。       举一个常见的例子来说。小明在购物网站购物,进行支付并成功后,购物网站要做件事: 1 、更新订单状态, 2 、插入支付记录 3 、更新订单日志。 4 、通知支付系统,回调成功。   通常的做法如下: public void successToPay(PurchaseOrder order,P ...
信息的处理需要经过三大步骤 收集、加工、传递。在 J2EE 体系中,也是如此,总的来说可以如下: 收集:接受来自页面的数据,组装数据到页面,验证数据有效性,装配数据。 加工:进行业务处理,产出各种数据。 传递:组装数据 , 并转为各种格式,传送到目的地。 对于 J2EE 来说: 收集环节集中在视图层。在编程中,最常见的错误就是赋予控制器类过于强大,具体为表现:
    1、 配额管理模块设计的思路:           a、引入账户模型。通过引入账户模型,可以通过控制配额账户的活动,我们可以允许透支,可以规定额度,也可以冻结其账户。另外系统可以追溯配额的使用情况,来龙去脉。           b、引入生产者和消费者模型。配额的产生和配额的使用是两个不同的活动。我把前一种活动产生的配额叫生产配额,后一种叫消费配额。           生产配额是有期限的,过期的生产配额是无法使用的,同时生产配额必须记录它已经使用了多少配额,这通过持有消费配额的集合 来达到目的。          与此相反,消费配额没有有效期,但是它必须记录配额在什么时候被使用 ...
市场营销的就是 4p ,产品( product )、价格 (price) 、渠道 (place) 、促销 (promotion) 。这是市场营销的四大要要素,同时也是电子商务的核心。要想建立一个优秀在线交易平台,就要从这四个方面入手。对于从事电子商务的软件工程师来说,必须要了解这四个要素,这是建立领域模型的依据。 围绕电子商务的 4p ,我们可以在互联网上发现各种网站,比如当当,卓越、走秀等等。然而,我们还要讲述讲明一个问题:产品是怎么来的? 产品源自哪里。产品来源于现实世界的任何事物。比如一次服务,一件东西,一个旅游景点、一本 ...
     内部系统与外部系统对接时,需要进行数据交换,一般是采用XML格式。目前的OXM已基本满足要求,但是对于更加的复杂XMl数据,仍需要手工编写。      由于是手工编写ORM,编写风格、方式因人而异。我也尝试写一个,同时和大家交流心得。       代码说明:     1、两个类Person和Address,一个Peson有多个Address     2、使用Dom4j     实现要求:     1、可指定xml的文件名     2、每个xml文件的person记录数不超过指定数量   /** * 地址 */ public class Address { ...
如何降低页面的复杂性,如何降低页面的代码量,如何减少 JSP 页面烦人的 <IF><ELSE> 标签。方法之一就是用好 ViewObject 。 在我所在接触过的系统中,我曾经看到过全能的 ViewObject 。数据持久化需要他,业务逻辑需要他、页面展示需要他。以至于造成以下情况: 1 、视图层代码复杂,既有持久化层的逻辑,又有业务逻辑层的逻辑、还有展示层的逻辑。         2 、 事务从服务层蔓延到视图层。对于 V ...
  在传统的编程模型中,对数据更改是同步操作。 举一个常见的例子来说。小明在购物网站购物,进行支付并成功时。购物网站要做四件事: 1 、更新订单状态, 2 、插入支付记录 3 、编写订单日志。 4 、通知支付系统,回调成功。 在系统实现过程,我们通常采用如下代码完成这些任务 public void successToPay(PurchaseOrder order){ //1、更改支付状态 order.setPayStatus(PayStatus.SUCCESS); orderD ...
重构代码的过程就是发现知识,探索规律的过程。 第一件事情,就是要发现隐藏在泥潭中的各种概念。然后把这些概念意义提炼出来、抽取出来。这个过程犹如发现团队所需要的人才一样。一旦发现某个概念,我们便可以了解到他们能做什么,不能做什么。 第二件事情,就是观察代码在做什么事情,已超过一个屏幕的代码,其中必然蕴含着各种缺陷,当我看到一个超 6 屏的代码时,我就想到一个孤独的程序员,他不愿与别人沟通,不会寻求帮助,他很累,但是他仍然要不断写代码。我所要做的事情就是引导他,让他学会与其他沟通,和别人一起工作。代码也是如此,分析每一个方法的职责,不要让函数越权,然后让适合的类完成恰当的 ...
Global site tag (gtag.js) - Google Analytics