【杨羊 原创作品转载请注明出处《软件工程(C编码实践篇)》MOOC课程作业
http://mooc.study.163.com/course/USTC-1000002006 】
一、实验报告:
实验一:写一个hello world小程序
实验二:实现命令行菜单小程序v1.0
实验三:内部模块化的命令行菜单小程序V2.0
实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
实验六(测验):函数的可重入性(reentrant)及线程安全
实验七:将menu设计为可重用的子系统
二、代码库:
lab1 lab2 lab3 lab4 lab5 lab7
三、所学知识点总结:
在实验一中学习了linux系统的vim编辑器,以及github版本管理器。
在实验二中学习了代码的风格规范以及类型函数名等的命名规则等。
在实验三中学习了基本的模块化设计,将业务层逻辑层和数据存储层分离。
在实验四种学习了将数据结构抽出来独立成一个通用模块的技巧,用模块尽最大可能复用数据结构的代码。
在实验五中学习了使用callback函数增加模块的通用性,并学习了隐藏接口信息。
在实验六中学习了函数的可重入性和线程安全方面的知识。
在实验七中学习了将menu设计为可以重用的子系统, 并且知道了利用命令行参数argc和argv来处理命令参数。
四、学习总结:
七周的时间学习软件工程(c编码实践篇),它包括了视频教学和实验,通过这门课学习了c语言编码规范,模块化思想等。另外也通过这个机会学习了linux的一些基本操作和git版本管理器的使用。
最大的收获并不是码了多少代码,而是学习了一些规范,一些思想,我想这才是真正受用的地方。最大的遗憾就是这门课的开课时间只有七周,还有一些部分理解的不是很深刻,需要以后进一步的学习巩固。