随笔分类 - [20]DesignAnalysis设计分析
-
程序在发布前就应该发现的一些错误
摘要:阅读目录开始404错误较大的响应输出用Fiddler发现这些问题如何自定义Fiddler过滤规则在软件开发过程中,写出影响性能或者有BUG的代码,都是我们无法回避的现实问题。不过,如果能够在程序发布前(自测或者测试阶段)将这些问题找出来,我想大家都是可接受的。今天就来介绍一种方法,用来发现在网站开发过程中,容易被我们忽略的一些问题,而这些问题其实是容易被发现的。将要介绍的方法需要使用Fiddler这样一款工具, 我将演示如何使用Fiddler来发现404错误,以及较大的响应输出问题。我认为这二个问题实在太低级了,所以我设计了这个方法,并写了这篇博客,希望大家能喜欢。我发现,许多人对于这二类问题 阅读全文
-
网络协议模拟之QQ微博分享接口应用
摘要:QQ微博在营销领域越来越受青睐了,这里面集成了很多非常有用的接口,像是邮件分享、空间分享、QQ分享、微信分享等。这相对于传统的直接模拟协议,登录邮箱等方式进行邮件发送甚至更有效。所有这些都没什么技术难度,所以实现起来是很简单的。如果在开发过程中遇到了些困难的话,可能是多线程的把握吧! 在这样一些营销类项目之中,绝大多数都设计了多账号切换操作,这使得整个架构控制起来异常繁琐。对于多线程功底稍差的人来说,加上UI设计的搭配,简直就是地狱般的折磨。项目实战开发最需要的就是经验的积累,平时练习的时候就得多为下一次开发做技术上的准备,否则一旦开始就会显得很吃力耗时。上图只是我一个项目里的一张截图,我们要 阅读全文
-
“零配置”和“有配置”
摘要:本人是做Java开发的,在程序开发中会经常使用到OpenSource开源框架,这些框架大多都灵活、简单、易用、方便。而且开源框架一般会提供一些基本的配置,如我们常用的框架就有Hibernate要配置对象实体到数据库的映射;Spring要配置bean的管理及其对象、属性的注入;Struts要配置Action对象和返回的资源路径;MyBatis要配置CRUD(增删改查)的相关SQL语句。这些配置你不能省略,必须得有,没有程序也不会自动添加。我们也是极可能的简化这些配置,不管怎么样简化但这些配置是不能省略,虽然这些框架给我们开发程序都提供了很大方面上的便利。但有时候你是否有纠结这么样的一个问题:到底 阅读全文
-
B2C电子商务系统研发——促销引擎设计(一)(Promotion Engine)
摘要:一、前言 在电子商务网站中存在着纷繁复杂的促销规则,这些促销规则可以是作用在产品上、购物车内若干产品或整个购物车,也可以是减免运费,额外赠送礼品、积分等。而且获得这些促销规则存在获取资格,比如某个会员级别、甚至是指定的用户等,那么如何在电子商务系统中通过一种统一的设计来实现各种各样的促销规则,并提供友好的扩展性方便以后挖掘的更多的未知促销手段呢?二、常见促销规则和例子 首先,让我们整理一下常见的促销规则和对应的例子。整张订单消费满 x 节省百分比 或 数值 y适合全站促销。从指定的目录或者产品集合里 面选购满 x 减百分比 或 数值比如图书分类,满100减10,满200减25等购买某个或指.. 阅读全文
-
Unit Of Work(工作单元)模式探索
摘要:什么是Unit Of Work模式Unit Of Work(工作单元)模式用来维护一个由已经被业务事物修改(增加、删除或更新)的业务对象组成的列表。Unit Of Work模式负责协调这些修改的持久化工作以及所有标记的并发问题。在数据访问层中采用Unit Of Work模式带来的好处是能够确保数据完整性。如果在持久化一系列业务对象(他们属于同一个事物)的过程中出现问题,那么应该将所有的修改回滚,以确保数据始终处于有效状态。为了演示Unit Of Work模式,使用一个简单的银行领域对两个账号之间的转账建模。下图给出了服务层(AccountService)与使用了Unit Of Work模式(以 阅读全文
-
DM层与Service层
摘要:首先分享一点自己最近的感悟:讨厌你的人总可以找到理由去讨厌你正文开始如果您是初次阅读这个系列,请先去《Index & Writing Plan》查找并阅读“架构设计系列”的前两篇文章,顺序阅读会使您有更好的阅读体验强烈推荐配合源代码阅读本文:点击此处下载(可以直接运行,会在本地自动生成数据库)已经写完了Factory的实现。在Factory中,我们使用了预编译指令来实现了Model的切换:#define A#if Busing Model.B;using DBaccess.B;#endif#if Ausing Model.A;using DBaccess.A;#endif切换Model 阅读全文
-
MySpace Mapreduce Framework:Qizmt
摘要:临时要处理一批数据,目标是从销售订单明细获得电子商务常见的一些推荐:1.购买了XX的用户还购买了什么 2.XX经常和YY一起购买 3.XX商品被同一用户多次购买;这是典型的MapReduce场景,但由于数据量比较小22w条数据,实在不想搭Hadoop,就找了一个简单的方案搞定:Qizmt; 看下项目简介:MySpace Qizmt is a mapreduce framework for executing and developing distributed computation applications on large clusters of Windows servers. The. 阅读全文
-
系统计数器与硬件分析
摘要:操作系统监控器,主要监控操作系统级别上的系统性能表现,这里分析最常见的windows操作系统与Linux操作系统。window操作系统的主要性能计数器Windows操作系统的性能监控:Window系统下的计数器比较多,主要技术器如下:Linux/UNIX操作系统的主要性能计数器 Linux系统的命令和UXIN的有些差别,在UNIX系统下的主要计数器监控命令是vmstat、iostat、top、sar、sag(图形方式,需要XServer支持);而在linux中,没有isostat命令。另外他们的输出结果也稍有差别。 上面罗列了windows与linux系统下的性能计数器,分析一个操作系统的.. 阅读全文
-
如何评价系统的性能
摘要:作为QQ餐厅的客人,对餐厅效率的评价就是供餐“快”或者“慢”。但是对于餐厅的经营者,这样简单的考虑问题显然是不够的。在《QQ餐厅与系统性能模型》中提到了系统性能的很多指标,而客人感觉“快”或者“慢”仅仅对应其中的响应时间这一指标。对于QQ餐厅的经营者,应该如何考虑呢?Table of Contents1 负载对性能指标的影响2 评价系统的性能3 提高系统的性能1负载对性能指标的影响在《QQ餐厅与系统性能模型》中已经描述了客人数量增加时餐厅中发生的一系列“故事”,让我们回顾一下:资源利用率与负载资源利用率随负载的增加而增加,最终达到100%。此时再增加负载,资源利用率也不会增加。当然,这是对单一 阅读全文
-
企业移动应用——技术平台体系
摘要:表现层:主要包含终端(WM、Android、ISO平台)、PC和Open API(开放的API)。终端:主要包含离线、实时在线、Core和通用模块。对WM、Android和ISO各自有一套这样的技术框架。技术框架中既可只用离线方式或只用实时方式,也可把两者综合起来,某些业务功能用离线,某些业务功能用实时在线。离线:终端离线使用,当有网络时,数据同步到云端,使用胖客户端+云存储。分表现层(画面)、业务逻辑层(业务逻辑处理)和数据访问层三层。" 表现层负责画面的呈现; 业务逻辑层负责业务逻辑的实现; 数据访问层负责对数据库的基础操作,包含ADO.NET和ORMLite,简单对这两种方式进 阅读全文
-
开源组件Smark.Data处理SQL和存储过程
摘要:完全通过组件对象描述的方式来完成所有数据库操作是不太现实的事情,所以组件提供SQL和存储过程的执行支持.随着组件版本的不断完善在1.7后组件在使用SQL和存储也是一件极其方便的事情.其简洁的操作方式相信在其他数据访问组件中难以体验到.SQL处理组件提供一个SQL对象用于直接处理SQL语句,由于重写了运算符,所以对象可以直接通过string来进行初始化.?1SQL sql = "delete from employees where employeeid=@p1";SQL是组件1.7开始提供的对象,它提供以下基础操作方法int Execute()获取受影响的行数,一般用于执行 阅读全文
-
程序员老鸟必须要会的5种流程技巧
摘要:作为编写企业管理系统的程序员,要学会的基本功,不仅仅只限于编程技巧方面,还有很多方方面面的知识,如如何将客户要办理的业务转换成管理系统中的一个一个功能点,界面录入的形式通常是怎么表现的,也就是常常说的要经过一些项目的历练,我们程序员才能成长。不仅仅是一些需求转换成功能点,界面录入的形式,还有很多关于流程控制方面的,这就需要有一些设计的经验了。如OA系统的审批,企业ERP管理,银行贷款风险评估等等,这些关于流程控制方面的,不仅要设计的合理,容易维护和可扩展,还需要有良好的表现形式。如OA系统的我的待办任务,企业ERP管理的一些采购流程,银行贷款风险评估的步骤图形化显示等等都是特定流程控制的表现形 阅读全文
-
项目架构
摘要:摆脱烂项目2012-10-19 16:51 by 鲜宏, 564 阅读,8评论,收藏,编辑 有没有这样觉得,以前做过的,刚做完的,或者正在做的项目,简直就是狗屎,不想去维护,不想去看以前写的代码?如果有,那么我们可以继续下面的内容. 分析一下原因,项目为什么会烂,从纯技术上去看无非有以下两个问题 1.项目架构烂 2.代码质量差 下面我们各个击破,分别说说我的一些愚见,项目架构往往是项目经理,架构师,团队中技术较好程序员,或者呆公司较久程序员的事,由于对架构的理解不同,做事方式不同,项目的周期不同,技术选型不同,所以架构也就形形色色,但以我看来较鲜明的也就是较为守旧的数据库先行... 阅读全文
-
统一接入层方案
摘要:Table of Contents1 概述2 技术方案2.1 要考虑的问题2.2 总体架构2.3 负载均衡器选型2.4 高可用方案2.5 会话保持方案2.6 URL资源的统一规划2.7 方案扩展3 实施计划1概述信息中心网络组已经对应用服务器所在的网络进行划分,应用系统的节点分别部署到网络的接入层、应用层和数据层。这样的划分能够提高应用系统和敏感数据的安全性,但是增加了应用系统部署的复杂性。根据网络规划,接入层作为用户(包括内部用户和外部用户)与关键服务器的隔离层,直接接收用户的请求,并转发给应用服务器。作为一种尝试,目前在接入层已经开始使用nginx对应用服务器进行反向代理,并支持多个应用服 阅读全文
-
12306票池架构探讨
摘要:最近论坛里已经慢慢有人在考虑票池的设计了,这是我关于票池架构的一些想法。具体的讨论请去论坛上讨论:http://12306ng.org/thread-1572-1-1.html需求讨论到目前为止,我了解到票池需求有:1、车票的预售期不定,有30天的,也有10天的,但应该是10天的居多。2、票在事先有计划售票管理,制定票额计划和编制临时票额计划。这样一来票是动态分配的,在预售期的前几天,会根据热门乘车区间预先分配一些票,在预售期后面几天,会将没卖完的回收到票池里。3、需要考虑退票和改签的问题。4、需要考虑有一部分票可能是预留给一些特别的单位,这些预留票可能最后没有卖出去,回收到票池中。5、需要考 阅读全文
-
IBM SOA[ESB,BPM,Portal等]基础架构图解
摘要:最近公司对众多的异构系统进行SOA化,产品选型为IBM的Websphere系列产品的WMB,BPM,Portal,LDAP等技术,根据具体的描述,连猜带蒙的画了个系统协作图,有不对的地方欢迎大家拍砖....谢谢。SOA详细技术基础架构浅析一、BPM,开发工具主要为WID,服务器包括DB2,WAS,WPS,BPC四个部分,接口方式包括HTTP、SCA、JavaBean、WS、MQ方式,其中SCA为重点推荐方式。二、Portal架构,相对简单一点,但是开发工具官方的是收费的,不然需要自己配置,可以方便的和BPC交互,只要服务器安装了WPC Client即可实现基于SCA的通信。三、ESB架构,IB 阅读全文
-
Veil框架设计理念
摘要:Veil框架设计理念项目地址:http://github.com/honovation/veil设计理念做为框架:改不改得动是检验一切架构的唯一标准我们认为框架不仅仅是为了节省开发人员的时间,能够让你五分钟写一个博客系统。更重要的是给应用程序的逻辑提供一个组织的方式。因为我们知道,软件开发就是管理复杂度的艺术。管理好软件业务逻辑的复杂度,就需要代码有一个良好的组织。这么多年来,人们总结出来的金玉良言就是“高内聚,低耦合”的模块化设计方式。Veil框架仅仅是我们对于践行模块化设计的一个努力和尝试。模块化设计并不是一个新概念。甚至C的module也可以称自己为模块化。Veil的特点在于彻底的模块化 阅读全文
-
C#版企业总线(ESB)设计说明书
摘要:从开源的ESB项目,基本上都是java版本,c#的esb开源项目太少,这对搞c#来说是一大遗憾,所以本人很想对c#开源世界做一份小小的贡献,因些开始写一版真正开源的ESB企业开发框架。园子里有兴趣的园友也可以一起来做。1,ESB架构图2,ESB系统架构要求WindowsServer2003R2WindowsServer2008.Net4.0Framework处理器要求:最少1GHzorfaster内存要求:最少2GBRAM服务器需要打开的端口:Redis服务端口:6379~6384JS,WP7,JavaAPI端口:8078routerandgatewayservice端口:8000,8085, 阅读全文
-
FACEBOOK的用户推荐和话题推荐算法
摘要:用户推荐和话题推荐是SNS的重要课题,效果的好坏是社交网站的区别指标之一,直接关系到用户体验,甚至是SNS的活力。国内的一些社交网站,比如新浪微博等,在功能上和UI上做的已经达到国际一流,然而,在推荐算法方面,仍有相当距离。推荐算法属于SNS的内功,对于SNS的用户体验的作用,和搜索算法对搜索网站的用户体验的作用相似。改进推荐算法,是社交网站的下一步方向之一。本文用图示法非常简单形象的描述了两种话题推荐法,两种用户推荐法,一种用户间相关度计算法。其中有些方法是非死不可用的,有些估计是新浪微博用的。插图1和插图2描述了非死不可的话题推荐的两个方法。基本上这是一种相关搜索法。在话题推荐方法2中,& 阅读全文
-
一步步实现cnblogs博客采集工具详细设计
摘要:欢迎继续关注开源项目CnblogsFan, 如果你是首次看到这个项目,点击此处查看有关该项目的详细介绍。 在完成对项目的概述设计后,就可以根据概述设计的内容对项目各个组成模块逐步细化,也就是我们所说的详细设计。详细设计在项目开发的整个步骤中是十分重要的一步,好的设计是项目成功的前提,详细设计直接决定着软件的质量以及软件在以后维护过程中的难易程度。更多关于详细设计的介绍请点击这里。 同概述设计中介绍的那样,由于项目的侧重点在对功能实现的分析上,所以这里的详细设计也是属于简略版,不涉及某个功能的具体算法,而在规范的详细设计当中,这些都是必要的,对于功能模块的具体算法将在下一步的编码过程中配合代.. 阅读全文