键值对在架构设计里的应用
摘要:谈谈我对程序的理解 作为程序员你对程序是如何理解的?写这篇文章的时候,我认真思考了下,发现我对程序的理解不是和教科书一样的,我每次听到程序二字我想到的只有两个东西:代码和数据,而每次写程序的时候也就是写代码操作数据的过程。 做程序开发和做菜很像,数据就是食材,代码就是厨艺,做出的软件就是一道菜了,至于这个菜好不好吃,到底是看食材还是看厨艺了?呵呵,当我抛出这个问题的时候,我的第一反应是菜不好吃当然是手艺不好了,不知道其他童鞋是不是这么想的。认真想下,一道好菜一般都是二者必须兼备,当然不排除某一项突出也可以达到同样的效果,但这种情况毕竟不是大众化,而是属于少数精英的,做软件也是如此,代码与数..
阅读全文
Undo/Redo框架(C++,带源码)
摘要:#pragma once#include "UndoRedo\BaseCommandReceiver.h"class Invoker;class MockCommandReceiver : public BaseCommandReceiver{public: MockCommandReceiver(); ~MockCommandReceiver(); virtual bool Action(bool bUndo); void PrepareData(Invoker * pInvoker, int nParameter);public: int m_nData; ...
阅读全文
Sencha Touch 框架快速入门系列
摘要:Sencha Touch 快速入门2.0 第四章 Api文档看懂了吗?摘要: 今天来扯一扯官方文档以及其他的一些东西。大部分问题,其实都是可以通过查阅文档来解决的。 因为文档是没办法直接用浏览器打开来看的,所以请大家先将sencha-touch-1.1.0下的docs文件夹部署到本机的IIS或者其他服务器上,以便查阅。怎么部署文档? Win7的话,比较简单,请看这篇文章windows7/win7 iis的安装与配置(图解教程) xp的话 iis 6.0 完整安装包 ...阅读全文posted @2011-09-01 16:30威老 阅读(266) |评论 (0)编辑sencha tou...
阅读全文
推荐两个界面原型设计工具--GUIDesignStudio 和 Mockups For Desktop
摘要:前段时间,有幸参加一次高级软件架构师的培训,授课老师介绍了两个很好玩的界面原型设计工具:GUIDesignStudio 和 Mockups For Desktop,现分享一下,截图说明,洗洗眼球,权当娱乐。以前在做界面原型设计的时候(不多,但有时候要做的),印象中多数用Visio或者一些UML工具来大致描述一下,效果及交互性较差,不知您是否做过这方面的工作,不管有没有,我们来了解下这两个比较有意思的东西吧。GUIDesignStudio 运行后,随便画上几个控件,界面如下:运行设计好的内容后,界面如下所示:Mockups For Desktop 运行后,涂鸦设计后的界面如下:运行后的界面:再看
阅读全文
各大网站架构总结笔记
摘要:记得在大学里不止一次关注网站架构方面的东西了,但每次都是泛泛了解,也没有着重记录,一段时间后对各种架构的思想也就模糊了。这几天不知怎么的又心血来潮(可能是快毕业了冲动了)想深入了解一下网站架构方面的知识,并想通过这次来总结一下网站架构,记录一点东西供自己以后翻阅,也给那些希望了解这方面知识的朋友提供一点点有用的信息,下面是我这次学习的总结笔记,有什么写得不妥的地方还请大家指出,还有希望这篇随笔能抛砖引玉,大家各抒己见。1、MySpace架构回顾了MySpace的成长史,真是让人惊叹,他的架构基本经历了五个里程碑,每个阶段都是显得那么仓促,那么无奈,那么坎坷,又是那么的精彩,网站为了生存只能想尽
阅读全文
十年磨一剑,BloodyAngel!
摘要:三个月没写日志了,比较懒散……下半年准备做OEA 的 B/S 版本,比较复杂,需要从架构设计开始认真入手。正好今天到了部门反思的时间,今天先把原来的一些设计经验总结一下,以方便将来回顾。 直入主题,这篇日志主要用于总结一些框架级别的模块设计经验。总述 一个大型的框架,必然由多个较独立的子系统/子模块构成。这些子模块如何交互,之间的接口如何定义,这是框架的架构设计的问题。而今天我主要要总结一下,针对其中的某一个子模块,应该如何进行设计。(例如,在 OEA 中有这些相对独立的模块:分布式框架、实体框架、界面生成框架、命令框架、产品线框架、分布式缓存框架、报表模块……) 我在对一个模块进行设计时,大
阅读全文
业务逻辑的方法(事务脚本、Evans DDD、基于事件驱动的设计)
摘要:废话不多说了,本文的目的是希望通过一个“银行转账”的例子来和大家分享一些我最近学习到的关于如何组织业务逻辑的心得和体会。当然,本人的能力和领悟有限,如有不正确之处,还希望各位看官能帮我指出来。我始终坚持一个信念,没有讨论就没有进步,任何一个非盈利为目的的人或组织始终应该把自己所学的知识共享出来与人讨论,这样不管对自己或对他人或对整个社会都大有好处。因为一个人的知识毕竟是有限的,但可以(并且也只能)和别人相互沟通交流学习来弥补这个缺陷。银行转账的核心业务逻辑大家应该都很熟悉了,主要有这么几步:源账户扣除转账金额,当然首先需要先判断源账户余额是否足够,如果不够,则无法转账;目标账户增加转账金额;为
阅读全文
.NET简谈构件系统开发模式
摘要:.NET简谈构件系统开发模式 2011-06-14 11:11 by 南京.王清培, 473 visits, 收藏, 编辑在本人的“.NET简谈插件系统开发模式”一文中我们详细介绍了插件系统开发模式的优越性,尽管.NET平台或者第三方提供的平台都为我们实现了底层插件原理模型,我们可以在上面进行开发,作为一名有求知欲的程序员才是一名合格的程序员;我们不能满足系统为我们提供的功能,我们要向下沉,沉的越深越好,躲开那些应用变化给我们带来的劳累感,所以我们是否需要掌握一些别人不会的技术,才能让我们在众多的程序员中脱颖而出呢;[王清培版权所有,转载请给出署名]我们今天来探讨“构件”系统开发模式,其实各.
阅读全文
架构设计-资源
摘要:net 架构设计基于微软并行计算的工作流解决方案 (2) Tasked based Parallel Activity摘要: 上一节我们做了个简单的测试证明了Parallel并不是真正意义上的并行工作流,并且分析了它的缺陷。在.net framework 4里面有很多关于并行计算的组件,现在我们就要利用System.Threading.Tasks.Task类型来实现并行的分支。在此我们不对此类型做解释,有问题的朋友可以参考MSDN或者发邮件给我。我们重写一下PartDBReplicationActivity,public class PartDBReplicationAsyncActivity
阅读全文
.NET简谈网络系统大局观
摘要:我们都知道软件发展经历了很长一段路程,在软件刚刚起步的时候,有一批世界顶尖的科学家用自己整个的人生为我们创造了今天美好的信息世界,我印象最深的是我看过一本书,书名是《优雅人生》是专门介绍一位伟大的女性IT工作者,她是一位传奇人物,她是编译器的先驱,在她晚年的时候都拼命在一线开发环境中肩负着整个美国的IT重任,这位女性就是,格雷斯-霍珀;值得我们去敬仰,去学习;我为什么要讲上面的一段话呢,其实这源自于本人对技术强烈的欲望和兴趣,尤其崇拜那些传奇人物;在我们现在的软件开发人员中很大一部分人没有兴趣去关心那些历史,那些过去很老的技术,很麻烦的操作过程;有没有必要那就要看每个人的理解了;我们大部分的开
阅读全文
企业级系统架构的理解
摘要:在我们刚开始学习架构的时候,首先会想到分层的概念,分层架构比较经典的是三层架构,那么,什么是三层架构呢?它包括表现层,业务层,数据访问层;而对于一个新手来说,从抽象意义上的三层架构,逻辑上就划分为三个层。这个是最基本的三层架构模式。表现层充当系统的界面呈现以及UI逻辑的角色,也就是说,UI(用户界面)属于表现层;举一个对于asp.net WebForm来说,人们喜欢把对于UI的控制逻辑(服务器控件的读取、设置、事件等等)写在页面的后置隐藏代码中,并且依赖业务逻辑层。当然,服务器控件支持数据绑定的功能,可以通过数据源进行绑定控件。这样就可以节省在后置隐藏中的代码。因此,我们就可以把表现层分为UI
阅读全文
明确架构目标
摘要:在MMN的宏观视图中,包括了三个过程环节:定义架构概图、架构全局分析以及构建概念模型。这是一个循序渐进的过程,是系统架构整体分析的逐步细化。这个过程的关键是找准架构分析的切入点。这正是定义架构概图所要解决的问题。定义架构概图需要明确架构目标、调查架构资源和分析用例场景。这三个活动可以是并行的,至少彼此之间是相互影响、相互作用的。如下图所示:虽然这些活动是并行的,但从一开始明确架构目标才是最佳的选择,因为架构目标是整个架构过程所要努力达到的方向。不了解架构目标,搭建出来的系统架构再好,也可能不符合客户的需求。架构目标来源于需求,主要指客户或其他利益相关人提出的项目(产品)愿景。愿景表达了客户的目
阅读全文
我对软件优化的一些想法
摘要:目前所做的项目,今年应该是第5个release了,走过了这5年的风风雨雨,中间几度更易开发人员,现在的团队与5年前的团队已是两个完全没有"交集"的团队,这样必然导致我们对项目会存在很多的不理解,不理解其初衷,不理解其原始设计,不理解其代码。。。对一些不理解的地方不敢大动手脚,只能修修补补以完成需要的功能,其结局从开发角度看就是总体设计的缺失,代码结构的混乱,从功能角度看就是容易出错,运行速度极慢。项目极其需要一次深入的代码重构与性能提升,而这都至少需要一个release的时间来做,对于代码重构,从商业的角度来讲,是十分不可取的,一是其风险比较大,大刀阔斧的重构,如何保证软件
阅读全文
对象的自治和行为的扩展与适配[转]
摘要:在坏的设计中,数据往往是分散的,甚至是杂乱的,这就好像一群失去意识的猛兽,我们无法控制、协调以及管理它们。这种漫无头绪的散乱数据,犹如猛兽的肆意妄为,会给系统带来无尽的灾难。随着系统的演化,这种灾难会逐渐蔓延至系统的各个角落。因此,在面向对象设计过程中,对数据分类是识别对象的一个前提。但是,仅仅封装了数据的对象,如果没有操作数据的行为,仍旧是没有意识的死亡对象。我始终认为,对象在拥有自己数据的情况下,应该是自治的。这种“自治”类似于SOA中服务自治的概念,但由于对象应该保持足够合理的细粒度,因此这种自治是有限度的自治;或者说它体现的是专家的自治。如果对象拥有足够的数据信息,就必须树立这些信息的
阅读全文
我爱编程
摘要:01 2011 档案怎样画好架构图摘要: 参加了一个如何画好架构图的培训,总结下来有一下几点: 1.设计也死 2.做正确的架构,正确清晰的表达架构,将架构正确应用到系统 3.Rup 4+1 视图:逻辑视图、进程视图、实现视图、用例视图 4.逻辑视图里包含功能视图主要用于和领导交互 5.活动图展现具体业务逻辑,适合多角色协作的具体业务也叫泳道图 6.序列图和协作图用于沟通需求和类设计 7.数据库设计要做到第三范式 8.软件架构的驱动因素:软件功能、非功能需求、其它约束 9.画软件架构步骤: a 功能视图、用例图 b 组件图、部署图 c 软件架构概要因素:操作系统、数据库、浏览器、构件、语言阅读全
阅读全文
在软硬件系统总体架构设计
摘要:在软硬件系统总体架构设计完成之后,为保证架构设计的合理性、完整性和针对性,从根本上保证系统质量,降低成本及投资风险,需要对总体架构进行评估。 1、架构评估内容 (1)对软件的架构评估 对软件的架构评估,主要是根据具体的评估依据,看软件设计是否符合体系化设计原则;产品中所开发的软件是否易于升级,是否满足可扩展性强等要求。 (2)对硬件的架构评估 对硬件架构的评估,主要是根据具体的评估依据,看研发的系统是否尽量采用了低功率处理器和较少的功耗部件,是否满足低功耗的要求;系统是否具有较大的基础资源空间以及资源扩展空间(如程序指令空间,内部外部存储空间等);是否易于运维管理;研发产品的硬件是否易于升级,
阅读全文
欢迎使用 PDF.NET 数据开发框架【转载】
摘要:转载地址:http://www.cnblogs.com/bluedoctor/关于框架的名字由来 在我设计www.pwmis.cn 站点(原域名已经过期,现在使用新域名www.pwmis.com )的时候,考虑到架构的兼容性和将来升级的可能性,最重要的是没有足够的时间去为网站添加和维护很多复杂的程序,所以在借鉴前人成功经验的基础上,设计了一套全新的快速数据处理框架 PWMIS Data Develop Framework,简称PDF。本套框架的思想是借鉴Java平台的Hibernate 和 iBatis 而来,兼有ORM和SQL-MAP的特性,同时还参考了后来.NET的LINQ(本框架成型于2
阅读全文
不使用DalFactory和IDAL,支持多种数据库应用
摘要:MS的PetShop示例应用程序的“多层架构”被很多.NET开发人员奉为经典的架构,我以前做的项目团队的Leader也是照搬它的,甚至来到现在这个公司后,好几个新来的同事建解决方案也是照搬PetShop的架构,可见PetShop对大家影响之深。下面是PetShop 3.0的架构图:为了支持多数据库应用,在DAL中,定义了DAL Interface和DAL Factory,下面这个图也许跟简单直观一些(引用Do you know, jack?园友http://www.cnblogs.com/zq8024/archive/2011/03/31/2001436.html中的图片,请见谅:))通过这个
阅读全文
AgileEAS平台使用教程
摘要:AgileEAS.NET平台开发实例-药店系统-UI层重构技巧及其他摘要: 开篇 上篇我们讲述了UI层的分析,那么本篇我们就讲述下我们在做CS应用程序的过程中的一些技巧性的东西,可能我这里总结的只是我再开发本药店系统中应用的到的一些小技巧,并不代表全部,肯定还有很多的其他方面的技巧,大家都可以分享一下,我这里提出额也谈不上技巧,更多的是使用设计模式方面的总结吧。 1、提升父类 2、分离职责。 3、抽象公共大纲 1、将每个子类都用到的方法或属性进行提升到基类中。 2、抽取公共方法。提升父类 关于这个技巧我想大家都会是比较清楚的,就是将子类中都有的属性或者方法等放在一个基类中,然后具体的子类继承自
阅读全文
企业级软件开发需要什么样的框架?
摘要:导读1.企业级软件开发流程2.什么是框架以及为什么要开发框架企业级软件开发流程1)领域建模 分析领域特定的问题。比如赶集网这一分类信息网站,她的定位是解决都市人寻求房屋出租、二手房、二手车、二手物品交易、求职招聘等生活信息的需求的。在领域建模阶段要解决的就是这个软件的定位问题,做什么不做什么。 这一阶段由高层领导,市场销售及系统分析师等完成。2) 平台技术选择 技术选型,比如用什么平台/架构(.net,j2ee,php,python等等)开发,采用什么服务器托管等。 这一阶段由系统高层领导,系统分析师及系统架构师等完成。3) 解决方案 根据选定的平台技术等给出一个可行的解决方案,说明系统会使用
阅读全文