最近,由于工作不太忙,下班后就想给自己找点事做。
就从一些基础的做起吧,
于是拿起了数据结构的课本,
想起了当时在学校的第一个实验题,
--两个带头节点的单链表多项式的乘法运算。
再写一次。
利用一些零散的时间,前两天完成了。
有实践就有收获!
在编写的过程中有一点收获:
在大一刚上C语言的时候,老师就讲了,“自顶向下”和“自底向上”的实现方法,
多项式的建立 | ||
多项式的加法(减法) | 多项式的排序 | |
多项式乘法 | 打印多项式 | |
某一项乘以多项式 | 销毁多项式 | |
这就正式一种简单的“自底向下”的实现方法,
体会一下,工作中很多时候可能都不自觉的使用了这种方法。
而在这两天的工作中,要实现一个功能模块菜单,
画window->画各个item->...->界面组织初始化->
->load 数据->消息处理(proc)->update->
->实现模块功能,
这样的一个过程,就分析设计时,正是一种“自顶向下”的方法,
在具体实现的时候,是一种“自底向上”的实现方法。
同时在编码的时候,也有一些收获:
在编码时,我觉得该不听的问自己一些问题,
提醒自己去做一些操作,
这样会无形中提高效率,减小出错的可能。
当然我体会到的,可能只是很少的一部分,有待今后的不断补充。
1、某一模块开始时,是否预先分析设计该有哪些小模块构成;
--自顶向下,各个子模块以便于实现为目的划分,
设计时要明确各子模块的功能,及参数,(参数在具体实现的时候根据需要可再做改动);
2、在具体编写代码时,是否考虑该模块的参数和返回值;
好的参数,便于调用;返回值明确,直指error:如:设计一套Error Code;
3、编写代码时,定义的变量,是否有初始化;
最好都初始化,特别是数组、指针和控制变量,有时候一些莫名其妙的结果
都是因为没有初始化引起的,而有些控制变量则可能导致该模块的执行出现异常;
4、是否有参数出错判断,对哪些参数需要进行出错判断;
5、申请空间后,是否用了memset初始化;
6、申请了内存空间,在模块结束的时候是否在适当的位置free了;
7、编写代码的时候,是否一直提醒自己要有编写代码的规范,直到成为习惯;
这些是从一个小小的实践中的一点收获,
在实践中善于思考,可能有以外的收获;
所以在今后的实践中,
要在思考中“温故”,
要在探索中“知新”;