I'm CY

:-D

 

2012年2月9日

策略

 

策略


1.    策略的目标
参照SQL Server 的策略,以领域设计的方法确定各个业务的边界,从而抽象出业务之间交互的接口,同时也对具体业务内部进行抽象,对关键的业务方法在执行前、执行后的行为提供外部植入。


2.    策略的名词
方面
代码对象、单据对象、服务对象、仓储对象都是策略的方面。
条件
由对象的属性的表达式表达
针对目标
对象的方法,有两种情况,执行前(Before)、执行后(After)。
对象的属性
动作
当方面、条件、针对目标完全匹配时,执行的动作,动作的返回值可以是值对象也可以是一个算法。


3.    策略分类
算法策略
年假、工资计算公式等等归纳为算法策略,其特点为根据方面和条件返回一个值,没有针对目标。算法策略只是描述一个业务逻辑,一般作为被调用者。
执行策略
针对目标的方法被调用之后,将会引发策略的执行,在执行中我们可以对方对象的属性进行赋值,以及函数调用等动作。
执行的策略一旦启用将会自动附加到方面上。
验证策略
验证策略是一种特殊的执行策略,只需要配置满足的表达式即可。


4.    策略的外部对象方法协作
特殊情况下,有些业务逻辑开发过程中需要引用策略方面对象以外的方法进行赋值或判断,那么可以通过约定开发接口进行函数的调用。
例如:单据号的产生需要两个步骤,一、根据单据类型获取该类型的最大号;二、根据最大号安装指定的规则生成代码。通过在策略之外写好GetCode函数,定义个针对单据的GetNew的目标编写一个执行策略,对单据Code属性应用GetCode函数即可。


5.    总结
策略中心的最大的作用是:当两个业务之间的约束关系明确化时,为业务之间的耦合提供一个桥梁。

posted @ 2012-02-09 17:33 I'm CY 阅读(2) 评论(0) 编辑

编写有效的文档--通过二维表格优化思路.


编写有效的文档,所谓有效是指最终用户可以快速的理解并使用。


文档的结构组织一般呈金子塔,主次分明,这一般没有异议,详细信息该如何描述?过多的文字势必增加用户的阅读负担,并且也不利于理解。一图胜千言,一个表格顶万语,在文档中引入图表可以大大增强文档的可理解能力,也就是提高有文档的有效性。


在软件开发过程中形成的文档,例如:需求文档、测试文档等更要注重图表的设计与利用。当然图表的设计也要科学合理,这个需要文档编写者多多思考。


最近在写测试用例,二维表格优化思路的感触多多,记录一下。

posted @ 2012-02-09 16:38 I'm CY 阅读(3) 评论(0) 编辑

2012年1月18日

关键元

元是信息的维度,关键元就是关键维度了。

 

关键元的特征:主线、最小颗度

 

Employee是HR系统中的一个关键元

EveryDay:“每一日”也是一个关键元

 

排班、考勤等等都体现到Day,有开始、有结束。

但是从统计的角度来看,显然EveryDay更合适。

 

该如何组织,还得好好考虑

posted @ 2012-01-18 21:31 I'm CY 阅读(7) 评论(0) 编辑

2012年1月14日

新浪还是明码保存密码?

它怎么知道?

posted @ 2012-01-14 20:14 I'm CY 阅读(7) 评论(0) 编辑

WPF listbox WrapPanel Horizontal无效的原因

http://stackoverflow.com/questions/4244793/listbox-not-showing-items-horizontally-after-using-theme

           <ListBox.ItemsPanel>

<ItemsPanelTemplate>

<WrapPane Orientation="Horizontal"l></WrapPanel>

</ItemsPanelTemplate>

</ListBox.ItemsPanel>

无法正常横向显示,原因应用了Theme,修改对应的Theml.xaml

<ControlTemplate TargetType="{x:Type ListBox}">
<Grid>
<Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2" Background="{DynamicResource ControlBackgroundBrush}" />
<ScrollViewer Margin="1" Style="{DynamicResource NuclearScrollViewer}" Focusable="false" Background="{x:Null}">
<StackPanel Margin="1,1,1,1" IsItemsHost="true" />
</ScrollViewer>
</Grid>

