Thinking in my programming technology (最后更新: 08年3月31日)
为了便于整理, 将自己的关于编程方面的技巧、思想与经验总结如下:
遵守程度由弱到强 — ★到★★★
- 禁止直接使用类中的变量 ★★★
ps: 当代码达到300行以上,会把自己搞糊涂的,意想不到的BUG重重
w-eg: myClass.num = 1
r-eg: AddNum() {this->num++;} //功能函数 - 禁止变相的直接使用 ★★★
ps: 道理同上
w-eg:public setNum(int num)
{
this->num = num;
}r-eg:
//同示例1的r-eg
- 所有类拥有的成员变量要声明为private ★★★
ps: 防止破坏类结构 - 编写较大型程序时遵从顺序: ★★
类结构 – 类数据 – 框架代码编写 – 详细编写代码 – 完善框架 – 剩下细节的细节
ps: 类的结构肯定是设计不够完善的,如果时间允许,应该反复进行完善与修改框架及其类,尤其是新手时.. - 所有单独出现的数字必须用常量标识 ★★★
- (游戏编写) 构造函数中写new代码(可调用init方法), init函数中写初始化代码 ★★★
ps: 方便下一次初始化工作,而不会重新new(重新new会失去大量信息…) - (游戏编写) 主循环分别调用各对象update方法进行所有显示工作及少量逻辑工作, 按键响应函数控制玩家逻辑,不能直接控制显示 ★★★
ps: 逻辑与显示分离,意味着分别精心编码(状态机),但是update方法也参与了少量逻辑工作,游戏进程,AI…等,待修正 - 当程序编码过程中,出现复制和粘贴大片的代码(同一个工程内),后在修改相关的细节,这是应该考虑是否改变一个思路,把这一块封装为一个函数或者是一个类(相同与不同的关系),否则…. ★★★
ps: 如果大片代码Ctrl+C和Ctrl+V,这些代码如果要修改,或者出现BUG时,将会非常非常得痛苦…. - 当程序大量出现Swith中的Case语句和大范围的if-else语句,这是也应该考虑改变思路,封装为类或者函数 ★★
ps: 同第8条 - static不是为了编程方便而出现的,而是为了固定的意义出现的….请勿乱用
- 待加
如有错误之处,请指正…一起讨论的,嘿
=====================================================
转自: 代码大全2
某些语言更能表达编程中的各种概念。你可以将自然语言(如英语)和编程语言(如Java和C++)做一个类比。对于自然语言,语言学家Sapir和Whorf对“语言的表达能力”和“思考的能力”之间的关系提出了一个假说。Sapir-Whorf假说是,你思考的能力取决于你是否知道能够表达该思想的词汇。如果你不知道这些词汇,就无法表达出这种思想,甚至可能不能形成这种思想(Whorf 1956)。
程序员同样受到所用编程语言的影响。在一种编程语言中可用来表达编程思想的词汇,毫无疑问地决定了你将如何表达你的思想,甚至可能决定了你能表达什么样的思想。
编程语言影响程序员的思维的证据随处可见。典型的故事类似下面的样子:“我们用C++编写一个新系统,但是大多数程序员没有太多C++经验。他们具有Fortran语言背景。他们编写出能用C++编译的代码,但实际上编写的是伪装成C++的Fortran代码。他们扭曲C++来模拟Fortran的不良特性(例如goto语句和全局数据)并且忽略了C++丰富的面向对象能力。”这种现象多年来在整个行业当中随处可见(Hanson 1984, Yourdon 1986a)。
Language Descriptions
语言描述
某些语言的发展历史(和它的总体能力)很有意思。以下描述了现今最常见的若干种语言。
Ada
Ada是一种通用的高级编程语言,基于Pascal。它的开发受到美国国防部的资助,尤其适合实时及嵌入式系统。Ada强调数据抽象与信息隐藏,强制要求程序员区分每个类(class)和包(package)的公用(public)部分和私用(private)部分。选择“Ada”作为语言的名称,是为了纪念Ada Lovelace——一位数学家,大家将她尊为世界上首位程序员。2目前Ada主要用在军事、航天及航空电子系统中。
汇编语言
汇编语言——又称“汇编”——是一类低级语言,它的每条语句对应一条机器指令。因为其语句对应于特定机器的指令,所以一种汇编语言是针对一种特定处理器的——例如,针对Intel CPU或者针对Motorola CPU。汇编被认为是第二代语言。大多数程序员避免使用汇编,除非为了冲破“执行速度”或“代码大小”的限制。
C
C是一种通用(general purpose)的中级语言(mid-level language),它最初与UNIX操作系统紧密关联。C具有某些高级语言的特征,例如结构化的数据、结构化的控制流程、机器无关性以及一套丰富的运算符。它也被称为“可移植的汇编语言(protable assembly language)”,因为其中大量使用指针和地址,具有某些低级的构件(如位操作),而且是弱类型的(weakly typed)。
C语言是20世纪70年代在Bell Labs开发的。其最初设计为在DEC PDP-11小型机上使用,这种机器的操作系统、C编译器和UNIX应用程序全都用C编写。1988年,C语言的ANSI标准发布,该标准1999年又做了修订。在20世纪80年代和90年代,C语言是微型计算机和工作站程序设计的事实标准。
C++
C++是一种面向对象(object-oriented)的语言,基于C语言,它是20世纪80年代在Bell Laboratories开发的。除了与C兼容之外,C++还提供了类、多态、异常处理、模板,而且提供比C语言更健壮的类型检查功能。它还提供了一套内容广泛而强大的标准库。
C#
C#是一种通用的面向对象语言和编程环境,由Microsoft开发,语法类似C、C++和Java,它提供了大量的工具,帮助在Microsoft平台上进行开发。
Cobol
Cobol是一种像英语的编程语言,原本是为了美国国防部的使用在1959-1961年间开发的。Cobol主要适于商业应用,而且今天仍然是用得最广泛的语言之一,其流行程度仅次于Visual Basic(Feiman and Driver 2002)。这些年来Cobol一直在更新,已经包含了数学函数和面向对象的能力。“Cobol”是“COmmon Business-Oriented Language”(面向商业的通用语言)的首字母缩写。
Fortran
Fortran是第一个高级计算机语言,引入了“变量”和“高级循环”的概念。“Fortran”代表“FORmula TRANslation”(公式翻译),最早开发于20世纪50年代,而且有若干重要的修订版,包括1977年的Fortran 77,加入了块结构的if-then-else语句和字符及字符串处理功能。Fortran 90加入了用户定义的数据类型、指针、类,以及一套丰富的数组运算。Fortran主要用在科学和工程应用中。
Java
Java是一种面向对象的语言,语法类似C和C++,由Sun Microsystems, Inc.开发。Java设计为能在任何平台上运行,办法是将Java源代码转变为字节码(byte code),然后让后者在各个平台上的虚拟机环境中运行。Java广泛用于Web应用的编程。
JavaScript
JavaScript是一种解释执行的脚本语言,最初与Java略有关系。它主要用于做客户端编程,例如为Web页面增加简单的功能及在线应用程序。
Perl
Perl是一种处理字符串的语言,基于C和若干UNIX工具程序。Perl常用于系统管理任务,诸如创建生成脚本(build scripts),也用于生成及处理报表。它也可用来创建Web应用程序,例如Slashdot。“Perl”是“Practical Extraction and Report Language(实用摘要及报告语言)”的首字母缩写。
PHP
PHP是一种开源的脚本语言,具有与Perl、Bourne Shell、JavaScript、C类似的语法。PHP能在所有主要的操作系统上运行,用来执行服务器端的交互功能。它也能嵌入Web页面中,用来访问及呈现数据库信息。“PHP”原来代表“Personal Home Page(个人主页)”,现在代表“PHP: Hypertext Processor (PHP:超文本处理器)”。
Python
Python是一种解释性的、交互式的面向对象语言,能在多种环境中运行。它最常见的用处是编写脚本和小型Web应用程序,也支持创建更大型的程序。
SQL
SQL语言是查询、更新、管理关系数据库的事实标准。“SQL”代表“Structured Query Language(结构化查询语言)”。与本节列出的其他语言不同,SQL是“声明式”语言,意思是说,它不是定义一系列操作,而是定义某些操作的结果
Visual Basic
最初的Basic是20世纪60年代在Dartmouth学院开发的一种高级语言。BASIC是“Beginner’s All-purpose Symbolic Instruction Code(初学者通用符号指令码)”的首字母缩写。Visual Basic是一种高级的面向对象的可视化Basic语言,由Microsoft开发,最初设计是为了创建Microsoft Windows应用程序,它经过扩展,可以定制桌面应用程序(如Microsoft Office)、创建Web程序,以及其他应用。专家们报告说,在21世纪初期,使用Visual Basic的专业开发人员比用其他任何语言的都多(Feiman and Driver 2002)。
Trackback from your site.
(1)条评论
我是谁
| #
我简单看了以下你总结的内容.还不错.
回复