上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 28 下一页

2013年7月6日

技术人生:不要忘记过去,也不要想着过去,向前看

摘要: 不要忘记过去是因为过去犯了太多的错误,而错误是一笔财富,忘记就意味着还会再犯。不要想着过去是因为这会时时刻刻的折磨我,让我不能轻装前行。向前看才是硬道理,加油! 阅读全文

posted @ 2013-07-06 10:07 幸福框架 阅读(767) 评论(0) 推荐(0) 编辑

2013年7月5日

设计模式:空对象模式(Null Object Pattern)

摘要: 背景群里聊到《ASP.NET设计模式》,这本书里有一个“Null Object Pattern”,大家就闲聊了一下这个模式,在此记录一下大概的结论。典型结构模式的结构非常简单,这里就不多说了,类图如下:为什么使用这个模式?还需要null吗?之所以需要这个模式是因为这个模式可以消除重复。想象一下,假如有多个消费端,每个消费端都要判断一下是否为空,而且对于为空的场景要做特殊的处理,这样就会导致很多重复。一些例子是:日志对象和缓存对象。这个模式带来的另外一个好处就是方便做测试,这些Null Object类似Stub Object。引入这个模式的前提是:“所有消费端对于空对象的行为的期望是一致的”,如 阅读全文

posted @ 2013-07-05 00:13 幸福框架 阅读(4150) 评论(10) 推荐(3) 编辑

2013年7月4日

.NET:关于数据模型、领域模型和视图模型的一些思考

摘要: 背景数据模型、领域模型和视图模型是“模型”的三种角色,一些架构用一种类型表示这三种角色,如:传统三层架构。也有一些架构用两种类型表示这三种角色,如:结合ORM的领域驱动架构。非常少见的场景是用三种类型表示这三种角色,我只在个别领域这么弄过,如:工作流引擎。今天只说一个话题:是否有必要为视图模型引入独立的类型?还是用一种类型表达领域模型和视图模型这两种角色比较方便?引入一些词汇:A方案:用一种类型表达领域模型和视图模型这两种角色,又叫公开领域模型到视图(Open Domain To View)。B方案:为视图模型引入独立的类型,又叫使用数据传输对象(DTO)。A方案因为领域模型和视图模型是一个类 阅读全文

posted @ 2013-07-04 00:35 幸福框架 阅读(3714) 评论(12) 推荐(3) 编辑

2013年7月3日

DDD:订单管理 之 如何组织代码

摘要: 背景系统开发最难的是职责的合理分配,或者叫:“如何合理的组织代码”,今天说一个关于这方面问题的示例,希望大家多批评。示例背景参考数据字典需求OrderCode必须唯一。Total = Sum(Subtotal)。订单有三种状态:【未提交】、【待审核】和【已审核】,合理的状态迁移有:【未提交】----》【待审核】和【待审核】----》【已审核】,只有处于【未提交】状态的订单能修改。订单和订单项中的状态必须合法,规则自己定义。示例实现项目结构Application:应用层,负责领域逻辑的封装。主要角色:ApplicationService、CommandHandler。Boostrap:启动管理层 阅读全文

posted @ 2013-07-03 09:26 幸福框架 阅读(5006) 评论(15) 推荐(6) 编辑

2013年7月2日

技术人生:成功需要的是意志力

摘要: 看了一个公开课视频,美国的一个华裔心理研究人员发现:“一个人的成功跟IQ和EQ没有必然的联系,有时候甚至成反比,而跟意志力有非常大的关系”。回忆我这几十年,发现自己没有坚持过什么,买了三本字帖,练了半本就停止了;办了一个健身卡,总是断断续续;做了每日的作息计划,总是不执行。唯一坚持下来的就是放弃。每日一搏,差一点就坚持不下去了,或者快要流于形式了。坚持住,老段! 阅读全文

posted @ 2013-07-02 14:04 幸福框架 阅读(424) 评论(1) 推荐(0) 编辑

2013年7月1日

DDD:群里关于验证的结论

摘要: @汤雪华验证是为了让数据符合要求。各个层的验证是为了确保传递给各个层的数据符合当前层所需要的数据的要求。@小学僧db model的验证主要是为了保证数据完整。domain model的验证主要是为了保证业务完整。view model的验证主要是为了用户体验。领域模型能否处于非法状态?如果采用领域驱动,我不会让领域模型处于非法状态的。如果采用贫血模型,我会。 阅读全文

posted @ 2013-07-01 14:24 幸福框架 阅读(771) 评论(0) 推荐(0) 编辑

2013年6月30日

