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

班级:软设4班 学号:SA17225449 姓名:杨双 网易云昵称:youyouyouyouyou
原创作品转载请注明出处
我的Github地址:https://github.com/ShuangYang516/programming001
《软件工程(C编码实践篇)》MOOC课程:http://mooc.study.163.com/course/USTC-1000002006
实验楼课程:https://www.shiyanlou.com/courses/122

一、学习心得:
本科专业是计算机科学与技术,学习的是C语言,其实学习过一些关于软件工程的一些知识,但是都只是类似于导论一类的基础知识,而要想成为一名合格的软件工程师,光懂得皮毛,而不应用于实践并且真实地深入了解到软件工程的思想和养成专业素养是远远不够的,深知自己的不足,所以我选择了孟宁老师的高级软件工程这门课程。虽然之前就已经学过一些关于软件工程的一些知识,但是在学习了这门课程之后,依然感觉受益颇丰,有很多的收获和心得。这门课的课程教授方式采取的是线上线下相结合的方式,线上网易云课堂加上线下的课堂讲授,老师的讲课风格非常的风趣幽默,通俗易懂,感觉很有意思,我还是很喜欢这种讲课风格的,而且尤其值得一提的是线下的作业也很循序渐进,非常适合初学者和想提升拔高的各位。
课程中,孟宁老师演示了如何从一个简单的“Hello World!”小程序,结合github、Coding等代码托管平台,将模块化、函数的可重用性、Callback、线程安全、Makefile工程文件等优秀的编程思想贯穿其中,一步步将其实现成一个可重用的菜单子系统,由浅入深,循序渐进。
在理论知识传授上,每周老师都会更新一个特定主题的课程,从代码风格规范到代码背后的软件工程相关的设计思想,结合作业要求的内容,围绕着我们所做的实践来进行理论讲解,我觉得教学效果要好于单纯的文本教学。
我觉得我的课程收获有以下几个部分:
一、理论知识:
1 代码风格规范:

  • 代码缩进4个空格;
  • 代码风格规范在团队协作和交流中有重要作用;
  • 行宽以前80,现在100;
  • 代码风格的原则:简明、易读、无二义性;
  • 不要把多条语句和多个变量定义放在同一行;
  • 注释使用英文,不要用中文,保持源代码是ASCII字符格式文件。

2 模块化思想 :

  • “开-闭”原则,对扩展是开放的,对修改是封闭的;
  • 业务逻辑层和数据存储层;
  • 将系统模块放在不同的源文件。

3 接口的五个要素:

  • Purpose:如函数名表明了接口的目的;
  • Preconditions:如接口函数调用前的准备条件;
  • Protocols:如参数和返回值的类型、指针所指的数据格式;
  • Postconditions:如返回值、printf函数接口的效果是在屏幕显示;
  • Qualityattributes如接口函数的执行时间限制;
  • 接口的两个隐含属性:前置条件和质量属性;
  • 明确了可重入函数和不可重入函数,以及与线程安全的关系。

4 Makefile工程文件

  • make 从Makefile的第一个目标all开始执行;
  • Makefile文件不支持空格代替Tab键;
  • Makefile工程文件也是代码,也要考虑可维护性。

二、线上实验
在线上实验的学习中,我更多的可以熟悉Linux系统的一些基本命令。每一节课程之后都对应一个实验,最终目的是应用课程中学习的知识实现一个“可重用的菜单子系统”,是一个循序渐进的过程。心得大概可以分为:
实验一:写一个hello world小程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值