摘要:
今天下午做了这幅脑图,为便于显示,切成了四个部分,描述了我对架构师能力的基本理解。这四幅图不见得能阐述架构师能力的全部,但我尽量给出范围和有用的建议,希望能对大家有所启发和裨益。图一:本能力模型的基本角度。与爱立信人力模型做了一个对比,请注意没有涉及到与“个人内在素质”相关的任何部分。所以类似于诚信、坚韧、耐心等等这类素质不在讨论的范围之内。图二:个人特性图三:技术技能图四:对“技术技能”中“学会平衡设计”的补充 阅读全文
随笔档案-2007年06月
读《漂亮女上司》有感
2007-06-26 12:56 by 乱世文章, 169 阅读, 收藏, 编辑
摘要:
今天抽空阅读了《漂亮女上司》这本小说。故事很让我感动,主人公似乎就是我们这些刚入职场的毕业生的一个缩影,爱情,事业,亲情三者交织在一起,我 不知道我被那种东西感动了。我只有一个感觉,怎么书中的主人公离我这么近........主人公无疑在爱情,事业,亲情这三种关系中的处理方式让我感动,更让我感觉到做为年轻人特有的激情,在爱情方面他最终选择了自己的漂亮女上司,放弃了大学四年的女友,原因很简单,那就是主人公毕业后工作一段时间后跟以前的女友的感情发生了变化,一句话,人个有志。其实书从一开始就让我有一种感觉,那就是主人公会和女上司在一起,女上司实在太关怀他了。这确实有些太理想化了一点。他们的结合再正常不 阅读全文
C#排序算法 之 希尔排序
2007-06-25 13:35 by 乱世文章, 232 阅读, 收藏, 编辑
摘要:
usingSystem; namespaceShellSorter { publicclassShellSorter { publicvoidSort(int[]list) { intinc; for(inc=1;inc<=list.Length/9;inc=3*inc+1); for(;inc>0;inc/=3) { for(inti=inc+1;i<=list.Length;i+=inc) { intt=list[i-1]; intj=i; while((... 阅读全文
C#排序算法 之 插入排序
2007-06-25 13:33 by 乱世文章, 182 阅读, 收藏, 编辑
摘要:
usingSystem; namespaceInsertionSorter { publicclassInsertionSorter { publicvoidSort(int[]list) { for(inti=1;i<list.Length;i++) { intt=list[i]; intj=i; while((j>0)&&(list[j-1]>t)) { list[j]=list[j-1]; --j; } list[j]=t; } ... 阅读全文
C#排序算法 之 冒泡排序
2007-06-25 13:32 by 乱世文章, 188 阅读, 收藏, 编辑
摘要:
usingSystem; namespaceBubbleSorter { publicclassBubbleSorter { publicvoidSort(int[]list) { inti,j,temp; booldone=false; j=1; while((j<list.Length)&&(!done)) { done=true; for(i=0;i<list.Length-j;i++) { if(list[i]>list... 阅读全文
C#排序算法(1) 选择排序
2007-06-25 13:30 by 乱世文章, 220 阅读, 收藏, 编辑
摘要:
usingSystem; namespaceSelectionSorter { publicclassSelectionSorter { privateintmin; publicvoidSort(int[]list) { for(inti=0;i<list.Length-1;i++) { min=i; for(intj=i+1;j<list.Length;j++) { if(list[j]<list[min]) min=j; } intt=list[... 阅读全文
高质量c/c++编程-附录
2007-06-21 14:57 by 乱世文章, 156 阅读, 收藏, 编辑
摘要:
附录A :C++/C代码审查表 文件结构 重要性 审查项 结论 头文件和定义文件的名称是否合理? ... 阅读全文
高质量c/c++编程(10)
2007-06-21 14:55 by 乱世文章, 128 阅读, 收藏, 编辑
摘要:
第10章 类的继承与组合对象(Object)是类(Class)的一个实例(Instance)。如果将对象比作房子,那么类就是房子的设计图纸。所以面向对象设计的重点是类的设计,而不是对象的设计。对于C++程序而言,设计孤立的类是比较容易的,难的是正确设计基类及其派生类。本章仅仅论述“继承”(Inheritance)和“组合”(Composition)的概念。注意,当前面向对象技术的应用热点是COM和CORBA,这些内容超出了C++教材的范畴,请阅读COM和CORBA相关论著。10.1 继承如果A是基类,B是A的派生类,那么B将继承A的数据和函数。例如: class A{public: voidF 阅读全文
高质量c/c++编程(11)
2007-06-21 14:55 by 乱世文章, 142 阅读, 收藏, 编辑
摘要:
第11章 其它编程经验11.1 使用const提高函数的健壮性看到const关键字,C++程序员首先想到的可能是const常量。这可不是良好的条件反射。如果只知道用const定义常量,那么相当于把火药仅用于制作鞭炮。const更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const是constant的缩写,“恒定不变”的意思。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议:“Use const whenever you need”。11.1.1用const修饰函数的参数如果参数作输出用,不论它是什么数据类型,也不论它采 阅读全文
高质量c/c++编程(9)
2007-06-21 14:54 by 乱世文章, 152 阅读, 收藏, 编辑
摘要:
第9章 类的构造函数、析构函数与赋值函数构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。 每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A产生四个缺省的函数,如 A(void); // 缺省的无参数构造函数 A(const A &a); // 缺省的拷贝构造函数 ~A(void); // 缺省的析构函数 A & operate =(const A &a);// 缺省 阅读全文
高质量c/c++编程(8)
2007-06-21 14:53 by 乱世文章, 176 阅读, 收藏, 编辑
摘要:
第8章 C++函数的高级特性对比于C语言的函数,C++增加了重载(overloaded)、内联(inline)、const和virtual四种新机制。其中重载和内联机制既可用于全局函数也可用于类的成员函数,const与virtual机制仅用于类的成员函数。 重载和内联肯定有其好处才会被C++语言采纳,但是不可以当成免费的午餐而滥用。本章将探究重载和内联的优点与局限性,说明什么情况下应该采用、不该采用以及要警惕错用。8.1 函数重载的概念8.1.1重载的起源 自然语言中,一个词可以有许多不同的含义,即该词被重载了。人们可以通过上下文来判断该词到底是哪种含义。“词的重载”可以使语言更加简练。例如“ 阅读全文
高质量c/c++编程(7)
2007-06-21 14:52 by 乱世文章, 142 阅读, 收藏, 编辑
摘要:
第7章 内存管理 欢迎进入内存这片雷区。伟大的Bill Gates 曾经失言:640K ought to be enough for everybody — Bill Gates 1981程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。7.1内存分配方式内存分配方式有三种:(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2) 在栈上创建。在执行函数时,函数内局部变 阅读全文
高质量c/c++编程(6)
2007-06-21 14:50 by 乱世文章, 157 阅读, 收藏, 编辑
摘要:
第6章 函数设计函数是C++/C程序的基本功能单元,其重要性不言而喻。函数设计的细微缺点很容易导致该函数被错用,所以光使函数的功能正确是不够的。本章重点论述函数的接口设计和内部实现的一些规则。函数接口的两个要素是参数和返回值。C语言中,函数的参数和返回值的传递方式有两种:值传递(pass by value)和指针传递(pass by pointer)。C++ 语言中多了引用传递(pass by reference)。由于引用传递的性质象指针传递,而使用方式却象值传递,初学者常常迷惑不解,容易引起混乱,请先阅读6.6节“引用与指针的比较”。6.1 参数的规则l 【规则6-1-1】参数的书写要完整 阅读全文
高质量c/c++编程(5)
2007-06-21 14:49 by 乱世文章, 154 阅读, 收藏, 编辑
摘要:
第5章 常量 常量是一种标识符,它的值在运行期间恒定不变。C语言用 #define来定义常量(称为宏常量)。C++ 语言除了 #define外还可以用const来定义常量(称为const常量)。5.1 为什么需要常量 如果不使用常量,直接在程序中填写数字或字符串,将会有什么麻烦?(1) 程序的可读性(可理解性)变差。程序员自己会忘记那些数字或字符串是什么意思,用户则更加不知它们从何处来、表示什么。(2) 在程序的很多地方输入同样的数字或字符串,难保不发生书写错误。(3) 如果要修改数字或字符串,则会在很多地方改动,既麻烦又容易出错。l 【规则5-1-1】 尽量使用含义直观的常量来表示那些将在程 阅读全文
高质量c/c++编程(4)
2007-06-21 14:48 by 乱世文章, 155 阅读, 收藏, 编辑
摘要:
第4章 表达式和基本语句读者可能怀疑:连if、for、while、goto、switch这样简单的东西也要探讨编程风格,是不是小题大做?我真的发觉很多程序员用隐含错误的方式写表达式和基本语句,我自己也犯过类似的错误。表达式和语句都属于C++/C的短语结构语法。它们看似简单,但使用时隐患比较多。本章归纳了正确使用表达式和语句的一些规则与建议。4.1 运算符的优先级 C++/C语言的运算符有数十个,运算符的优先级与结合律如表4-1所示。注意一元运算符 +-* 的优先级高于对应的二元运算符。 优先级 ... 阅读全文
高质量c/c++编程(3)
2007-06-21 14:47 by 乱世文章, 153 阅读, 收藏, 编辑
摘要:
第3章 命名规则比较著名的命名规则当推Microsoft公司的“匈牙利”法,该命名规则的主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。例如所有的字符变量均以ch为前缀,若是指针变量则追加前缀p。如果一个变量由ppch开头,则表明它是指向字符指针的指针。“匈牙利”法最大的缺点是烦琐,例如int i,j,k;floatx,y,z;倘若采用“匈牙利”命名规则,则应当写成int iI,iJ,ik;// 前缀 i表示int类型floatfX,fY,fZ;// 前缀 f表示float类型如此烦琐的程序会让绝大多数程序员无法忍受。据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书 阅读全文