`
javatgo
  • 浏览: 1169241 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
文章列表
< 世界观的重生 >———————— 这本书叫《自适应软件开发》,封面上写着“尤其适用于紧张、高度竞争和经常变更的软件项目”,其实这是片面的,这本书所表达的思想应该是“适应于人类的一切活动,大则包括社会 ...
< 混乱边缘的繁荣 >————————— 书中是以“混沌”作为术语,我觉得有些拗口,所以改成“混乱”。 在现在的软件开发中,软件工程协会所制定的能力成熟度模型(CMM)被誉为圣杯,并在当今的世界中大行其道, ...
< 领导—协作 >——————— 我们生活的这个世界是一个强制秩序的年代,为了保持稳定,我们的领导人以发布命令的方式指使着我们,并对我们的日常活动进行控制。正规软件工程中的项目经理,也正如我们的大多数中 ...
< 预测—协作—学习 >—————————— 这是自适应的模型的。“预测—协作—学习”不断迭代,从而让团队不断进化,不断适应多变的环境。 [预测]——就是对目标做一个分析,给出一个大的方向,但不要太具体,但 ...
< 边角料 >————— 《自适应软件开发》是一本很晦涩的书,简直是很难读,我很同情翻译人员的痛苦,我相信即使是英文版的,也是难懂,对于书中的许多地方,我也是揣摩猜测。可能会和书中的内容大相径庭,这点可能类似于爱因斯坦的《相对论》这类思想高深的书,很难让人明白。不过当你忍着痛苦,细细得揣摩书中的思想和方法,并读完整本书后,你会发现这似乎不是一本软件工程的书,这好像是一本哲学书,并会为之有一种激动不已的感觉。并写下这篇文章,希望和大家共享,并希望和大家交流学习。 《自适应软件开发》它并不否定传统的软件工程,只是把原有的结构重新组织了一下。所谓戏法人人都会变,只是玩法不同。下棋的规则 ...
28、||和&&的语句执行顺序————————————条件语句中的这两个“与”和“或”操作符一定要小心,它们的表现可能和你想像的不一样,这里条件语句中的有些行为需要和说一下: express1 || express2 先执行表达式express1如果为“真”,express2将不被执行,express2仅在express1为“假”时才被执行。因为第一个表达式为真了,整个表达式都为真,所以没有必要再去执行第二个表达式了。 express1 && express2 先执行表达式express1如果为“假”,express2将不被执行,express2仅在e ...
16、把相同或近乎相同的代码形成函数和宏————————————————————— 有人说,最好的程序员,就是最喜欢“偷懒”的程序,其中不无道理。 如果你有一些程序的代码片段很相似,或直接就是一样的,请把他们放在一个函数中。而如果这段代码不多,而且会被经常使用,你还想避免函数调用的开销,那么就把他写成宏吧。 千万不要让同一份代码或是功能相似的代码在多个地方存在,不然如果功能一变,你就要修改好几处地方,这种会给维护带来巨大的麻烦,所以,做到“一改百改”,还是要形成函数或是宏。 17、表达式中的括号————————— 如果一个比较复杂的表达式中,你并不是很清楚各个操作符的忧先级,即使是 ...
11、出错信息的处理—————————你会处理出错信息吗?哦,它并不是简单的输出。看下面的示例: if ( p == NULL ){ printf ( "ERR: The pointer is NULL\n" ); }告别学生时代的编程吧。这种编程很不利于维护和管理,出错信息 ...
23、static的使用————————static关键字,表示了“静态”,一般来说,他会被经常用于变量和函数。一个static的变量,其实就是全局变量,只不过他是有作用域的全局变量。比如一个函数中的static变量: char*getConsumerName(){ ...
1、版权和版本———————好的程序员会给自己的每个函数,每个文件,都注上版权和版本。 对于C/C++的文件,文件头应该有类似这样的注释:/************************************************************************** 文件名:network.c** 文件描述:网络通讯函数集** 创建人: Hao Chen, 2003年2月3日** 版本号:1.0** 修改记录:*************************************************************************/ 而对于函数来 ...
6、if 语句对出错的处理———————————我看见你说了,这有什么好说的。还是先看一段程序代码吧。 if ( ch >= '0' && ch <= '9' ){ /* 正常处理代码 */ }else{ /* 输出错误信息 */ printf("error ......\n"); return ( FALSE ); } 这种结构很不好,特别是如果“正常处理代码”很长时,对于这种情况,最好不要用else。先判断错误,如: if ( ch < '0' || ch > '9' ){ /* 输出错误信息 */ printf(&quo ...
编程修养———— 什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了。 我认为好的程序员应该有以下几方面的素质: 1、有专研精神,勤学善问、举一反三。 2、积极向上的态度,有创造性思维。 3、与人积极交流沟通的能力,有团队精神。 4、谦虚谨慎,戒骄戒燥。 5、写出的代码质量高。包括:代码的稳定、易读、规范、易维护、专业。 这些都是程序员的修养,这里我想谈谈“编程修养”,也就是上述中的第5点。我觉得,如果我要了解一个作者,我会看他所写的小说,如果我要 ...
i++、++i、i=i+1、效率怎么样?看过一本书上说,i++比i=i+1好的地方是因为i=i+1中的那个1要占用一个寄存器,所以速度没有i++快,于是我想验证一下。另外,以前听说过Java中的“i=i++”得不到正确结论,也就是应该是“先累加再赋值”,但Java经过这种运算后,i值居然没有变化。所以在这里,想一并把这几个问题在C中验证一下。 =====================测试的C源程序==================== #01: #include <stdio.h>#02: #03: main()#04: {#05: int i=0, j=0;#06: i=i ...
最近我在做一个项目,其中要用到一个数据结构——Hash Table(哈希表),以前只有理论知识,现在实却发现很不简单,所以写下来和大家共分享。 我们知道,哈希表是一个固定大小的数组,数组的每个元素是一个链表(单向或双向)的头指针。如果Key一样,则在一起,如果Key不一样,则不在一起。哈希表的查询是飞快的。因为它不需要从头搜索,它利用Key的“哈希算法”直接定位,查找非常快,各种数据库中的数据结构基本都是它。但带来的问题是,哈希表的尺寸、哈希算法。 哈希表的数组是定长的,如果太大,则浪费,如果太小,体现不出效率。合适的数组大小是哈希表的性能的关键。哈希表的尺寸最好是一个质数,最小的质数尺寸是 ...
比如在一个项目中,有大量的数据结构,他们都是双向链表,但又想共用一套对链表的操作算法,这怎么做到呢,C中又没有C++中的继承,不然我可以继承一父(类中只有两个指针,一个向前一个向后),而其算法可以写在你类中的虚函数中,供子类使用。如: class Links{public: Links* back; Links* forword; virtual Add(){ ... }; virtual Del(){ ... }; virtual Ins(){ ... }; virtual Print() =0; .... }; 于是对于特定的数据结构我们可以:class mylinks : pub ...
Global site tag (gtag.js) - Google Analytics