学习总结--《软件工程(C编码实践篇)》
2016-11-20 09:47
441 查看
于璇 + 《软件工程(C编码实践篇)》MOOC课程 http://mooc.study.163.com/course/USTC-1000002006
在具体实践过程中,我首先熟悉了实验楼的实验环境,在7次实验过后,也能够熟练地在linux环境下进行简单的操作。包括将代码上传至代码库等等。每次实验完成后,通过学习他人的实验报告,可以对自己的实验有更加深入的理解。孟宁老师对课程的讲解生动幽默,因而真的受益很多。
(2)在设计规范上,要保证代码是高内聚,例如一个函数只做一件事,一个模块只做一类事的,实现功能尽量用库函数;还有要遵循“不和陌生人说话”的原则,以保证除了类提供的接口,别人无法访问类的其他内容。合理使用数据结构、控制结构等来简化代码。
(3)在模块化的思想中,讲究高内聚低耦合,接口要规范,代码要注意通用性。
(4)在处理多线程问题中,需要关注函数是否是可重入的,使用互斥锁,读写锁以保证多线程安全。
(5)在子系统的设计当中,要设计出可重用的接口。
最大的收获是对软件工程项目索要考虑的问题有了清晰的理解。遗憾是还缺乏一次独立设计软件工程项目机会来锻炼自己。
http://git.shiyanlou.com/toyuxuan/shiyanlou_cs122
(1)实验报告一
实验一:写一个hello world小程序
https://www.shiyanlou.com/courses/reports/1244115
(2)实验报告二
实验二:命令行菜单小程序V1.0,具体要求参见视频
https://www.shiyanlou.com/courses/reports/1244908
(3)实验报告三
实验三:内部模块化的命令行菜单小程序V2.0
https://www.shiyanlou.com/courses/reports/1245551
(4)实验报告四
实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
https://www.shiyanlou.com/courses/reports/1246326
(5)实验报告五
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
https://www.shiyanlou.com/courses/reports/1246959
(6)实验报告七
实验七:将menu设计为可重用的子系统
https://www.shiyanlou.com/courses/reports/1248064
学习心得体会
软件工程这门课是软件工程专业的同学的必修课,在学习这门课之前,我对软件工程的理解就是一堆文档的堆砌,一些深不可测的概念。很荣幸学习了孟宁老师高级软件工程课,通过对线上的c编码实践的学习和实践,让我对曾经很抽象的软件设计的概念有了真切的体会。学习中我对一句话印象很深刻:当一个软件工程项目的代码部分完成了之后,你只完成了百分之二十的阶段。以前我总觉得做项目的过程中,写代码是最艰辛的部分,然而真正理解了软件工程的含义,我发现其实写代码只是将你所要实现的功能简单的实现出来,之后你要考虑到诸如代码风格的规范、模块化、安全性、接口的封装、信息的隐藏、程序员之间的合作性、与客户的沟通交流问题,以及软件的维护和测试等问题。因此,当把项目代码完成之后,仅仅是完成了万里长征的第一步。而c编码实践课正是通过一个命令行小程序的实现过程,来一步一步地讲授如何思考和完善你的项目。在具体实践过程中,我首先熟悉了实验楼的实验环境,在7次实验过后,也能够熟练地在linux环境下进行简单的操作。包括将代码上传至代码库等等。每次实验完成后,通过学习他人的实验报告,可以对自己的实验有更加深入的理解。孟宁老师对课程的讲解生动幽默,因而真的受益很多。
c编码实践的总结
(1)在代码的规范上,需要统一格式,例如函数和变量的命名方式等等。(2)在设计规范上,要保证代码是高内聚,例如一个函数只做一件事,一个模块只做一类事的,实现功能尽量用库函数;还有要遵循“不和陌生人说话”的原则,以保证除了类提供的接口,别人无法访问类的其他内容。合理使用数据结构、控制结构等来简化代码。
(3)在模块化的思想中,讲究高内聚低耦合,接口要规范,代码要注意通用性。
(4)在处理多线程问题中,需要关注函数是否是可重入的,使用互斥锁,读写锁以保证多线程安全。
(5)在子系统的设计当中,要设计出可重用的接口。
最大的收获是对软件工程项目索要考虑的问题有了清晰的理解。遗憾是还缺乏一次独立设计软件工程项目机会来锻炼自己。
实验报告和代码
代码库:http://git.shiyanlou.com/toyuxuan/shiyanlou_cs122
(1)实验报告一
实验一:写一个hello world小程序
https://www.shiyanlou.com/courses/reports/1244115
(2)实验报告二
实验二:命令行菜单小程序V1.0,具体要求参见视频
https://www.shiyanlou.com/courses/reports/1244908
(3)实验报告三
实验三:内部模块化的命令行菜单小程序V2.0
https://www.shiyanlou.com/courses/reports/1245551
(4)实验报告四
实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
https://www.shiyanlou.com/courses/reports/1246326
(5)实验报告五
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
https://www.shiyanlou.com/courses/reports/1246959
(6)实验报告七
实验七:将menu设计为可重用的子系统
https://www.shiyanlou.com/courses/reports/1248064
相关文章推荐
- 软件工程(C编码实践)学习总结——中国科学技术大学孟宁老师主讲!
- 软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结
- 软件工程(c编码实践篇) 学习总结
- MOOC课程:软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结【实验楼系列shiyanlou.com】
- 软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结
- 软件工程(C编码实践篇)学习总结