软件工程(C编码实践篇)学习总结
李珺(咖啡机)《软件工程(C编码实践篇)》MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006
在这过去的九周时间里,在 易云课堂完成了对《软件工程(C编码实践篇)》这门课程的学习,感觉收获颇丰,获益匪浅。
通过整个课程的学习,动手实现了一个完整的menu小项目。通过这次的课程,掌握了一些基本的Linux操作和命令,学会了利用git工具进行版本控制,同时越来越注意规范编码的规范性,培养起良好的代码习惯。此外,也基本掌握了软件工程中模块化设计的思想,学习了接口设计的一般思想,并深入了解了线程安全和可重入的机制,这些对于日后的开发工作中均有很大的帮助,提高开发效率。
下面将本次课程的实验内容,做以收录汇总。
实验内容
-
实验一:写一个hello world小程序
- 写一个hello world小程序
- 在Linux命令行环境(实验楼)使用C语言编写,编译后执行输出”Hello,World!”
-
实验二:命令行菜单小程序V1.0
- 实现一个命令行的菜单小程序,执行某个命令时调用一个特定的函数作为执行动作,实现的命令个数不少于8个
- 类似ftp的help目录或者bash的help目录
- 程序循环、接收用户的命令,如help、others等命令
- 可以广泛通用的命令行菜单子系统组件,可方便地定制而嵌入到其他系统
-
实验三:内部模块化的命令行菜单小程序V2.0
- 注意代码的业务逻辑和数据存储之间的分离,即将系统抽象为两个层级:菜单业务逻辑和菜单数据存储
- 遵守代码风格规范,参考借鉴代码设计规范的一些方法;
- 代码的业务逻辑和数据存储使用不同的源文件实现,即应该有2个.c和一个.h作为接口文件
-
实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
- 用可重用的链表模块来实现命令行菜单小程序,执行某个命令时调用一个特定的函数作为执行动作
- 链表模块的接口设计要足够通用,命令行菜单小程序的功能保持不变
- 可以将通用的Linktable模块集成到我们的menu程序中
- 注意接口规范
-
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
- 给lab5-1.tar.gz找bug,quit命令无法运行的bug
- 利用callback函数参数使Linktable的查询接口更加通用
- 注意接口的信息隐藏
-
实验六:函数的可重入性(reentrant)及线程安全
测验内容
-
实验七:将menu设计为可重用的子系统
- 为menu子系统设计接口,并写用户范例代码来实现原来的功能
- 使用make和make clean来编译程序和清理自动生成的文件
- 使menu子系统支持带参数的复杂命令,并在用户范例代码中自定义一个带参数的复杂命令
- 可以使用getopt()函数获取命令行参数
整个课程的所有实验代码均存放在以下repository,如果有需求欢迎访问:
https://github.com/973301529/se
实验总结
总的来说,课程既讲了理论,又让我们动手实践,在实践中学习。在实际工作中,团队协作对于代码的阅读和接口的使用提出了更加规范的要求,孟老师在课程里面详细讲述了,如何去维持一个系统健壮性和可靠性,实现系统的可移植,可维护性。
过去自己面对一个问题时,自己对其的考虑是完全不够的,总有一些地方被忽略,但往往这些东西会变成之后程序的扩展和交接时的隐患。因此作为一个好的程序员,需要在设计时,注意科学地划分模块功能和设计接口,这也是今后工作内容中,自己需要积累经验的一个方向。这门课程学完后,我们意识到了这些,编程的路还是任重而道远,接下来的路还要自己不断的辛勤付出!
文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览113219 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!