摘要:开发注意事项 1. 建表时,一定要选择好可能需要建索引的字段,而且尽量为多个字段建立 多列索引 而不是为每个字段建立单列索引,要不然后期数据量一大,查询将会非常慢 2. select where order by等sql关键字后最好接索引字段,要不然容易走全表查询,在编写sql语句时,可先使用exp 阅读全文
posted @ 2019-05-26 15:56 又见阿郎 阅读 (56) 评论 (0) 编辑
摘要:本博文仅仅是笔者自己的学习路线,归纳整理了一些好的设计模式资料。 1、策略模式 参考资料: "c 设计模式 策略模式"   "c 设计模式之策略模式" 定义是:封装一组算法,每个算法为独立的类,可以相互替代,因为它们有相似的行为。 策略模式主要是将产品共有的部分抽象出来,不同的行为据此抽象 阅读全文
posted @ 2019-05-14 11:52 又见阿郎 阅读 (166) 评论 (0) 编辑
摘要:由于之前的项目中自己突然想试试异步action,于是使用了一下,突然就对异步action的执行流程以及原理及其好处产生了兴趣,再参考了一些文章之后,就做了下归类。 我们可以不需要太深入的理解底层,但是最基本的执行流程以及作用我们还是要清楚地。 1、async/await在程序中的的执行流程/顺序:在 阅读全文
posted @ 2019-02-14 20:14 又见阿郎 阅读 (340) 评论 (0) 编辑
摘要:一直在关注研究.net下的并发处理,之前也发布过几篇文章,今天就都整理下。 使用BlockingCollection来做并发处理,同时增加并发队列来做并发处理时的退出判断: 你真的知道.NET Framework中的阻塞队列BlockingCollection的妙用吗? 项目开发中应用并发的一二事 阅读全文
posted @ 2018-02-15 20:04 又见阿郎 阅读 (251) 评论 (1) 编辑
摘要:abp中将生命周期事件抽象为4个接口: abp定义了一个模块生命周期接口,该接口只有两个方法,用于初始化和关闭。 这个接口的参数是IAbpModule接口的类型,也就是派生自AbpModule的模块类型。该接口有一个默认实现,是一个抽象类,主要是用于复用。 abp根据四个生命周期分别有四个类型,这四 阅读全文
posted @ 2019-10-05 16:50 又见阿郎 阅读 (22) 评论 (0) 编辑
摘要:条件语句重构分析 "策略模式重构条件语句" "状态模式重构条件语句" "多态重构条件语句" 其实这三种方式都是基于多态实现的,直接加上了各个的特性罢了。策略模式相比较状态模式,前者由客户端传入所有的选择项,而后在Context环境类中选择具体的选项、后者则是在Context状态管理器中根据客户端传入 阅读全文
posted @ 2019-07-23 22:32 又见阿郎 阅读 (43) 评论 (0) 编辑
摘要:相比较传统的工厂模式IFactory/Concrete Factory会反复引用并编译代码 但是作为开发人员,我们更希望的是少修改代码,尽量从配置着手也就是设计模式的根本原则之一:开放封闭原则。如果我要增加新的产品,那么修改就比较大了,对于业务来讲还是可以接受的。但是如果可以做到不修改代码是最好的。 阅读全文
posted @ 2019-07-11 23:35 又见阿郎 阅读 (53) 评论 (0) 编辑
摘要:状态模式重构条件语句 直接上代码: 客户端调用: 状态模式:当一个对象的内部状态改变时允许改变它的行为。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。 客户端通过SetAddress(对应状态模式中 阅读全文
posted @ 2019-07-07 10:21 又见阿郎 阅读 (66) 评论 (0) 编辑
摘要:首先,在C 中,多态的体现是什么?虚函数、抽象方法、接口。废话不多说,直接上代码: 我们抽象出来基类,将其改造为抽象类和抽象方法,使其在子类中重写各自的逻辑,而后具体的选择(也就是条件语句)交给客户端来处理。 就这么简单,细心的我们可以发现,这种多态的写法好像策略模式,没错!设计模式中绝大数的模式都 阅读全文
posted @ 2019-07-06 14:59 又见阿郎 阅读 (51) 评论 (0) 编辑
摘要:AssemblyBuilder和Activator两个类是DispatchProxy类实现动态代理以及AOP的根本,示例demo可参考 "DispatchProxy实现动态代理及AOP" 。AssemblyBuilder的命名空间是System.Reflection.Emit,没错就是你听过的Emi 阅读全文
posted @ 2019-06-20 17:53 又见阿郎 阅读 (64) 评论 (0) 编辑
摘要:DispatchProxy类是DotnetCore下的动态代理的类,源码地址: "Github" ,官方文档: "MSDN" 。主要是Activator以及AssemblyBuilder来实现的( "请看源码分析" ),园子里的蒋老大提供的AOP框架Dora的实现也是大量使用了这两个,不过Dispa 阅读全文
posted @ 2019-06-20 14:38 又见阿郎 阅读 (182) 评论 (1) 编辑
摘要:通过策略模式来重构优化代码里面的switch/case分支代码。极大程度上提高了程序的扩展性。当然,如果分支比较多,每次都需要新增加一个类,这的确是有点麻烦,可以考虑使用反射来实现。 代码: 调用: 参考: "使用策略模式重构switch case 代码" 阅读全文
posted @ 2019-06-05 18:26 又见阿郎 阅读 (83) 评论 (0) 编辑
摘要:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 观察者模式有四个角色:抽象主题、具体主题、抽象观察者、具体观察者。 抽象主题:把所有观察者对象的引用保存到一个聚集里,每个主题都可以有任何数量的观察者。 具体主题:将有关状态存入具体观察者对象; 阅读全文
posted @ 2019-06-03 21:10 又见阿郎 阅读 (496) 评论 (0) 编辑
摘要:开发注意事项 1. 建表时,一定要选择好可能需要建索引的字段,而且尽量为多个字段建立 多列索引 而不是为每个字段建立单列索引,要不然后期数据量一大,查询将会非常慢 2. select where order by等sql关键字后最好接索引字段,要不然容易走全表查询,在编写sql语句时,可先使用exp 阅读全文
posted @ 2019-05-26 15:56 又见阿郎 阅读 (56) 评论 (0) 编辑