您的位置:首页 > 其它

中科大高级软件工程学习心得

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  软件工程