代码编写箴言
文章平均质量分 53
boluo1982107
积极,勤政,不二过。
展开
-
代码大全 . 处理代码依赖关系 . 阶段性编程
本来在baidu blog上写文章,但是感觉怪怪的;在sohu上写文章,打开主页,发现全是花边新闻,和我脑子中的技术思想格格不入——虽然csdn的blog实在很垃圾,不过看在用了这么久、好歹也是第一程序员网站的份上,还是回到这里来,做做下里巴人的事情吧!(vckbase的blog真可恶,让我半天找不到注册blog的地方!) 用断言或者错误处理代码来监察依赖关系在读到这一段的时候,我特别原创 2008-11-03 09:53:00 · 1218 阅读 · 0 评论 -
软件设计原则
单一职责原则-手机拍摄UFO效果不佳 就一个类而言,应该仅有一个引起它变化的原因。职责简单一些,复用更加轻松。 手机虽然可以拍照,但是效果很差。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏[ASD]。原创 2008-12-10 13:42:00 · 4653 阅读 · 1 评论 -
关于数据精度的问题
昨天和朋友聊到数据精度的问题,颇有感慨。 首先是《Java Puzzle》一书上的一个例子:如果采用double或者float类型的数据定义,在进行简单运算的时候,可能出现精度上的错误。比如:System.out.println(2.00- 1.10); 输出的结果将是0.89999999999999,而不是我们理论上的0.9。为什么呢?因为“并不是所有的小数都可以用二进制浮点原创 2008-12-11 08:22:00 · 1283 阅读 · 0 评论 -
有时间看看《boost源码剖析》
rt,不错的文章。原创 2008-12-09 20:01:00 · 694 阅读 · 0 评论 -
享元模式 X 资源共享 X 项目多也别傻做
享元模式(Flyweight),运用共享技术有效地支持大量细粒度的对象[DP]。#include #include using namespace std;class Flyweight{public: virtual void Operation(int extrinsicstate)=0;};class ConcreteFlyweight原创 2008-12-08 19:45:00 · 836 阅读 · 0 评论 -
命令模式 X 可撤销的操作 X 改善容易混乱的命令
#include class Reciver//与ConcreteCommand类是关联关系,实心箭头表示,被指向 {public: void Action() { cout"Reciver action"; }};class Command{protected: Reciver* pReciver原创 2008-12-08 12:30:00 · 820 阅读 · 0 评论 -
适配器模式 X NBA翻译 X 接口不一致
适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作[1]。[DP] 我们很容易在编程的时候想到使用这种方法,但是不会提到“适配器模式”。我们可能会说得比较麻烦:写一个新的类,继承旧的类,然后使用旧类的接口完成功能,将新类的接口定义成与现实环境一致的样子……原创 2008-12-08 08:41:00 · 640 阅读 · 0 评论 -
宁以non-member、non-friend替换member函数
有个class表示网页浏览器,现在要写一个函数用来清除浏览器的高速缓存区、URLs、cookies。请问是使用member函数好,还是使用non-member函数好? class WebBrowser{public: void clearCache(); void clearHistory(); void removeCookie原创 2008-11-29 09:04:00 · 1515 阅读 · 0 评论 -
返回值和返回引用
不应该返回局部变量的引用最好不要返回new出来的对象的引用:1,删除麻烦;2,引用无效了,操作者还得记住。对于第二条,示例代码如下。在这段代码中,由于使用了连加操作,程序生成了几个临时变量,而这些临时变量我们是看不见的,所以我们根本没办法释放它们,造成内存泄露:Complex_T& operator+(Complex_T const& lhs, Complex_T const&原创 2008-11-21 13:02:00 · 783 阅读 · 0 评论 -
C++编码规范
1,类型名的第一个字母大写,最后以_T结尾2,变量和函数名首字母小写,其后每一个单词的首字母大写,其它小写。3,全大写的函数名,和小写的函数名一样,不过是增加了错误处理而已,编译时用inline实现。4,指针用p开头或者用Ptr结尾。5,用前缀区分作用域:i_ (instance scope)、c_ (class scope)、g_ (global scope)、f_ (file原创 2008-11-21 09:04:00 · 691 阅读 · 1 评论 -
C++重读(转载)
http://chinaitpower.com/A200507/2005-07-27/176027.html 在不断的学习中,我们会注意到以前没有注意到的知识和细节。原创 2008-11-13 09:08:00 · 490 阅读 · 0 评论 -
代码大全 . 内务管理变量 . 要点
直线型的代码,允许嵌套,但是如果代码组织不好,围绕各段代码的方框就会交叠。(参见书上的图形)内务管理变量(housekeeping variables):用来检查代码中关键未知的顺序依赖关系。可以用好的子程序名、参数列表、注释、以及内务管理变量来让依赖关系变得更明显。如果代码之间没有顺序依赖关系,那就设法使得相关的语句尽可能地接近(就近原则:Principle of Proximity原创 2008-11-03 13:28:00 · 701 阅读 · 0 评论 -
变量命名的力量 . 代码大全 . 启示
1,x、x1、x2这样的变量永远是坏名字;2,名字应该具有描述性;3,名字应该有针对性:比如,在使用“特定日期”的场合,就不应该使用date这样简单的变量名;4,太长的变量名也不好;5,准确、直白的命名,往往是最明确的。“今日”就用today,虽然你可能创造出todayDate这样的词语,但是,非常明确! 短变量名的作用:我的感觉是:短变量“用完就死”,作用域非常有限,原创 2008-11-04 08:57:00 · 844 阅读 · 0 评论 -
初涉面向切面编程
在阅读《J2EE项目实训——Spring框架技术》一书的时候,对AOP的相关介绍吸引,特此对作者表示感谢。虽然对于书中的观点和实现方案未必完全赞同,总感觉有对于技术优点的吹嘘有“自夸”之嫌,但是书中所说问题确实具有普遍性,给出的意见也是有很强借鉴性的,故学而时习之、以待实践之检验。 AOP:Aspect Oriented Programming,Aspect直译为“方面”,在此译原创 2008-12-09 12:57:00 · 1253 阅读 · 1 评论