您的位置:首页 > 其它

软件工程(C编码实践篇)学习总结

2017-11-07 15:52 399 查看
叶家鸣 原创作品转载请注明出处《软件工程(C编码实践篇)》MOOC课程

http://mooc.study.163.com/course/USTC-1000002006

一、学习心得

我是一名非计算机专业毕业的学生,学习网易云课堂上软件工程这门课是想来提升自己的计算机编程能力。这门课的代码量并不算大,孟宁老师更关注的是将软件工程的思想教授给我们,让我们以后在面对复杂的工程问题时,采用软件工程的方法,做到高内聚低耦合、构件化软件开发以及关注点分离等等,能避免工程的过度复杂、毫无层次结构、过度耦合等设计问题,收获颇多:

代码风格规范。孟老师上课经常说,注意代码的编写规范,就能击败80%的程序员。代码风格规范就像一个人的长相一样,通过看你的代码风格就能大致想象出你是一个什么样子的人,养成好的代码风格以及规范会使我们事半功倍。需要项目组统一格式,注意代码风格的原则:简明、易读、无二义性缩进、命名、注释等代码编排的风格规范。

设计规范。在设计规范上,要保证代码是高内聚,例如一个函数只做一件事,一个模块只做一类事的,实现功能尽量用库函数;还有要遵循“不和陌生人说话”的原则,以保证除了类提供的接口,别人无法访问类的其他内容。同时要合理使用数据结构、控制结构等来简化代码。

代码可重用性与线程安全。在处理多线程问题中,需要关注函数是否是可重入的,使用互斥锁,读写锁以保证多线程安全。同时了解了函数的可重入性与线程安全之间的关系,可重入的函数不一定是线程安全的;可重入的函数在多个线程中并发使用时是线程安全的,但不同的可重入函数(共享全局变量及静态变量)在多个线程中并发使用时会有线程安全问题(可能是线程安全的也可能不是线程安全的);不可重入的函数一定不是线程安全的。

二、软件工程课程实验报告

实验一:写一个hello world小程序熟悉Linux实验环境(工欲善其事必先利其器),了解Linux下的一些基本的操作,在Linux环境下做开发可以让你彻底掌控你的开发设计,实验报告采用markdown进行书写,可以将自己的思路进行总结,为将来的软件工程开发打下良好的基础

实验二:命令行菜单小程序V1.0代码风格规范(简约而不简单),第一次自己动手实现一个命令行程序,通过这次实验学习了代码风格规范。“写代码要小步快跑不断迭代,罗马不是一天建成的”

实验三:内部模块化的命令行菜单小程序V2.0基本的模块化设计(Separation of Concerns),实现实验二的代码模块化

实验四:用可重用的链表模块来实现命令行菜单小程序V2.5可重用模块的接口设计(天王盖地虎),代码是一个不断迭代调试的过程-可重用的链表模块来实现命令行菜单小程序,通过本次实验会使你更加的了解到程序模块化设计的方便之处,在后期会更加方便的维护自己的代码等

实验五:用callback增强链表模块来实现命令行菜单小程序V2.8可重用模块的接口设计(callback函数),用callback函数实现的多态浅析并注意信息隐藏

实验七:将menu设计为可重用的子系统子系统的可重用设计(够用就好),把我们上几次做的命令行菜单通过老师讲的一些有用的方法做成一个可重用的子系统

三、总结

通过在软件工程这门课程的学习,收获最大的就是对软件工程有了一个系统的了解,并且学习到了它的思想。以前自己的专业也有过一些编程,不过主要是做科学计算,和软件工程的编程有很大的差别。现在自己编程的时候经常会自动地考虑到要不要模块化、要不要对接口加以改进,这也许就是我最大的进步。

个人感觉这门课已经做的很好啦,孟宁老师很用心也很幽默,讲那些思想的时候经常会用一些很通俗的例子来加以解释,上的时候一点也不觉得枯燥
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: