华为软件训练营MOOC-C语言 Week1 学习笔记

来源:互联网 发布:知耻而后勇是什么意思 编辑:程序博客网 时间:2024/06/07 02:31

一、软件工程师未来之路

1、软件人员的主要技能包括需求能力、架构能力、设计能力、实现能力、验证能力和维护能力。
2、学习时间管理,不要解决一个问题两次;创造性头脑是无比珍贵的资源,不应该浪费在重新发明轮子上,尤其是还有很多迷人的新问题在那里等着你的时候;时间是宝贵的,共享信息,分享成果,这样可以让其他程序去解决新的问题,而不是永不休止的重复解决老问题。
3、基本技能
(1)从脚本语言开始:将以Python(JS,Ruby等)
(2)静态一门面向对象语言:建议Java/C#
(3)精通一门底层编码语言:建议C(汇编等)
(4)最好是把五种语言都学会了:Python、Java、C/C++、Perl和LISP
4、基础软件编码思想:自然、精简。
5、软件质量属性
(1)可维护性:关注如何减少代码的修改成本
(2)可测试性:关注如何降低发现bug的成本,以及如何提供bug的定位能力
(3)可靠性:关注怎么让代码不出问题,或者出了问题如何减低影响,如何修复
(4)性能:关注如何让代码跑得更高效
(5)简洁:关注如何让软件更容易适应变化
(6)可移植性:关注软件写出来以后,如何方便的移植到其他系统中。
6、重构优化遵循三个原则
(1)发现并解决问题,思考总结,在有更好的方法时,及时优化代码;
(2)扩展视野,积极主动的借鉴其他领域的至少与经验;
(3)将能力扩展到需求分析、架构设计、高层测试、现网维护,积极主动承担更多的内容,在实践中培养对软件的深刻理解和优化能力。
7、学习成长路线

二、C语言编程规范

2.1 编程规范导论

1、编程规范是程序员的基本功,代码是程序员的表达方式,编程规范也是程序员的修养。
2、软件开发过程

3、模块:模块是从系统中分解出来的,独立完成制定的功能。
4、头文件描述了模块的接口和接口的使用方法。
5、模块的组成
(1)数据,这是模块的核心,讲的是“我是谁”
(2)头文件,用了暴露接口的,讲的是“我能做什么”
(3)算法实现,承载逻辑,用来处理数据,讲的是“我是怎么做的”

2.2 头文件

1、编译过程

2、三大原则(设计层面)
(1)头文件钟适合放置接口声明,不适合放实现
(2)头文件应当职责单一
(3)头文件应该向稳定方向包含
3、八项规则(编码层面)
(1)只能通过包含头文件的形式引用接口,禁止extern
(2)禁止头文件里定义变量
(3)禁止extern “C”钟包含头文件
(4)总是编写内部的#include保护符
(5)头文件应该自包含
(6)禁止头文件循环依赖
(7)禁止包含使用不到的头文件
(8)每一个c文件应有一个同名的h文件,用于声明对外接口

2.3 函数

1、函数的优点
(1)降低复杂度,易于思考
(2)便于协同开发
(3)代码复用,减少代码量
(4)封装变化
(5)良好的可移植性
2、Good code is not bad code!

2.4 函数的编程规范

1、圈复杂度小于7
2、拇指姑娘-矮-巨大-函数
3、拇指姑娘-瘦-多层-嵌套
4、职责单一
5、抽象层次单一
6、参数不超过3个
7、避免重复
8、避免重入问题
9、不要返回局部变量

2.5 语句

1、基本类型:char,boolean,short,int,long,float,double。
自定义类型:
typedef unsighed char uchar;
typedef struct tag_student{
int id;
}
2、内存的分划与管理

2.6 常见问题

1、栈

2、堆

3、类型强制转换

4、整数溢出

0 0
原创粉丝点击