修改 StackPanel to an ItemsPresenter:

<ItemsPresenter Margin="1,1,1,1"/>






posted @ 2012-01-14 20:10 I'm CY 阅读(10) 评论(0) 编辑

2012年1月5日

webForm 页面中使用session要注意的事项

在最近的项目中,为了方便使用于是在Page的构造函数中使用了session,却发现session总是为null,这是因为在构造函数中,asp.net的处理机制Session还没有构造出来,所以异常。

 

将处理程序移到Form_Load中,问题解决。

posted @ 2012-01-05 22:05 I'm CY 阅读(8) 评论(0) 编辑

2012年1月1日

2012

2012就这么来了,2011就这么走了

开始新一个轮回

posted @ 2012-01-01 19:49 I'm CY 阅读(3) 评论(0) 编辑

2011年11月17日

名正言顺

摘要: 《重构》里面提到的小方法编程里面的接口,对象领域模型的各种概念大到社会的各个地方,都有名字,《有关部门》只所有神秘、复杂,不就是因为太抽象了嘛你给我一个名字,我给你一个思路------编程从命名开始阅读全文

posted @ 2011-11-17 11:19 I'm CY 阅读(4) 评论(0) 编辑

2011年9月8日

OrderId改如何选择?

摘要: OrderId排序字段,最近包括以前用到的项目都是int类型,一直没什么感受,昨天的项目确实感到用int类型那是相当的不方便。 排序的时候我们一般按照一定的模式进行编排,这个模式很象树状结构,想想部门列表其实就是这个样子了。一般情况下我们不需要注意什么,但是当记录很多,时不时需要插入一些排在前面的信息时,用Int类型如果提前编排好还行,如果编排不好,要用的编号被占用,那就有够处理。 用Num...阅读全文

posted @ 2011-09-08 13:48 I'm CY 阅读(8) 评论(0) 编辑

2011年9月2日

《软件架构师应该知道的97件事》

摘要: http://blog.csdn.net/jpr1990/article/details/6743033本书译者SeanBV(他的CSDN博客)整理,推荐给大家。1.客户需求重于个人简历(Nitin Borwankar)客户需求至上。为了自己的简历更炫而采用新技术是沽名钓誉,往往事与愿违。2.简化根本复杂性,消除偶发复杂性(Neal Ford)分析问题好比拨云见月、水落石出。3.关键问题可能不是出在技术上(Mark Ramm)团队同心,其利断金。4.以沟通为中心,坚持简明清晰的表达方式和开明的领导风格(Mark Richards)沟通应当言简意赅、详略得当,别拖泥 带水。5.架构决定性能(Ra阅读全文

posted @ 2011-09-02 16:48 I'm CY 阅读(8) 评论(0) 编辑

系统数据源连接对话框