技术人生:如何做好技术?

摘要: @李林峰:公司产品的技术直接导致团队的好坏。开发人员留不住,销售很憋屈,销售很憋屈,客服更难做。管理层管理不了人了,公司很快就挂了。 阅读全文

posted @ 2013-06-30 14:37 幸福框架 阅读(283) 评论(0) 推荐(0) 编辑

2013年6月29日

.NET:为什么需要逆变和协变

摘要: 为啥需要协变和逆变?我目前想到的理由是:逆变和协变的目的是支持多态。一个小例子不明白为啥输出的是false和true。 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace InOutStudy 8 { 9 class Program10 {11 static void Main(string[] args)12 {13 ... 阅读全文

posted @ 2013-06-29 15:23 幸福框架 阅读(773) 评论(0) 推荐(0) 编辑

2013年6月28日

Javascript:猜猜弹出的是啥?为啥?

摘要: 背景经常需要向新入职的年轻同学解释Javascript的两个概念:单线程和作用域链,今天就再写篇博客说明一下。单线程队列:只有一个用来存储回调方法的队列。消费线程:只有一个消费线程,不停的从队列中取方法,然后进行调用。这也是为什么Javascript称作为单线程的原因。生产线程:有多个生产线程,不同的向队列中插入方法,常见的生成线程有:定时器、Ajax和浏览器事件。这也是为什么Javascript称作为事件驱动的原因。参考文章:http://www.cnblogs.com/happyframework/archive/2013/04/23/3035596.html。作用域链条局部变量不是存储在 阅读全文

posted @ 2013-06-28 12:32 幸福框架 阅读(1377) 评论(1) 推荐(1) 编辑

2013年6月27日

DDD:关于模型的合法性,Entity.IsValid()合理吗?

摘要: 背景见过很多框架(包括我自己的)都会在实体的定义中包含一个IsValid()方法,用来判断实体的合法性,是否应该这样设计呢?本文就这个问题介绍一点想法,希望大家多批评。实体能否处于“非法”状态?实体是否应该包含IsValid()方法的深层次问题是:“实体能否处于非法状态?”。我们来定义一些术语,接下来我就引用这些术语:A模式:实体允许处于非法状态,但是实体要包含一个IsValid()方法进行校验。B模式:实体不允许处于非法状态,业务逻辑必须保证这一点。关于A模式我不想多说了,A模式本身没有问题的,今天重点说说如何实现B模式。如何实现B模式?最好的说明就是写一个例子,下面是我们例子的需求:xxx 阅读全文

posted @ 2013-06-27 11:11 幸福框架 阅读(2299) 评论(7) 推荐(1) 编辑

2013年6月26日

DDD:建模原语 之 四象图(转载的神文)

摘要: “模型、状态和行为特征、场景”和“四象图”,建模观的命名与立象。建模原语:四象图作者:achieveidea@gmail.com命名:模型、结构特征、行为特征、场景(及其规约)。释义:模型,描述事物为一组时间函数,蕴藏了与事物相关的所有事实。特征,从模型上剥离的一组时间函数。特征分为两大类,一类是结构特征,一类是行为特征。场景,模型凝聚相应的特征持续一段时间,描述一段时间内与模型相关的事实。场景中隐藏的一些规则、约定,称之为场景规约。用法:一笔一纸,一横一竖,四象顿生。一象画景,三象画物,物在景中。二象画形,四象画神,形神兼备。万象入画,浑然一体,一目了然。注:第一象限画景,即描述场景;第三现 阅读全文

posted @ 2013-06-26 14:06 幸福框架 阅读(2017) 评论(0) 推荐(1) 编辑

2013年6月25日

设计原则:重视命名,应该没有看起来那么简单

摘要: 背景接触了一些非常优秀的编程人才,发现他们有一个共同的特点:“重视命名”,记得一位大师也曾说过:“命名和缓存是他最头痛的两个问题”,我不是一个注重细节的人,最起码从骨子里不是,因此我吃了不少苦头,我需要注重细节,从命名开始。这篇文章不会介绍如何更好的命名,关于这方面的资料,可以去买一些这些方面的书,设计模式固然必不可少,但是现在如果让我排一个优先级的话,我更关注代码可读性和命名,一些推荐的图书:《实现模式》、《代码质量》、《代码阅读》、《编写可读代码的艺术》、《微软框架设计规范》等。为何命名如此重要好的名称代表了合理的职责分配。好的名称代表了清晰的思路。好的名称代表了你对自己和他人的尊重。命名 阅读全文

posted @ 2013-06-25 22:34 幸福框架 阅读(1637) 评论(7) 推荐(2) 编辑

2013年6月24日

DDD:Strategic Domain Driven Design with Context Mapping

摘要: IntroductionMany approaches to object oriented modeling tend not to scale well when the applications grow in size and complexity. Context Mapping is a general purpose technique, part of theDomain Driven Design(DDD) toolkit, helps the architects and developers manage the many types of complexity they 阅读全文

posted @ 2013-06-24 12:42 幸福框架 阅读(1039) 评论(0) 推荐(0) 编辑

2013年6月23日

.NET:之前用过的一个技术架构

摘要: 阅读全文

posted @ 2013-06-23 23:55 幸福框架 阅读(532) 评论(3) 推荐(0) 编辑

2013年6月22日

技术人生:向前端人员学习

摘要: 突然意识到,在我认识的前端朋友中,他们的穿着和发型都比我好看,就凭这一点,我要向他们学习,也要抽出时间学习一下CSS。 阅读全文

posted @ 2013-06-22 23:08 幸福框架 阅读(249) 评论(0) 推荐(0) 编辑

2013年6月21日

DDD:Command模式的好处

摘要: 背景会有朋友问我为啥用命令模式(Command Pattern)组织应用层,先看看MartinFowler咋说:http://martinfowler.com/bliki/CommandOrientedInterface.html。总体来说我有三种模式来组织应用逻辑:http://www.cnblogs.com/happyframework/archive/2013/03/27/2986021.html,之所以采用命令模式,是因为命令模式有如下几个好处:拦截(AOP,不用动态代理)、发生到远程(不用为每个应用逻辑开发WCF服务)、异步、离线、排队。一些资源拦截:http://www.cnblo 阅读全文

posted @ 2013-06-21 22:05 幸福框架 阅读(2936) 评论(0) 推荐(0) 编辑

2013年6月20日

DTO vs. Assembly(转载)

摘要: DTO vs. AssemblyWe probably need to make a strong statement about data transfer objects. Do we like or hate them? Well, it depends. DTOs are an excellent tool for explaining to kids the difference between theory and practice—that is, if kids can understand DTOs.DTOs are a must-have in theory; in pra 阅读全文

posted @ 2013-06-20 09:19 幸福框架 阅读(833) 评论(0) 推荐(0) 编辑

2013年6月19日

DDD:整理了一些关于验证方面的文章

摘要: http://msdn.microsoft.com/en-us/library/ff664356(v=pandp.50).aspxhttp://gorodinski.com/blog/2012/05/19/validation-in-domain-driven-design-ddd/http://lostechies.com/jimmybogard/2009/02/15/validation-in-a-ddd-world/http://abdullin.com/journal/2009/1/29/ddd-and-rule-driven-ui-validation-in-net.htmlhttp 阅读全文

posted @ 2013-06-19 17:01 幸福框架 阅读(647) 评论(0) 推荐(0) 编辑

2013年6月18日

幸福框架:模块化开发

摘要: 什么是模块模块 = 后台逻辑(DLL)+ 显示逻辑(静态资源)+ 数据库 + 其它初始化逻辑。如何识别模块和通知模块各种事件识别模块1 [assembly: Happy.Bootstrap.ParticipateInBootstrap]监听启动事件 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.IO; 7 8 using Happy.Bootstrap; 9 . 阅读全文

posted @ 2013-06-18 14:59 幸福框架 阅读(2386) 评论(4) 推荐(0) 编辑

2013年6月17日

.NET:异常以及异常处理框架探析(转载)

摘要: 概述 一般情况下,企业级应用都对应着复杂的业务逻辑,为了保证系统的健壮,必然需要面对各种系统业务异常和运行时异常。 不好的异常处理方式容易造成应用程序逻辑混乱,脆弱而难于管理。应用程序中充斥着零散的异常处理代码,使程序代码晦涩难懂、可读性差,并且难于维护。 一个好的异常处理框架能为应用程序的异常处理提供统一的处理视图,把异常处理从程序正常运行逻辑分离出来,以至于提供更加结构化以及可读性的程序架构。另外,一个好的异常处理框架具备可扩展性,很容易根据具体的异常处理需求,扩展出特定的异常处理逻辑。 另外,异常处理框架从一定程度上依赖并体现系统架构层次。系统架构决定了系统中各个子系统,各个层... 阅读全文

posted @ 2013-06-17 20:27 幸福框架 阅读(1677) 评论(0) 推荐(0) 编辑

上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 28 下一页

导航

我要啦免费统计