《软件工程(C编码实践篇)》课程体会

       这段时间学习了网易云课堂上的《软件工程(C编码实践篇)》课程,以及在实验楼进行的实验过程,使我学习到了很多,在此写一篇博客进行总结。

       该课程是从一个命令行的菜单小程序出发,循序渐进,讲述了如何将程序模块化、复用代码、使用回调函数、线程安全、处理命令参数等等。

陈旭 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006
实验楼:https://www.shiyanlou.com/courses/122
代码库:http://git.shiyanlou.com/chenxu/shiyanlou_cs122

第一次实验

       从Hello World开始,一方面指引新手熟悉一下Linux实验环境,另一方面提到了git工具和vim编辑器的使用方法。

       实验报告地址:https://www.shiyanlou.com/courses/reports/642330

第二次实验

       使用C语言编写一个简单的命令行小程序,预设一系列命令及操作,运行时可以根据用户输入的不同命令进行输出。

       实验报告地址:https://www.shiyanlou.com/courses/reports/642844

第三次实验

       对上一次实验的命令行小程序进行模块化,将menu.c单文件分成两个.c文件(linklist.c与menu.c)和一个.h(linklist.h)文件,将数据和方法分离,使得部分代码可以重用。

       实验报告地址:https://www.shiyanlou.com/courses/reports/657327

第四次实验

       还是命令行小程序,不过这次将上次分出来的linklist模块替换为一个链表实现,链表是通用实现的方法,与该程序无关。实验过程中有些难点,具体可以参看实验报告。

       实验报告地址:https://www.shiyanlou.com/courses/reports/678914

第五次实验

       命令行小程序again,这次使用了callback(回调)函数的方法,在链表中的搜索功能中,允许调用者传入一个自定义的函数,指定搜索条件。

       实验报告地址:https://www.shiyanlou.com/courses/reports/707088

第六次实验

       这一次实验是给链表增加读写锁的机制,使之在多线程的情况下保证数据的完整性,使之成为线程安全的。我的另一篇博客对这部分做了更详细描述,感兴趣的请移步http://blog.csdn.net/cfa9106/article/details/49740835

       实验报告地址:https://www.shiyanlou.com/courses/reports/725254

第七次实验

       终极命令行小程序(可处理命令参数)。这一次实验指导了Makefile文件的编写和使用方法,并且给命令行小程序扩展了能处理命令参数(形如“help -l”的形式)的功能,使用的是getopt函数的方法。

       实验报告地址:https://www.shiyanlou.com/courses/reports/749297

对软件工程的理解

       软件工程是指导软件开发人员在应对开发大型软件时应该采取的策略,一般的程序员在管理超过两千行以上的代码时就会对系统失去掌控力,所以需要对系统模块进行解耦。首先将数据和操作分离开,一方面对数据进行封装,保护数据;另一方面减少操作文件的长度。之后可以将反复使用的代码功能封装成一个可复用的模块,变成一个单一的操作过程,需要的时候调用一下。最后可以考虑线程安全、功能扩展等,有了之前对代码的模块化处理,这些工作就会比较简单,改动代码就不会对整个系统造成不可挽回的灾难。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值