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

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

真实姓名:夏雪松(与最后申请证书的姓名务必一致) + 原创作品转载请注明出处 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006
C编码实践篇强化实践能力训练,从学生较为熟悉的编程训练入手,以范例演示基本编码规范、 No Design时的代码、经过基本Modularity (also called separation of concerns)设计的代码、writing code to make it reusable on future projects以及一些特殊的接口设计如callback函数和函数的可重入性(reentrant)及线程安全等较深入的设计问题;这是课程的第一部分C编码实践篇,重实践,形成对软件工程直观感性的认识.
实验一:熟悉Linux实验环境;要求 实验一:写一个hello world小程序。

[ 实验报告链接 ]+ [ 代码库链接 ]

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

[ 实验报告链接 ]+ [ 代码库链接 ]

实验三:内部模块化的命令行菜单小程序V2.0
实现内部模块化的命令行菜单小程序V2.0
注意代码的业务逻辑和数据存储之间的分离,即将系统抽象为两个层级:菜单业务逻辑和菜单数据存储
要求:1)遵守代码风格规范,参考借鉴代码设计规范的一些方法;2)代码的业务逻辑和数据存储使用不同的源文件实现,即应该有2个.c和一个.h作为接口文件。
[ 实验报告链接 ]+ [ 代码库链接 ]

实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
用可重用的链表模块来实现命令行菜单小程序,执行某个命令时调用一个特定的函数作为执行动作;
链表模块的接口设计要足够通用,命令行菜单小程序的功能保持不变;
可以将通用的Linktable模块集成到我们的menu程序中;
接口规范;
[ 实验报告链接 ]+ [ 代码库链接 ]

实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
给lab5-1.tar.gz(在实验楼Linux虚拟机环境下~/se_files/目录下)找bug,quit命令无法运行的bug
降lab5-1.tar.gz中的代码(即解压后lab5.1/目录下的源文件)直接放到Code/shiyanlou_cs122/lab5/目录下继续完成后面的实验内容
利用callback函数参数使Linktable的查询接口更加通用
注意接口的信息隐藏
[ 实验报告链接 ]+ [ 代码库链接 ]

实验六(测验):函数的可重入性(reentrant)及线程安全

[测试链接 ]

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

为menu子系统设计接口,并写用户范例代码来实现原来的功能
使用make和make clean来编译程序和清理自动生成的文件
使menu子系统支持带参数的复杂命令,并在用户范例代码中自定义一个带参数的复杂命令
[ 实验报告链接 ]+ [ 代码库链接 ]

作为刚刚开始进行软件编程的我来说,感觉有很多困难,除了最基本的语法以外就是不清楚程序最基本的代码规范,最基本的语法通过相应的训练正在逐渐学习,但是前几天同学一句“你的代码不用看内容,一看格式就不专业”作为之后要进入软件行业,并以之为生的我来说,具备最基本的代码风格规范,尤为重要,经过半个学期的训练,下面我将对我学到的一些东西加以总结,既方便自己之后回顾,也可以给那些像我一样的小白们一些帮助,大神勿喷。
如高软课上所讲,当前的公司开发软件特别是大型软件的时候,会发生人员的流动,如何在人员流动以后保证软件开发的持续进行,这对代码风格的规范提出了要求,因为开发人员必须能够对已开发的程序完全了解才能在原来的基础上上继续开发,这对代码的规范性,可读性提出了要求。下面书归正传。
编码风格(coding style)很容易会和编码规范(coding standard)混为一谈,因为这两个词经常会被人换着使用。我认为,编码规范同时包括了编码风格和其它规范,不仅仅指代码格式。例如,像“返回成功/失败的函数应该用一个整数作为返回值”,这样的规则不属于编码风格。编码风格中的规则通常会涉及到下面这些主题:

  • 缩进

  • 空格的使用

  • Tab的使用

  • 注释

  • 命名习惯

  • 代码行长度

    语言特点风格,例如是否使用可有可无的分号。
    遵守编码风格有下面三个主要好处:

    1. 遵守编码风格使代码更容易维护,如果所有代码中大家使用同一种编码风格,这另外一个程序员快速的扫一眼陌生的代码,就能根据大家约定的编程习惯,推断出代码的作用。
    2. 编码风格使形成代码集体所有制,在整个代码库中坚持延用一种常用的编码风格,所以程序员都能更容易的理解、维护。
    3. 编码风格能消除纷争,每个程序员都对编码风格有自我认同,只要能达成一致,便于消除这种矛盾。

说完了好处那么我们应该遵循的一些基本的代码规范是什么呢?

下面介绍一些基本的规范:

1.排版:
程序快要采取缩进风格编写,缩进的空格数一般为4位;敲黑板啊!老师说过好几次!所以放在第一条。
相对独立的语句块,变量说明后要加空行;
程序块的分界符如(“{”和“}”)应各自独占一行,并处于同一列,同时引用它们的语句左对齐;
不要把多个短语句写在同一行,即一行只写一个语句;

2.注释:
注释必须做到清晰,准确地描述内容。对于程序中复杂的部分必须有注释加以说明。注释量要适中,过多或过少都易导致阅读困难。
文件头部应进行注释,主是必须列出版权说明,版本号,生成日期,作者,内容,功能,修改等,这一点我现在还没有做到,每次感觉写的代码太短就不想写,其实就是懒。
C语言中使用一组(/* … */)作为注释界定符。
注释内容尽量用英语方式表述。
注释应该出现在要说明的内容之前,而不应该出现在其后。
除了说明变量的用途和语言块末尾使用的注释,尽量不使用行末的注释方式

3.命名规范:
符号常量的命名用大写字母表示;
如果符号常量由多个单词构成,两个不同的单词之间可以用下划线连接。如:
define MAX_LEN 50

变量命名的基本原则:
可以选择有意义的英文(小写字母)组成变量名,使人看到该变量就能大致清楚其含义。
不要使用人名、地名和汉语拼音。
如果使用缩写,应该使用那些约定俗成的,而不是自己编造的。
多个单词组成的变量名,除第一个单词外的其他单词首字母应该大写。

4.其它一些小技巧和要求:
函数一般情况下应该少于100行,对于菜鸟们,刷什么微博,快滚去码代码,
函数定义一定要包含返回类型,没有返回类型加void

规则还有很多,刚才说的只是一小部分,此处先安利一篇老师推荐的博客
http://www.cnblogs.com/xinz/archive/2011/11/20/2255971.html,和一本名为《高质量C++/C编程指南高质量C++/C编程指南》的书,这本书中的前言部分的“编程老手与高手的误区”感觉可以让我们少走不少弯路,最起码不至于被某些大神们带跑偏,建议大家一读。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值