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

原创作品转载请注明出处

班级:移动软件设计,学号:SA17225137,姓名:简洪昌

一。学习心得

    我本科是自动化的,虽然学习了一些C语言编程的内容,但是并没有专业、良好的编程习惯,也缺乏工程化的思想。为了弥补这些不足,选择了孟宁老师的高级软件工程。在线上课程:C编码实践篇中,我不仅对C语言编程有了更好的理解,也通过线上课程与课后作业将书本中软件工程的知识与实际的工程编程结合了起来。也对书本的内容有了更好的理解。孟宁老师作为中国科学技术大学软件学院的授课老师,认真、负责、专业、专注,对我们进行了基础与拔高并进的知识传授,是我得以开阔视野。课程中,孟宁老师演示了如何从一个简单的“Hello World!”小程序,结合githubCoding等代码托管平台,将模块化、函数的可重用性、Callback、线程安全、Makefile工程文件等优秀的编程思想贯穿其中,一步步将其实现成一个可重用的菜单子系统,由浅入深,循序渐进。

   在理论知识传授上,每周老师都会更新一个特定主题的课程,从代码风格规范到代码背后的软件工程相关的设计思想,结合作业要求的内容,围绕着我们所做的实践来进行理论讲解,教学效果显著。对于我这样跨专业的学生来说能更好的理解并学习,加以实践。

        我的收获有以下几个部分:

   代码风格规范。代码风格体现出程序员的专业素养,仿佛程序员的第二张脸。代码风格:简明、易读、无二义性。即代码不仅要能让计算机正确地识别,也要让程序员同行易于阅读,方便合作。好的编码习惯比如代码缩进固定4个空格、行宽适中、勤用注释、一条语句近做一件事、表达简单明确。

   模块化思想,将业务逻辑层和数据存储层分开,并注意信息的隐藏。了解了代码设计中的一些常见方法:KISS(keep it simple & stupid)、usingdesign to frame the code(matching design with implementation)、including pseuducode、不要和陌生人说话原则、“开-闭”原则(对扩展是开放的,对修改是封闭的)。以及一定要有错误处理。

   了解了接口的五个要素,接口的两个隐含属性:前置条件和质量属性。

   明确了可重入函数和不可重入函数,以及与线程安全的关系。

    学会Makefile工程文件的使用,并考虑其可维护性,makeMakefile的第一个目标all开始执行,大大方便了复杂编译命令的输入,提高效率

   线上实验部分则是将线上课程中传达的软件工程思想应用到实际编程之中,每次实践之后写一篇实验报告来巩固所得的知识。实验也使我熟悉了Linux系统的基本命令,学会使用版本库。每一节课程之后都对应一个实验,最终目的是应用课程中学习的知识实现一个“可重用的菜单命令行”。

二。实验报告与代码链接

    实验一:写一个hello world小程序

    实验报告:https://www.shiyanlou.com/courses/reports/1290116

    实验代码:https://github.com/17jhc/jhc/tree/master/lab1

    实验二:命令行菜单小程序V1.0

    实验报告:https://www.shiyanlou.com/courses/reports/1291365

    实验代码:https://github.com/17jhc/jhc/tree/master/lab2

    实验三:内部模块化的命令行菜单小程序v2.0

    实验报告:https://www.shiyanlou.com/courses/reports/129321

    实验代码:https://github.com/17jhc/jhc/tree/master/lab3

    实验四:用可重用的链表模块来实现命令行菜单小程序V2.5

    实验报告:https://www.shiyanlou.com/courses/reports/1295959

    实验代码:https://github.com/17jhc/jhc/tree/master/lab4

    实验五:用callback增强链表模块来实现命令行菜单小程序V2.8

    实验报告:https://www.shiyanlou.com/courses/reports/1298861

    实验代码:https://github.com/17jhc/jhc/tree/master/lab5

    实验七:将menu设计为可重用的子系统

    实验报告:https://www.shiyanlou.com/courses/reports/1304013

    实验代码:https://github.com/17jhc/jhc/tree/master/lab7

三。总结

        软件工程(C编码实践篇)这门课程,内容虽然很基础,但是这门课将我领进软件工程专业的大门,使我受益匪浅。孟宁老师匠心独运线上课程的安排以及线上实验的设置,将软件工程思想和C编码实战相结合,理论联系实际,一步步教授我们软件工程的思想并引导我们运用软件工程设计思想通过不断迭代,最终实现了一个功“可重用的菜单子系统”。这种教学设计方式有利于我们更好地掌握软件工程的思想。课程内容包含基础的软件设计体系和设计思想,使得我对软件工程有了更好的认识和理解。

    最大的收获就是对于代码规范的学习以及编程思想的理解,并通过实践得以更加牢靠的掌握。

    遗憾:课程时间太短,所学习的内容还是过少。

    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值