软件工程C编码实践记录

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

       经过三个月的学习,在老师的引导下,一步一步将一个so easy的命令行菜单小程序(skinny system)逐渐充实生长为一个具有可重用性的命令行菜单模块(full-fledge)成熟系统。

         一个软件模块从skinnysystemfull-fledge的过程是一个不断修改,不断演化的过程。在这个开发流程中,我们要考虑诸多方面:代码的风格规范、模块化的设计、可重入函数的设计、线程安全的问题等等。只有处理好这每一方面的问题,才能够设计出优秀的代码结构。

         结合软件工程这门课,以及实验楼上的亲自操作,我可以很快的把所学到的东西融入实践之中,而这又进一步加深了我对软件设计整个开发流程的理解。现对所学总结如下:

  1. 代码风格规范是一段代码是否优秀的最直观体现。简明、易读、无二义性是基本原则;缩进4个空格、行款100字符、类名、变量名的见名知意等是在编码过程中需要注意的细节。

  2. 一个代码的好坏,表现在代码是否具有良好的复用性,可靠性以及错误处理。而在这之中,模块化的设计思想是优化代码的关键武器。分离关注点,将代码分为业务逻辑层和数据存储层能够更好的实现包容变化。

  3. 接口定义了软件单元对外提供的服务,是实现代码高内聚,低耦合的关键。设计一个通用的接口要注意:参数的上下文信息、移除前置条件、简化后置条件。

  4. Call-back函数调用机制是我在这次学习过程中最大的一个收获点,从前一直是采用call-in的函数调用机制。这次通过学习,深刻理解了call-back回调函数的机制以及具体的使用方法,它是实现kiss(keep it simple & stupid)的重要途径。

  5. 函数的可重入性和线程安全是一段代码能够多线程运行的重要保证,通过pthread_mutex添加互斥锁可以有效的将不可重入函数转变为可重入函数,为线程安全提供实现基础。

     


以下是多次实验的实验报告及相关代码,在这里做个整理,方便以后的学习:

  1. 实验一:

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

    实验代码:http://git.shiyanlou.com/sa615379/shiyanlou_cs122/src/master/hello.c

  2. 实验二:

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

          实验代码:http://git.shiyanlou.com/sa615379/shiyanlou_cs122/src/master/lab2/menu.c

       3.  实验三:

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

          实验代码:http://git.shiyanlou.com/sa615379/shiyanlou_cs122/src/master/lab3

       4.  实验四:

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

          实验代码:http://git.shiyanlou.com/sa615379/shiyanlou_cs122/src/master/lab4

        5. 实验五:

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

          实验代码:http://git.shiyanlou.com/sa615379/shiyanlou_cs122/src/master/lab5/lab5.1

        6. 实验六:

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

            实验代码:http://git.shiyanlou.com/sa615379/shiyanlou_cs122/src/master/lab7  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值