4006-998-758
3000+课程任你选择
优雅代码养成指南
研发学院 精化测试代码 简化循环 代码形式
戴昊

现任创业AI公司研发技术总监负责带领团队研发计算机视觉、AI安防及大数据相关产品。15年+ 大型软件产品架构经验。曾为日本第一,世界第二的瑞穗银行(Mizuho Bank);世界第二大证券交易所 – 东京证券,五十铃汽车开发企业级系统。曾给深圳证券交易所,深圳证券,招商银行信用卡中心,平安金融,中国电信,DELL 讲授过企业级架构及重构与模式的课程。擅长企业级系统架构,领域驱动设计,重构与模式。


查看老师详情
课程内容


 

开篇

内容一:是什么让代码变得“更好”

1. 可读性基本原理
2.整洁代码的含义
3.高质量代码的关注点
4.优雅的代码 = 可读,整洁,高质量

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

代码形式的改进

 

 

内容一:将信息装进名字里

1. 选择专业的词

2. 避免使用像 tmp 这样泛泛的名字

3. 用具体的名字代替抽象的名字

4. 为名字附带更多信息

5. 名字应该有多长

6. 利用名字的格式类传递含义

内容二:不会误解的名字

1. Filter() 与 Clip(text, length)

2. 使用 first 和 last 来表示包含的范围

3. 使用 begin 和 end 来表示包含/排除范围

4. 给布尔值命名

5. 与使用者的期望相匹配

6. 实战:如何权衡多个备选的名字

内容三:代码审美学

1. 保持一致和紧

2. 用函数来整理不规则的代

3. 在需要时使用列对

4. 始终保持一个有意义的顺

5. 把声明按块组织起

6. 把代码分成“段落

7. 个人风格与一致性

内容四:该写什么样的注释

1.什么不需要注释
2.记录你的思路
3.站在读者的角度
4.让注释保持紧凑
5.避免使用不明确的代词
6.润色粗糙的句子
7.精确的描述函数的行为
8.用输入/输出例子来说明特别的情况
9.声明代码的意图
10.“具名函数参数“的注释
11.采用信息量高的词

 

 

 

 

 

 

 

 

 

简化循环和逻辑

 

 

 

 

 

 

 

 

内容五:把控制流变得易读

1. 条件语句中参数的顺序

2. if/else 语句块的顺

3. 三目运算

4. 避免 do/while 循

5. 从函数中提前返

6. 臭名昭著的 got

7. 最小化嵌套

内容六:拆分超长的表达式

1. 使用解释性变

2. 使用总结性变

3. 使用德摩根定

4. 滥用的短路逻辑

5. 实战:与复杂的逻辑战斗

6. 拆分巨大的语句

7. 简化表达式的创意方法

内容七:变量与可读性

1. 减少变量

2. 缩小变量的作用域

3. 只写一次的变量

4. 实战:变量优化

 

 

重新组织代码

内容八:抽取不相关的子问题

1. 例子:findClosestLocation()

2. 纯工具代码

3. 其他多用途代码

4. 创建大量通用代码

5. 项目专有功能

6. 简化已有接口

7. 按需重塑接口

8. 过犹不及

内容九:一次只做一件事

1. 任务可以很小

2. 从对象中抽取值

3. 大型的例子

内容十:把想法变为代码

1. 清楚的描述逻辑

2. 了解函数库是有帮助的

3. 把这个方法用于更大的问题

内容十一:少些代码

1. 别费神去实现你不需要的功能

2. 质疑和拆分你的需求

3. 保持小代码库

4. 熟悉你周边的代码库

 

 

 

 

精化测试代码

内容十二:测试与可读性

1. 使测试易于阅读和维护

2. 测试代码的问题

3. 如何使测试代码更可读

4. 让错误消息具有可读性

5. 选择好的测试输入

6. 为测试函数命名

7. 测试函数中的陷阱

8. 测试驱动开发

 

 

 

项目实战

内容十三:设计并改进“计数器“

1. 问题

2. 定义类接口

3. 尝试 1 – 一个幼稚的方案

4. 尝试 2 – 传送带设计方案

5. 尝试 3 – 时间桶设计方案

6. 比较三种方案


课程特点

本课程可以让程序员将以往格式凌乱、拖沓冗长的代码变得更具可读性,更整洁,更优 雅。编写程序不仅是去告诉计算机你要做什么,更重要的是让人明白,你想要让计算机去做 什么。 而编写简洁、清晰、美观、容易理解的代码,才能够让”人“容易明白自己的意图。


课程对象

只要是需要编写代码的人员,都适合本课程,有 C 语言,C++/Java 语言背景者更佳


返回上一级