这两天自己写个小应用的感受
摘要:这两天在写个小应用,主要是web上实现对各种琐事事情记录这方面的功能,倒是颇有一点儿小感受,正好也好久没有写点儿东东,总觉得有种小小的罪恶感~ 最大的一个感受就是要“简单”:其实,以前自己也看过很多这方面的文章和书籍,但那只是一种自己比较认同的观念,但却没有切身的体会,这次算是小小的体验了一把。一开始,自己虽然也是先大致勾画了应用的基本界面和功能,但在实现的过程中,以及和木瓜同学的交流中,发现其实很多东东都是“冗余的”,自己最应该关注的应该是“这东西到底能帮我干啥?”,于是,把那些自己认为有趣的,必备的,花哨的功能都做了个减法,结合自己以前的工作体会,往往是做加法的时候很容易,也很自然,但是做减法的时候往往要耗费N多脑细胞,所以一般情况下,是很少会涉及这方面的工作的,尤其是在任务的后期和维护阶段,加法是一种必然,已经很难在做减法了,因为成本甚巨~!
阅读全文
posted @
2011-08-31 21:02
酸甜西瓜
阅读(2042)
推荐(1) 编辑
改进C#代码之25:用事件模式实现通知
摘要:事件提供了一种标准的机制来通知监听者。.NET的事件模式使用了事件语法来实现观察者模式。任意数量的客户对象都可以将自己的处理函数注册到事件上,然后处理这些事件。这些客户对象不需要再编译期就给出。时间也不必非要有订阅者才能正常工作。在C#中使用事件可以降低发送者和可能的通知接受者之间的耦合。发送者可以完全独立于接收者进行开发。事件是实现广播类型行为信息的标准方式。
阅读全文
posted @
2011-08-18 14:35
酸甜西瓜
阅读(4042)
推荐(4) 编辑
处理一个棘手小bug后的一点体会
摘要:简单描述下俺要废话的背景吧,这几天都在排查一个bug:silverlight客户端应用中的某个控件,会因为多次操作而导致浏览器内存飙升,至于飙升的速度嘛,差不多操作半个小时后,浏览器估计就累死了……
阅读全文
posted @
2011-08-16 10:52
酸甜西瓜
阅读(1715)
推荐(1) 编辑
改进C#代码之24:通过定义并实现接口替代继承
摘要:1. 委托为我们提供了类型安全的回调定义。虽然大多数常见的委托应用都和事件有关,但这并不是C#委托应用的全部场合。当类之间有通信的需要,并且我们期望一种比接口所提供的更为松散的耦合机制时,委托便是最佳的选择。委托允许我们在运行时配置目标并通知多个客户对象。
阅读全文
posted @
2011-08-15 17:02
酸甜西瓜
阅读(444)
推荐(0) 编辑
改进C#代码之22:通过定义并实现接口替代继承
摘要:1.基类描述并实现了一组相关类型间共用的行为。接口则定义了一组具有原子性的功能,供其他不相关的具体类型来实现。二者均有其用武之地,但用处各有不同。接口是一种按契约设计的方式:一个实现了某个接口的类型,必须提供接口中约定的方法实现。抽象基类则为一组相关的类型提供了一个共用的抽象。使用类层次来定...
阅读全文
posted @
2011-08-12 16:23
酸甜西瓜
阅读(354)
推荐(0) 编辑
改进C#代码之21:限制类型的可见性
摘要:1. 并不是所有人都要看到所有的事情,你的每个类型也不都需要是公有的。在保证类型可以完成其工作的前提下,你应该尽可能地给类型分配最小的可见性。类型的可见性一般都没有你预料中的那么高。内部或似有的类也能实现公有的接口。所有的使用者都能访问到私有类型中公有接口定义的功能。
阅读全文
posted @
2011-08-10 17:47
酸甜西瓜
阅读(774)
推荐(0) 编辑
改进C#代码之20:保证值类型的常量性和原子性
摘要:经常会遇到一些需要保证常量值不能被外界修改的情况,当然,我们可以通过使用private set;的方式来保证内部成员属性不会被外界修改,但是,如果遇到了多线程的情况,可能还是保证不了常量内部数据值的一致性,下面把常用的三种常量定义方式罗列一下,且越往后的方式越使得常量的原子性更强:
阅读全文
posted @
2011-08-10 10:17
酸甜西瓜
阅读(2106)
推荐(0) 编辑