接上篇。
7、 调用
调用在编程中是用的最多的语句之一,一般有系统调用、自编函数调用等等。调用的本质是逻辑模块的处理。这表明调用是一个模块,是一个功能语句的集合,同时,这个功能是一个逻辑划分,一般不可能将一个有联系的语句分成两个函数来调用。
关于调用我们要注意以下几点:
1) 如何进行自编函数的编写
2) 如何调用自编函数
3) 如何引用系统函数
4) 如何调用系统函数
5) 调用时要注意函数的参数类型和参数次序与定义相配
6) 调用时要注意函数的返回值:无值、有值、返回值的数据类型
7) 要特别注意自编函数中的指针参数的运用,不要指针溢出,导致函数出错。
8) 掌握如何将函数变为参数的方法,使得函数更加灵活。
9) 要了解松耦合函数的调用方法,尤其是掌握webservice的调用和动态调用。
8、 文件操作
文件操作在过去运用十分频繁,现在很多信息都存放到数据库之中了,文件操作的大部分工作都被数据库给取代了。但是,有关数据的后台处理,参数处理,输出结果等方面还是会用到文件的。文件操作的本质是对以文件形式存放的数据进行的操作。文件即可以作为操作的数据源、也可以成为数据处理的结果。
关于文件操作我们要注意以下几点:
1) 要知道文件的两个基本类型:二进制和ASCII。两种类型打开的系统函数是不一样的。两种处理体系是不一样的!
2) 要知道文件打开方式种类和应用范围:读、写、只读、只写等
3) 要知道文件操作基本功能:打开、关闭、读、写、偏移指针(定位)
4) 要知道流文件操作常用函数。
5) 要特别注意文件操作失败的返回值:打开失败!写失败(文件只读、权限不够、空间满等)
6) 了解大文件(大于4G)的处理方法
7) 由于xls文件的广泛应用,我们要特别要掌握相关xls的文件处理的读、写等功能的调用方法。
8) 掌握FTP的相关功能,并能引用和调用FTP。
9)如何解决大文件在传输没有结束时,就开始读此文件或重新传输的产生的问题。
9、 逻辑运算
逻辑运算一般用于条件表达式之间与或非等逻辑关系,程序中使用相对比较少,但是在应用的算法中则常常出现,尤其是在查询条件中,与操作用得最为广泛。逻辑运算的本质是事物之间的逻辑关系。逻辑运算仅仅是某种处理的条件和前提。其一般不能单独存在。
关于逻辑操作我们一般要注意:
1) 当出现多个条件时候,最好将条件组合成2大条件,使得程序逻辑性更强,更加可读。
2) 要了解当与操作运算时,当只要有一个条件为假的时候,整个表达式就得到假的结果。而不会把所有条件都运算出来!
例如:表达式为a>5&&b>6&&c>7&&d>8
如果a=1,则表达式的结果为假,并且程序不会再去运算b>6,c>7,d>8了。
如果,a=6,b=7,c=8,则程序一定要去运算d>8的。掌握整个道理我们可以把最容易为假的条件放在表达式最前面,可以提高程序的效率。
同理,当或操作运算时,当只要有一个条件为真的时候,整个表达式就为真,而不会所有条件都运算出来。
3) 学会利用逻辑运算符作为参数,动态生成查询中条件语句。
4) 学会通过循环语句语句自动形成与条件的表达式。
例如,我们查找以姓名和性别为条件同时成立的结果。
一般我们可以写成name=’王华’ and sex=’1’。
我们可以将name,sex放fld_name数组之中,将王华和1放在content数组之中。
通过对数组操作自动形成这个条件语句:
String exp=””;
For(int i=0;i<2;i++)
{
if(i==0)
exp=fld_name[i]+”=’”+content[i]+”’”;
else
exp=exp+”&&”+ fld_name[i]+”=’”+content[i]+”’”;
}
当我们的查询字段很多的时候,我们的程序就会很简洁很通用的。
10、 数据库访问
数据库是目前是应用软件中使用最多的技术,没有数据库的软件几乎不可想象,大型软件更是如此。数据库的本质是事物的量化集合以及相互关系。程序员不但要掌握数据库本身的功能,如数据库建立,表建立、索引建立、数据操纵语言的insert、update、select使用方法等最最基本要领,而且要掌握通过程序的方法访问数据库。
对访问数据库我们应该注意:
1) 我们如何访问数据库,访问数据库方式是什么,访问数据库需要什么参数。
2) 如何提交数据库操作命令、如何执行存储过程。
3) 如何获取数据库命令的返回值,了解返回值的意义。
4) 如何获取数据库命令的结果集,以及结果集存放方式,结果集的操作方法。
5) 学会用表名、字段名、字段个数、记录个数进行循环操作。
6) 数据库操作出错处理
7) 数据集和数据库的更新同步
8) 数据库事务处理。
9) 海量数据的处理方法(如何利用结果集与数据库之间的关系提高数据处理性能,其他处理方法不在此讨论)
至于数据库本身的一些技能就不在此谈论了。
11、 控件
控件大都用在人机交互的界面之中,当然还有很多不显示的功能控件。控件使用之广泛、之频繁是程序员遇到最多的对象。通常用的最多的是标签、文本框、命令钮、列表框、下拉框、表格等,人们通过拖拉拽进行操作。控件的本质是人机对话的媒介。当然还有可复用的对象使用的功能。
对控件我们一般要注意以下几点:
1) 要特别注意每个控件的特点和使用范围,学会准确使用控件。例如,文本框可以显示字符串,标签也可以显示字符串。但是,我们一般用标签控件显示常量而且是只读,用文本框显示变量而且可编辑。注意到这些区别之后,我们就可以正确选择我们的控件了。如果我们用文本框去显现一个标题的话,那我们就可能不恰当地使用了控件。
2) 我们要除了掌握拖拉拽给控件一个定位和大小之后,我们还要掌握对控件的属性进行设置,以及控件的事件进行编程。特别要了解每个事件触发的时机。
3) 要学会控件的数据绑定,尤其是和数据库的绑定和刷新机理。
4) 要学会如何对控件输入值进行合法性检查,确保输入数据的有效性。
5) 要学会对控件的只读、可编辑、显示/不显示的设置。
6) 要学会对系统控件的复用,尤其是下拉框控件。一般的下拉框很难满足显示汉字返回代码的功能,尤其是在显示框可以输入代码和汉字可以将满足条件的结果显示出来,供用户选择。例如,可以设计一个行政区划的下拉框,在框中输入110000或北京则返回110000。而普通的下拉框只能在3000多个行政区划中,按照行政区划代码次序来选择了。
7) 程序员可以尝试自己设计控件。
8) 掌握对于表格控件的数据绑定方法。尤其是大数据结果集的处理方法。
9) 掌握加载各种控件方法。
12、 类
类在编程之中广泛运用,一些语言和程序都是类的表现形式。对于程序员来说,一方面我们要学习面向对象的编程思想,另一方我们要学会定义类和使用类。类的本质是面向对象的抽象形式。有关类的内容很多例如封装、继承、多态等特性,但是程序员不要对类的丰富的功能所迷惑,要学会最基本的东西:一个是定义、编写、使用自己的类,另一个是学会引用使用系统的类和其他的类。
对类我们要注意:
1) 定义一个类,最主要的是定义类的属性和事件
2) 对类的属性赋值
3) 事件的编程
4) 类的继承
5) 类的引用
6) 类的调用
7) 特别注意类中函数的入口参数和返回值的设计。
13、 参数化
很多人都在谈参数化,认为参数化可以使程序具有更多的灵活性,扩展性。但是很少人知道什么是参数化,参数化的边界是什么?参数实现的方法是什么?
参数化本质是指解决事物变化的方法。其重要的内容是:第一如何将事物抽象为参数,第二,参数如何存放,第三,程序对参数的处理。
例如:打开一个数据库,为了适应数据库的变化,我们就要把数据库的用户名和口令抽象成参数。我们可以把用户名和口令放在config文件之中,在程序中,当打开数据库时,我们要从config文件中获取用户名和口令形成数据库连接串。通过这个连接串打开数据库。
当数据库的用户名和密码发生变化时,我们只要改变config文件中用户名和密码即可。
以上仅仅是参数化最简单的例子,其实参数化内容非常之多,关键要看程序员的视野和水平。
一般的程序员仅仅停留在函数参数中的参数化,其实,函数、数据结构、功能模块、软件构架都能参数化的,而且参数存放形式也多种多样,参数处理更是各人各异。有些参数还要考虑安全性。
简单的参数化是基础技能,但是复杂的参数化则是编程中的高级技能了。
很多复杂的算法和架构大都是由以上基本技能组合而成的,程序员将基础打好后,可以站这个基础上去构架更复杂的算法和写出更优秀的程序。
编程的基本技能内容很多,每个部分都可以谈出许多趣事和范例,每个部分都能独立成章节。但是,在这里我只能抛砖引玉,只是给程序员理一个思路和方法。其目的就是希望程序员重视基础技能,重视实用技能、要把大量时间用在这些技能上,把基础打好;就是希望程序员能改变只知道编程序,不问也不知道为何这样编程的现状。我希望程序员面对算法时,头脑首先想到的是一组基本技能,然后针对算法具体实现选择最合适基本技能,然后再去用这个技能去编程。这种方法可以提高程序员对理论重视程度,养成以理论指导编程的思路,改变自发地编程为自觉编程,这样我们程序员的编程水平才会有本质的提高。