摘要: 没有人可以一下就设计出良好的系统,系统的复杂性表现在很多至关重要的细节上,架构师必须对所涉及的技术了然于心,但这又何其容易?况且问题的处理并不是仅考虑正确的方向,并不是给进参数得到返回值那么简单,繁而复杂的是众多可能的结果。 思考着,重构着,并坚强着,牢记永恒不变的真理:封装变化点。 阅读全文
posted @ 2008-06-30 10:48 王弈博 阅读(260) 评论(1) 推荐(0) 编辑
摘要: 无意中看到网上有个线程安全单例模式这样的写法: public sealed class Singleton { private static volatile Singleton instance; private static object syncRoot = new Object(); private Singleton() {} ... 阅读全文
posted @ 2008-06-25 13:33 王弈博 阅读(630) 评论(2) 推荐(0) 编辑
摘要: 新配的机器总死机,频率为一天一次,烦人,虽然超了频,也就是把1.8G的E2160超到2.8G而已,和别人把1.6G的E2140超到3.4G的差远了,不至于出问题啊,内存也就DDR II 800跑在930而已,属于正常水平。无奈实在找不到原因,只好把频率恢复为默认。 以为这下该正常了吧,用了大半天,又死机了。散热不好?拆了机箱仔细检查了一下,一切都正常。火了,怎么会这样,索性不管了... 阅读全文
posted @ 2008-06-25 10:14 王弈博 阅读(381) 评论(6) 推荐(0) 编辑
摘要: 1。中间代码的每个方法在第一次运行时必然要编译为本地代码,这一步中间代码一定比本地代码多花时间。所以问题的关键转换为这一编译过程要花多少时间,JAVA我不清楚,不过.NET的表现还是非常好的。JIT编译器将中间代码编译为本地代码,这个过程的复杂度远远小于传统的编译器,因为很多相当耗时且困难的部分已经在“源代码-中间代码”阶段做完了,当你剖析一下CLR编译器编译出来的IL中间代码,你会发现这种... 阅读全文
posted @ 2008-06-24 21:10 王弈博 阅读(2213) 评论(3) 推荐(0) 编辑
摘要: 其实挺忙的, 但我这个人以前习惯不太好, 不肯花时间把平时想到的分析到的东西用文字总结一下, 总是认为记在脑子里就好了, 可是咱本来就挺笨, 挺爱忘记事情的, 经常是以前明明解决了的和想明白的问题再次碰到又要苦想一番. 所以现在决心宁愿放着手中的事情不做, 天塌下来也要总结总结! 异步方法的本质就是将任务放到另外一个线程上执行, 不过这么简单的概念放到WCF这种分布式环境中你就必... 阅读全文
posted @ 2008-06-19 13:42 王弈博 阅读(1430) 评论(4) 推荐(0) 编辑
摘要: RSACryptoServiceProvider提供的加解密算法实在够难用的, 无奈自己的项目需要使用, 网上也没找到能做到自动分段加解密的封装, 无奈自己写一个吧. 在此提供源代码, 希望能对为此苦恼的朋友有所帮助. /* Goal: * .NET内置的RSA算法太难用, 这里要实现一个自动分段加解密的封装. * * Design describe: * 本着实用... 阅读全文
posted @ 2008-06-19 11:43 王弈博 阅读(1509) 评论(0) 推荐(0) 编辑
摘要: 习惯了用LINQ的人一定用的很爽, 整天LINQ来LINQ去的, LINQ确实是很好的东西, 简洁, 方便, 最重要的是统一了数据的查询方式, 使得程序员不必关心数据的出处(绝对不关心数据的出处是不可能的, 但至少统一了查询方式, 统一了"项目接口"), 这一点对软件工程很有意义. 不过...........它是如何实现的呢?................... 恩... 阅读全文
posted @ 2008-06-18 19:41 王弈博 阅读(310) 评论(3) 推荐(0) 编辑
摘要: 代码注释与代码规范, 目的都是为了提高程序的可读性, 个人的原则是以代码规范为主, 代码注释为辅, 能用规范的变量名, 方法名等说明的问题就不需要额外的再添加代码注释. 详细说一下原因: 1. 如果你能让别人一看类名就知道这个类是干什么的, 一看方法名和参数名就知道怎么回事, 你还需要花上时间再去写和维护注释吗? 2. 软件工程和设计模式最基本的要求之一就是封装变化点, 这里的"变化... 阅读全文
posted @ 2008-06-18 12:29 王弈博 阅读(751) 评论(3) 推荐(0) 编辑