中科大高级软件工程学习心得
2017-11-11 19:32
295 查看
1.对软件工程的理解及学习软件工程(C编码实践篇)的心得
由于本科是自动化专业,以前并没有接触到过软件工程方面的知识。通过本学期跟着孟宁老师学习了《高级软件工程》这门课,对软件工程有了一定的了解。首先,最开始介绍的是代码规范的问题。良好的编码规范可以促进团队的合作,减少不必要的阅读障碍。当然,也就避免了程序员之间的矛盾。
不仅如此,良好的代码规范还可以降低维护成本,在一些大的项目上,有利于寻找bug点和代码审查工作的顺利高效的推进。对于一个程序员自身来讲,更有助于自身的发展。其次,介绍了代码的模块化和可重用性层次,这是本课程的重点。大的软件系统分割到不同的模块来分别实现。在某种程度上可以减少系统的复杂性和重用性,同时注意可重用性可以避免一些无用功,可以使以前自己或者前辈们写过的代码重用到现在要写的程序里面,在代码可重用性层次上面要非常注重模块化程序接口的设计,尽量多考虑到以后可能会用到的一些接口。最后,介绍了一些线程安全的问题。现在的设备都是一些多线程同时运行的设备,样的代码在不同的场合下执行的结果有可能会不同。所以在以后的编程中会更加注重自己的代码质量。这是一个信息量很大的一门课,需要在今后的学习工作中慢慢来体会。
2.实验报告
实验一:写一个hello world小程序
学习使用github代码托管的方法,掌握了基本的git命令,并且在实验中练习了在Linux环境下编译语言程序。
实验楼报告:https://www.shiyanlou.com/courses/reports/1290468
实验二:命令行菜单小程序V1.0
通过实验,更加熟悉了linux下的程序操作,同时更加注重代码的规范,通过层次化的设计思想,有利于代码规范化。
通过实验过程中对代码的调试,发现规范格式有利于查看和分析代码,也有利于查找错误与修改。
实验楼报告:https://www.shiyanlou.com/courses/reports/1291256
实验三:内部模块化的命令行菜单小程序V2.0
本次实验在上次实验的基础上,运用模块化的思想,使之包容功能的变化,使代码的书写和设计更加合理。
加入了模块化的思想,将代码的业务逻辑和数据存储分离,提高代码的可重用性。
实验楼报告:https://www.shiyanlou.com/courses/reports/1292978
实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
这次实验中,设计了一个接口规范、通用的模块,并将它集成到我们的程序中,使得程序更加的模块化。
实现了用可重用的链表模块,提高了程序的可重用性和拓展性。
实验楼报告:https://www.shiyanlou.com/courses/reports/1295825
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
本次实验,学习了callback方式的使用,以此使得给用户提供的接口更加通用,使代码的可用性更高。
同时隐藏接口的信息,增强了代码的安全性。
实验楼报告:https://www.shiyanlou.com/courses/reports/1297142
实验六:函数的可重入性(reentrant)及线程安全
实验七:将menu设计为可重用的子系统
本实验通过完成了menu接口的编写,让我们对结构化程序有了更好的了解,在设计上可以适度地放出接口,使得代码的灵活性和健壮性更强。
Makefile文件能够避免编译程序时复杂的的指令输入过程, 把menu设计作为一个子系统的可重用接口设计,进一步改善了程序通用性。
使用getopt函数用来获取命令行参数,使得可以支持带参数的复杂命令。
实验楼报告:https://www.shiyanlou.com/courses/reports/1303431
github地址:https://github.com/xuchen22/xuchen
3.总结
高软课程中,不仅学习到了软件工程的思想,还进行了线下的实验深入理解Vue.js及其应用开发,提高了自己编码技巧。线下实验简单了入门了vue,并且搭建起来vue的运行环境,了解了Vue背后如何实现双向数据绑定的。本课程虽说很短,但是让我拓宽了眼界,了解了一些编写代码的新思路,为我今后的学习打下了良好的基础。
最后感谢孟宁老师安排了这样一门循序渐进、覆盖面广的课程,我会继续探索软件工程体系的更多知识。
徐晨+ 原创作品转载请注明出处 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006
由于本科是自动化专业,以前并没有接触到过软件工程方面的知识。通过本学期跟着孟宁老师学习了《高级软件工程》这门课,对软件工程有了一定的了解。首先,最开始介绍的是代码规范的问题。良好的编码规范可以促进团队的合作,减少不必要的阅读障碍。当然,也就避免了程序员之间的矛盾。
不仅如此,良好的代码规范还可以降低维护成本,在一些大的项目上,有利于寻找bug点和代码审查工作的顺利高效的推进。对于一个程序员自身来讲,更有助于自身的发展。其次,介绍了代码的模块化和可重用性层次,这是本课程的重点。大的软件系统分割到不同的模块来分别实现。在某种程度上可以减少系统的复杂性和重用性,同时注意可重用性可以避免一些无用功,可以使以前自己或者前辈们写过的代码重用到现在要写的程序里面,在代码可重用性层次上面要非常注重模块化程序接口的设计,尽量多考虑到以后可能会用到的一些接口。最后,介绍了一些线程安全的问题。现在的设备都是一些多线程同时运行的设备,样的代码在不同的场合下执行的结果有可能会不同。所以在以后的编程中会更加注重自己的代码质量。这是一个信息量很大的一门课,需要在今后的学习工作中慢慢来体会。
2.实验报告
实验一:写一个hello world小程序
学习使用github代码托管的方法,掌握了基本的git命令,并且在实验中练习了在Linux环境下编译语言程序。
实验楼报告:https://www.shiyanlou.com/courses/reports/1290468
实验二:命令行菜单小程序V1.0
通过实验,更加熟悉了linux下的程序操作,同时更加注重代码的规范,通过层次化的设计思想,有利于代码规范化。
通过实验过程中对代码的调试,发现规范格式有利于查看和分析代码,也有利于查找错误与修改。
实验楼报告:https://www.shiyanlou.com/courses/reports/1291256
实验三:内部模块化的命令行菜单小程序V2.0
本次实验在上次实验的基础上,运用模块化的思想,使之包容功能的变化,使代码的书写和设计更加合理。
加入了模块化的思想,将代码的业务逻辑和数据存储分离,提高代码的可重用性。
实验楼报告:https://www.shiyanlou.com/courses/reports/1292978
实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
这次实验中,设计了一个接口规范、通用的模块,并将它集成到我们的程序中,使得程序更加的模块化。
实现了用可重用的链表模块,提高了程序的可重用性和拓展性。
实验楼报告:https://www.shiyanlou.com/courses/reports/1295825
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
本次实验,学习了callback方式的使用,以此使得给用户提供的接口更加通用,使代码的可用性更高。
同时隐藏接口的信息,增强了代码的安全性。
实验楼报告:https://www.shiyanlou.com/courses/reports/1297142
实验六:函数的可重入性(reentrant)及线程安全
实验七:将menu设计为可重用的子系统
本实验通过完成了menu接口的编写,让我们对结构化程序有了更好的了解,在设计上可以适度地放出接口,使得代码的灵活性和健壮性更强。
Makefile文件能够避免编译程序时复杂的的指令输入过程, 把menu设计作为一个子系统的可重用接口设计,进一步改善了程序通用性。
使用getopt函数用来获取命令行参数,使得可以支持带参数的复杂命令。
实验楼报告:https://www.shiyanlou.com/courses/reports/1303431
github地址:https://github.com/xuchen22/xuchen
3.总结
高软课程中,不仅学习到了软件工程的思想,还进行了线下的实验深入理解Vue.js及其应用开发,提高了自己编码技巧。线下实验简单了入门了vue,并且搭建起来vue的运行环境,了解了Vue背后如何实现双向数据绑定的。本课程虽说很短,但是让我拓宽了眼界,了解了一些编写代码的新思路,为我今后的学习打下了良好的基础。
最后感谢孟宁老师安排了这样一门循序渐进、覆盖面广的课程,我会继续探索软件工程体系的更多知识。
徐晨+ 原创作品转载请注明出处 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006
相关文章推荐
- 中科大2017年秋季高级软件工程学习心得
- USTC高级软件工程课程学习心得
- 2017年秋高级软件工程学习心得
- 2017年中科大高级软件工程学习心得
- 中科大高级软件工程课程心得
- 高级软件工程学习心得
- C语言强化指针高级应用学习心得
- 《软件工程》学习心得
- 软件工程线上课程(C语言实践篇)学习心得总结
- <软件设计>高级软件需求分析学习心得一
- 网易云课堂--软件工程学习心得
- [Javascript 高级程序设计]学习心得记录12 DOM基础
- 《软件工程(C编码实践篇)》学习心得
- 软件工程学习理解与心得《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006
- [Javascript 高级程序设计]学习心得记录11 js的BOM
- [Javascript 高级程序设计]学习心得记录6 变量和作用域
- 《软件工程(C编码实践篇)-孟宁》学习心得汇报
- [Javascript 高级程序设计]学习心得记录7 引用类型(上)
- [Javascript 高级程序设计]学习心得记录4 基本包装类型
- 软件工程(C语言实践篇)学习心得总结