摘要: DataConnectionDialog dialog = new DataConnectionDialog(); dialog.DataSources.Add(DataSource.SqlDataSource); dialog.SelectedDataSource = DataSource.SqlDataSource; dialog.SelectedDataProvider = DataProvider.SqlDataProvider; if (DataConnectionDial...阅读全文

posted @ 2011-09-02 14:37 I'm CY 阅读(4) 评论(0) 编辑

2011年8月31日

MVVM:ViewModel片段

摘要: public class ViewModelBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) { PropertyChangedEventHandler handler = this.PropertyChanged; if (handler != nul...阅读全文

posted @ 2011-08-31 22:54 I'm CY 阅读(11) 评论(0) 编辑

2011年8月18日

在C#中获取IronPthon2.7异常时的调用方法堆栈,调试使用。

摘要: IronPython.Runtime.Operations.PythonOps.GetDynamicStackFrames(e)阅读全文

posted @ 2011-08-18 13:12 I'm CY 阅读(8) 评论(0) 编辑

2011年7月29日

ReportViewer IIF 分母为零 CDBL

摘要: 1.VB中 它只会判断 分母是不是为0 而不会判断分母是不是为0.00 把分母用CDBL转换为0.00 后 就不会报错了1/0:异常1/CDBL(0):正常2.IIF(true,trueValue,falseValue)如果参数为表达式,程序首先会先计算三个参数的值。然后进行逻辑判断。阅读全文

posted @ 2011-07-29 17:30 I'm CY 阅读(29) 评论(0) 编辑

2011年6月26日

C# Access AVG Exception decimal 枚举值太大,不能适应96 位十进制。

摘要: decimal 的字段在Avg的时候报出异常:枚举值太大,不能适应96 位十进制。改为round(avg(value),2)问题解决。阅读全文

posted @ 2011-06-26 23:16 I'm CY 阅读(33) 评论(0) 编辑

2011年6月2日

极限编程[转][学习英文]

摘要: http://www.cnblogs.com/kavenmo/articles/53946.htmlAs we have explored in several issues of eAD, the two most pressing issues in information technology today are: 正如我们在eAD的若干期中探究的那样,当今信息技术中最迫切的两个问题是:How do we deliver functionality to business clients quickly?如何能快速地向商业用户交付功能?How do we keep up with nea阅读全文

posted @ 2011-06-02 17:48 I'm CY 阅读(34) 评论(0) 编辑

2011年4月13日

HTML Character Sets

摘要: HTML Character Sets Character sets determine how the bytes that represent the text of your HTML document are translated to readable characters. A Web browser interprets the bytes in your document acco...阅读全文

posted @ 2011-04-13 09:46 I'm CY 阅读(79) 评论(0) 编辑

2011年1月26日

.NET 实例化顺序

摘要: http://www.cnblogs.com/teamleader/archive/2011/01/25/1944810.html 你可能不知道的对象实例化顺序 猜猜下面这段代码的输入,我预计90%以上的人给不出正确的答案 voidMain(){ InitSeqBase x =newInitSeqChild();}publicclassInitSeqBase{ publicstaticNothi...阅读全文

posted @ 2011-01-26 09:46 I'm CY 阅读(26) 评论(0) 编辑

2010年12月8日

Matching Balanced Constructs with .NET Regular Expressions

摘要: http://weblogs.asp.net/whaggard/archive/2005/02/20/377025.aspx Matching Balanced Constructs with .NET Regular Expressions Brief Computer Science Theory Background In computer science aformal language...阅读全文

posted @ 2010-12-08 15:29 I'm CY 阅读(56) 评论(0) 编辑

2010年11月2日

Live Mail 报错 0x80048820 可能的处理方式

摘要: Server Error: 0x80048820Server: 'http://mail.services.live.com/DeltaSync_v2.0.0/Sync.aspx'Windows Live Mail Error ID: 0x80048820 ------------------------------ 登陆MSN,点击右上角”收件箱”(也许不用点击,只要登陆MSN即可)。 引起的...阅读全文

posted @ 2010-11-02 20:27 I'm CY 阅读(1546) 评论(1) 编辑

2010年10月31日

刘晏造船

摘要: 刘晏造船 刘晏于扬子置场造船艘,给千缗。或言所用实不及半,请损之。晏曰:“不然,论大计者不可惜小费,凡事必为永久之虑。今始置船场,执事者至多,当先使之私用无窘,则官物坚完矣。若速与之屑屑较计,安能久行乎?异日必有减之者,减半以下犹可也,过此则不能远矣!”后五十年,有司果减其半。及咸通中,有司计费而给之,无复羡余,船益脆薄易坏,漕运遂废。 产品经理应该好好思考一下这个故事。 软件产品目标:精确、...阅读全文

posted @ 2010-10-31 00:27 I'm CY 阅读(49) 评论(0) 编辑

2010年10月27日

简单文档不简单

摘要: 简单文档:记录程序算法或结构的文档,文档需要突出核心关键字,不要用Word,用MindManager等思维导图进行记录, 简单文档的优点: 1.全局把握:一目了然看到所有信息。 2.突出核心:几乎每一个节点都是一个归纳。 3.沟通依据:为多人沟通提供一个看的见的指导。 4.知识共享 5.理顺流程 6.理清思路 7.防止遗忘 8.变更简单阅读全文

posted @ 2010-10-27 21:47 I'm CY 阅读(66) 评论(0) 编辑

2010年10月21日

Linq 数据加载与缓存

摘要: 以下的描述都是同一个DataContext 1.通过提前检索数据提高循环查询的性能 原因:如果数据已经在DataContext中加载过,使用外键关系的对象将不会访问数据。 如果将红色部分注释掉,紫色部分的代码,每执行一次将访问一边数据库。2.通过LoadWith加载子表信息(具体参看MSDN)。不用LoadWith:不论是否执行加载红色部分的对象,紫色部分每次循环都会访问数据库。用了LoadWi...阅读全文

posted @ 2010-10-21 17:40 I'm CY 阅读(100) 评论(0) 编辑

2010年9月15日

利用DynamicExpression.ParseLambda实现Eval

摘要: 模拟实现,性能还不错,比DynamicInvoke性能好的多。 中间加了一次Convert,可以实现任何对象的属性的调用,也就是EvalEx.GetEval<Func<object, object>>方式 public static class EvalEx { public static T GetEval<T>(Type type, string pro...阅读全文

posted @ 2010-09-15 00:14 I'm CY 阅读(166) 评论(0) 编辑

2010年9月2日

生成下面的模块时,启用了优化或没有调试信息

摘要: 将提示到的“目录”下的文件全部删除,问题解决。阅读全文

posted @ 2010-09-02 09:44 I'm CY 阅读(108) 评论(0) 编辑

2010年9月1日

Decimal 格式化输出( 去掉多余的0和点)

摘要: [TestMethod] public void TestMethod1() { decimal a = 10; decimal b = 10.0m; decimal c = .0m; decimal d = 0.0m; decimal e = 0m; decimal f = 0.00001000m; var a1 = Format(a); var b1 = Format(b); var c1 =...阅读全文

posted @ 2010-09-01 17:25 I'm CY 阅读(369) 评论(0) 编辑

2010年8月26日

简单的xml序列化和反序列化

摘要: using System.Xml.Serialization;using System.IO;using System.Xml;using System.Text;namespace TestProject1.XML{ public class XmlRepository<TRoot> { string _FilePath; public XmlRepository(string fi...阅读全文

posted @ 2010-08-26 14:30 I'm CY 阅读(20) 评论(0) 编辑

计算执行的时间的代码

摘要: [代码] [代码] [代码] [代码]阅读全文

posted @ 2010-08-26 14:09 I'm CY 阅读(118) 评论(0) 编辑

2010年7月30日

Linq对象两种Insert方式.

摘要: public void One() { var db = new DataContext("connString"); var emp = db.GetTable<HR_Employee>().First(); HR_VoucherDetail detail = new HR_VoucherDetail(); detail.HR_Employee = emp; Assert.AreEq...阅读全文

posted @ 2010-07-30 12:30 I'm CY 阅读(78) 评论(0) 编辑

2010年6月14日

给表加上Code字段

摘要: 给表加上Code字段在信息系统的分析过程中可以参考财务里面的一些设计,所有的字典表,可用来选择的表(如员工、用户表、用户组表等)都可以附加一个字段Code,就像财务里的科目代码,当然Code字段需要加上唯一索引。这样的好处是为信息作一个归类,不但可以为用户的业务提供指导,在使用上也可以借助代码提高效率。部门表:IdCodeName101开发部20101研发部30102测试部用户组IdCodeNam...阅读全文

posted @ 2010-06-14 12:28 I'm CY 阅读(41) 评论(0) 编辑

导航

统计

公告

昵称:I'm CY
园龄:8年
粉丝:2
关注:8

搜索

 
 

常用链接

最新随笔

我的标签

随笔分类

随笔档案

相册

cnblogs

CSDN

其他BLOG

收藏

网络.Net源代码

最新评论

阅读排行榜

评论排行榜

推荐排行榜