随笔分类 - [20]DesignAnalysis设计分析
-
规划系统的骨架
摘要:规划系统的骨架(架构设计)(上篇)摘要:概要设计和详细设计,可能是最开始听说的设计,但后来发现如果局限在这两个设计的框架下,可能会有诸多不顺,我们需要架构设计、数据库设计、模块设计和用户体验设计,本文主要分享架构设计,此文有点长,所以分拆为上下两篇,上篇为你分享:如何避免架构设计”放之四海而皆准“的问题,如何做到”需求驱动架构设计“?大纲:1.什么是优秀的设计?2.优秀的设计能节省项目工作量3.优秀设计从分析需求开始4.软件系统不是木桶型的5.软件设计的“大道理”6.规划系统骨架——架构设计7.打造系统的底蕴——数据库设计8.细节决定成败——详细设计9.用户感觉好才是真的好——用户体验设计10 阅读全文
-
.net开发框架设计
摘要:转WisDom .net开发框架设计WisDom .net 框架设计1. 为啥要弄 2014 年我已经是我们参加工作的第六年,也做过不少项目,但是发现自己没有代码积累。这里利用业余时间梳理一下以往的经历。让自己有些积累。2. 技术选型 开发语言 C# 数据库 MySql 主要使用 Linq 。Ado.net实体框架。 Jquery.easyui 等 开发工具 Visual studio 2013 +Mysql 5.6 (主要是mysql不要收费)3. 总体框架 出于对扩展行的考量,以后可能会采用WCF等技术,在这里采用以下架构如下图:1.WisDom.DataInfo 主要实现对数据的相关操作 阅读全文
-
面向查询服务的参数化查询
摘要:面向查询服务的参数化查询设计(分解业务点,单独配置各自的数据查询契约)阅读目录:1.背景介绍2.对业务功能点进行逻辑划分(如:A、B、C分别三个业务点)2.1.配置映射关系,对业务点配置查询契约(构造VS插件方便生成查询契约)2.2.将配置好的映射策略文件放在调用端,与服务不耦合3.Dynamic、Dom动态构造服务端对象(Dynamic、DOM实现动态DOM)1.背景介绍现在越来越多的公司都在尝试SOA架构的实践,本人最近也在尝试学习这方面的技术,但是在实践过程中遇到一个问题,我想这个问题也是我们普遍实践者都应该会遇到的问题,问题描述如下:我们有一个SOA商品(Item)查询接口,这个接口很 阅读全文
-
MVC设计模式
摘要:侃侃前端MVC设计模式前言 前端的MVC,近几年一直很火,大家也都纷纷讨论着,于是乎,抽空总结一下这个知识点。看了些文章,结合实践略作总结并发表一下自己的看法。 最初接触MVC是后端Java的MVC架构,用一张图来表示之—— 这样,我们让每一个层次去关注并做好一件事情,层与层之间保持松耦合,我们可以对每一个层次单独做好测试工作。如此,我们可以让代码更具可维护性。 因此,借鉴于后端的这种MVC设计思想(更多的我想是一种优秀的、经过考验的实践模式),针对越来越复杂的JavaScript应用程序,便有了猜想,我们是否可以使用MVC的设计思想,编写出高维护性的前端程序。一、MVC定义 先... 阅读全文
-
设计思想
摘要:小菜白话搭架子4:不再迷信某些设计思想2014-01-25 11:01 by Turbo Zhang,602阅读,4评论,收藏,编辑首先解释下“不再迷信”不是不信和不用,而是为了更好的思考与使用。故事起源与最近用Python做的类似于网盘的项目。由于之前更多使用的是高级语言(C#,Java),这种面向企业级的语言为得就是解决繁琐且负责的企业需求。于是设计模式的运用是必要也是必须。但是由于最近的工作内容更多的偏工具,脚本,自动化。使用的C#就比较少了。用Python的过程当中需要为方法传一个数组,突然恍惚了一下“针对于复制出来的数组使用时是默认是值传递还是引用传递呢?”。类似于:小菜之前一直以为 阅读全文
-
利用Readability解决网页正文提取问题
摘要:分享: 利用Readability解决网页正文提取问题做数据抓取和分析的各位亲们, 有没有遇到下面的难题呢?- 如何从各式各样的网页中提取正文!?虽然可以用SS为各种网站写脚本做解析, 但是互联网各类网站何止千万种, 纵使累死我们也是做不完的. 这里我给大家热情推荐使用Readability来彻底解决这个难题 (呵呵, 不是做广告, 真心热爱这个好东东)Raedability网站(www.readability.com)最引以为傲的就是其强大的解析引擎, 号称世界上最强大的文本解析神器. Safari中的"阅读器"功能就是用它来实现的! 他们还提供了API可以调用解析器的功 阅读全文
-
《这就是搜索引擎:核心技术详解》总结
摘要:《这就是搜索引擎:核心技术详解》有感总结目录:网络爬虫搜索引擎索引检索模型链接分析算法存储与计算搜索引擎缓存机制 搜索引擎的使用对于我们来说不陌生,对于一个正常的搜索流程,比如用户输入查询“搜索引擎 技术”,搜索引擎需要分别将存储的磁盘上的两个单词的倒排序索引读入内存,之后进行解压缩,然后求两个单词对应倒排序列表的搅基,找到所有包含两个单词的文档集合,根据排序算法来对每个文档的相关性进行打分,按照相关度输入相关最高的搜索结果。 但是对于这系列步骤中海量文档数据的来源,存储,查找的技术又是如何的呢?下面是我最近看了《这就是搜索引擎:核心技术详解》这书的大致总结:一、网络爬虫 首先,搜索引擎... 阅读全文
-
框架大牛五部曲
摘要:应用菜鸟到框架大牛五部曲今天起,文章开头都会推荐一两首好听的歌曲,以符合行文的节奏心情,纪念我们流逝的青春。第一天先推荐,许巍的《时光》、《曾经的你》。http://cmsblogs.com/编程领域从架构上,可分为两大部分,框架开发和应用开发。每个人都是从应用开发起步的,使用着各种官方或第三方框架。Java非常依赖各种框架,J2EE, Spring等。.NET一般只须.NET Framework。框架是现代编程语言不可分割的一部分,框架要精无须大而全,一个不足百KB的JQuery就改变了整个Web的面貌。在实际开发中,对框架往往有两种不正确的认识:一、把框架地位看得过高,往往发生在初学者身上 阅读全文
-
资源
摘要:资源管理设计——资源查找软件系统中常见的资源有内存、文件句柄、数据库会话、线程、服务等,资源管理是资源使用者对资源进行有效控制的过程。资源管理的设计往往影响软件的非功能性需求:性能:软件系统中操作往往涉及很多资源,如何保证资源可用、避免浪费、高效获取。可扩展:如何设计资源管理架构保证向上、向下兼容。可预测:如何保证资源操作的时间是可以预期的。灵活性:如何设计保证系统易于定制和配置。稳定性:如何设计保证资源的频繁操作不会导致系统的不稳定。一致性:如何设计保证系统处于一致的状态。软件系统的设计往往需要考虑以上多个方面,而某些方面本身是互相矛盾的,比如灵活性和性能本身可能冲突(分层架构设计),针对实 阅读全文
-
工作流设计图
摘要:工作流设计图Posted on2014-01-07 10:48zhouyongguo阅读(1063) 评论(6)编辑收藏读了许多关于工作流的文章,也看过许多关于工作流的开源软件,但是真正做工作流的时候,却发现如果使用开源的工作流,目前许多企业的特色问题无法解决,需要对工作流做修改或者二次开发,但是这样升级又会有问题。很显然,客户永远是对的,我们需要一个完全自己掌控的工作流系统。以下图是目前的一个已经实现的工作流引擎设计概念图。 当然我们肯定实现了例如顺序、分支、聚合、条件分支、人工干预、催办、会签、循环、回退、多级回退、自动发起等等工作流节点定义了工作流流程模板游标定义了流转过程,游标指向当前 阅读全文
-
ToolBox Analysis & Design
摘要:话说小菜过做已近3年,虽出身PHP后项目大多涉及.net,系统也做得比较繁杂,从常见的CMS,企业OA,ERP,也涉及到电商系统的开发定制,爬虫,工具不一而足,其中web系统居多。由于表现良好,时常会被经理叫去:“小菜,人是需要成长的啊,不如下个项目你负责吧,锻炼一下吧。”可是小菜对这种负责的职位是相当的不感冒,小菜只想快乐的编码,小菜的最终成为soho一族陪着美女环游世界。都知道事情一涉及到管理,负责就不那么纯洁了。并且小菜一直认为:将帅无能,累死三军。于是小菜每次都以“更对编码感兴趣” 为由拒绝。然而小菜知道丑媳妇早晚要见公婆,时间久了,这一步总是要过的,于是小菜也每每在项目之前,之后尝试 阅读全文
-
SSDB是一个开源的高性能数据库服务器
摘要:SSDB是一个开源的高性能数据库服务器, 使用Google LevelDB作为存储引擎, 支持T级别的数据, 同时支持类似Redis中的zset和hash等数据结构, 在同时需求高性能和大数据的条件下, 作为Redis的替代方案.因为SSDB的最初目的是替代Redis, 所以SSDB会经常和Redis进行比较. 我们知道, Redis是经常的”主-从”架构, 虽然可以得到负载均衡以及数据跨地域备份的功能, 但无法实现高可用性. 考虑这种情况, Redis的主和从分别在两个IDC机房, 当主所在的机房出现故障时, 整个服务其实就相当于停止了. 因为所有写操作都失败, 而应用一般不会实现自动降级服 阅读全文
-
iBatis核心框架浅析
摘要:iBatis核心框架浅析1.1 iBatis配置与运行1.dal 层的dao接口实现类通常会继承SqlMapClientDaoSupport。spring容器在初始化一个dao bean实例时,通常会注入两块信息DataSource(数据源)和sqlMapClient(主要是sql语句),这两块信息会封装到SqlMapClientTemplate。2. 其中数据源的实例通常采用apache的开源项目dbcp。代码配置如下:3. sqlMapClient接下来就到了数据持久层的代码调用,所有的数据库DML操作(增、删、改、查)都是借助于SqlMapClientTemplate来实现。1.2 SQ 阅读全文
-
跨域通信
摘要:跨域通信在工作的一段时间里,给我最大的感触就是:公司有非常多的子系统,而且子系统与子系统之间交互非常的频繁,虽然公司拥有封装了HttpClient及增加了路由功能的R系统(该系统目的就是满足现下系统与系统之间通信频繁的问题),但是大家都知道HttpClient只限于服务器端使用,当我们想用客户端脚本,比如Javascript来调用其他系统(不同域)的接口时,就会出现跨域通信的问题。那么为什么会出现跨域通信问题呢?当遇到跨域通信问题时,我们又有几种解决方案呢?另外,跨域通信又会引发哪些潜在的问题呢?下面我将慢慢解释这几个问题。一、产生跨域通信问题的本质原因 "无规矩不成方圆" 阅读全文
-
简易的分布式文件系统
摘要:简易的分布式文件系统本来初期打算用Hadoop 2,可是后来有限的服务器部署了Solr Cloud,各种站点,发现资源不够了,近10T的文件,已经几乎把服务器的磁盘全部用光。想来想去,由于目前架构基于Scala的,所以还是用Scala Akka实现了一个简单版本的分布式文件系统。Scala版本是2.10.3:http://www.scala-lang.org,Akka版本是2.2.3:http://akka.io。所有文件随机放在不同的服务器上,在数据库中记录了文件存放的服务器IP地址、文件路径。在服务端部署基于Akka的简单文件服务,接收文件路径,读取并返回文件内容。调用者根据文件地址,去数 阅读全文
-
HTTP压缩算法SDCH
摘要:程序设计中使用的那些共享方法或者技术前段时间看了个paper是讲述谷歌浏览器使用的压缩方法SDCH,其实原理还是比较简单的。看了论文后就想总结一下程序中使用的一些共享方法或者技术吧。1.Google最近发明的HTTP压缩算法SDCH SDCH的全称是Shared Dictionary Compression over HTTP的简写。 SDCH的基于以下的事实: (1)在HTTP的传输文件之间有大量重复冗余的数据,从服务器端一次又一次的传输到请求端。 (2)服务器端可以对这些文件之间的大量相同数据建立字典。 (3)客户端第一次访问时,请求字典与差异文件。之后每次访问,都只需要传输差异... 阅读全文
-
精简业务逻辑
摘要:A2D - Cache - 看如何精简业务逻辑A2D中一项功能是关于Cache的,能够将判断、获取、删除cache的代码缩减到最少量,如下是Order业务逻辑的demo示范:interface IOrder{ [Cachable("Order.GetMessage", "Default", ExpireType = CacheExpireType.Absolutely, Increment = 5)] string GetMessage(); [CacheEvict("Order.GetMessage", "Default& 阅读全文
-
WebSphere MQ 入门指南
摘要:WebSphere MQ 入门指南内容目录:基础概念创建队列管理器启动队列管理器创建队列向队列中放入消息查看队列中放入的消息从队列中取出消息MQ命令服务器MQ 监听器更多参考WebSphere MQ 入门指南这是一篇入门指南。我们从最基本的概念说起;基础概念对于MQ,我们需要知道4个名词:队列管理器、队列、消息、通道;对于编程设计人员,通常更关心消息和队列,对于维护管理人员,通常 会更关心队列管理器和通道。如果我们把队列管理器比作是数据库,那么队列就是其中的一张表,消息就是表中的一条记录。队列:我们可以简单地把队列看成一个容器,用于存放消息。队列管理器:队列管理器构建了独立的 MQ 的运行环境 阅读全文
-
记录程序日志的讨论
摘要:记录程序日志的讨论注明:此处所说的日志是指程序错误的日志。一般B/S程序记录日志的方式最多的方式是获取到exception后直接append到一个文本文件,当然也有记录到windows event log的。我们来讨论下当高并发量下的解决办法:有很多解决方式,如下:直接记录为txt/xml文件Windows Event Log当前进程的本地队列MSMQ独立进程中的WCF服务(进程间管道)独立进程中的WCF服务(异步调用方式)数据库Sql server的Service BrokerMongoDB(或者类似的NoSQL数据库)其实大多数情况下使用文本文件或者eventlog就可以了,不过这不在本次 阅读全文
-
核心业务需求及逻辑架构分析
摘要:核心业务需求及逻辑架构分析12306的已知信息、数据及问题需求分析(一)—— 售票系统领域知识(区间票、订票、预留票)需求分析(二)—— 涉众、用户体验核心业务需求及逻辑架构分析需求分析(三)—— 票仓票仓设计(一)—— 预生成车票方案的优缺点票仓设计(二)—— 区间二进制方案的优缺点票仓设计(三)—— 平衡方案的优缺点票务并发冲突处理原则设计(基于平衡方案)缓存逻辑架构设计数据库逻辑设计灾难备份与恢复快要太监了 :-(由于各种个人原因, 铁道部的这个博文系列中止了很久。最近终于连自己都不好意思了。所以还是继续完成它吧,估计1-2周一篇的节奏。感觉不先划分一下大的系统架构总会让大家感觉有点头晕 阅读全文