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

来源:互联网 发布:手机优酷无网络连接 编辑:程序博客网 时间:2024/06/05 03:23

注:郑凤鸣+ 原创作品转载请注明出处 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006 



一、学习心得

    通过了十一周的线上课程学习,对于软件工程有了较为清晰的了解。课程内容主要可以分为两大部分:一、对于编程代码规范性的强调;二、对于代码模块化设计的教学。

    在代码规范性强调的部分,孟老师列举了一些编程中不良的编码习惯,并且提出了如何编程才能让他人更易读、易懂。总而言之,代码是写给人看的,所以需要遵循的最重要的原则就是:简明、易读、无二义性。只有养成了良好的编码习惯才能达到这个要求。

    在代码模块化部分,我们主要学习了基本模块化设计、可重用模块的接口设计、函数的可重入性和线程安全以及子系统的可重用设计等。其中基本模块化设计中提到了代码设计的基本原则,例如,代码中要进行数据隐藏,然后通过数据接口来进行调用。在可重用模块设计的部分,还学习了使用callback函数使得接口更加通用,这样可以让其他开发者在使用接口时更加方便简洁。最后在子系统的可重用设计部分,了解了虽然为了实现可重用,需要把子系统设计的更加通用,但是必须遵循够用即可不要太通用的原则。

    我认为整体课程内容较为紧凑,课程时间安排也很得当,学习起来不会枯燥乏味,也受益良多。


   

二、实验报告目录

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

      引言:在Linux命令行环境使用C语言编写,编译后执行输出"Hello,World!";

       https://www.shiyanlou.com/courses/reports/1290477

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

      引言:实现一个命令行的菜单小程序,执行某个命令时调用一个特定的函数作为执行动作,实现的命令个数不少于8个;

       https://www.shiyanlou.com/courses/reports/1291459

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

      引言:系统抽象为两个层级:菜单业务逻辑和菜单数据存储;代码的业务逻辑和数据存储使用不同的源文件实现,即应该有2个.c和一个.h作为接口文件;

       http://zine.la/article/58e28296acfc11e7990400163e0c1eb6/

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

     引言:用可重用的链表模块来实现命令行菜单小程序,执行某个命令时调用一个特定的函数作为执行动作;

      http://www.lofter.com/lpost/1f2092d2_11958abc

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

    引言: 利用callback函数参数使Linktable的查询接口更加通用;注意接口的信息隐藏;

      http://www.lofter.com/lpost/1f2092d2_11750a56

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

    引言:为menu子系统设计接口,并写用户范例代码来实现原来的功能;使用make和make clean来编译程序和清理自动生成的文件;

      http://www.lofter.com/lpost/1f2092d2_118968ac



三、课程总结

      虽然本科学习的是计算机专业,虽然课程在编程方面有诸多深入学习,但是对于编程的规范性却很少强调,对于软件工程的相关知识也知之甚少。显然,日后的工作中,对于这些的要求是必不可少的。在学习完了软件工程在线课程以后,对于软件工程中的诸多要点也有了更加深入的了解,在编程技能方面也有了更高一步的提升。同时,在上课的时候,孟老师也十分幽默,使得课程听起来不会感觉枯燥乏味。总而言之,是一门听了以后受益良多的课程。




























原创粉丝点击