Erlang 从零 · 第 31 课(展开目录)
01 · 先打开 erl02 · 先认常见 term03 · 分清两种文字04 · 变量只接一次05 · 拆开一列,再筛一次06 · 把文字安全变成整数07 · 用 case 选一条路08 · 让函数继续走09 · 把代码放进模块10 · 条件必须说真话11 · 一层一层取数据12 · 文字先说清编码13 · 让函数子句排好队14 · 带着累加器往前走15 · 先看值,再选路16 · 给模块立规矩17 · 让 rebar3 管项目18 · 让结果有固定形状19 · 把磁盘当成会失败的邻居20 · 把函数交给 list21 · record 留在院里22 · 先写模块之间的约定23 · 把 term 形状写出来24 · 小测试与整段路25 · 把应用磨成命令26 · 先把小项目圈住27 · 把真实文件洗干净28 · 公开入口越少越稳29 · 把约定留在源码旁30 · 打包,也留下线索31 · 按最初任务交卷
ERLANG · 作品 · LESSON 3145 分钟
按最初任务交卷
从干净终端跑验收表,确认功能、错误和交付说明。
01 · 先看完整例子
运行最终验收表
再补空文件用例,把实际结果写进 README。
Erlang
# 1. 自动检查与构建
rebar3 eunit
rebar3 dialyzer
rebar3 escriptize
# 2. 成功文件:核对三项统计
_build/default/bin/trail_stats fixtures/poem.txt
# 3. 缺失文件:核对错误与非零状态
_build/default/bin/trail_stats fixtures/missing.txt
echo $?先对照结果
- 测试与分析通过。
- 成功文件输出三项数字。
- 缺失文件显示短错误,退出状态不是 0。
02 · 回头拆代码
从第一行往下读
- 从新终端照 README 构建,发现隐藏环境步骤就补文档。
- 逐条保存实际输出,与第 26 课预期对照。
- 只修验收失败,新想法放进后续清单。
03 · 认清新符号
符号不是暗号
$?多数 shell 中读取上一条命令退出状态。
rebar3 eunit运行单元与集成 EUnit 测试。
_build/default/bin默认 profile 的 escript 常见输出目录。
04 · 代码里的概念
把名字和意思对上
验收
按编码前约定的外部标准判断项目是否完成。
可重复构建
换到干净环境,照文档仍能得到同样产物。
05 · 再说清楚
这些写法为什么有用
最后不再添功能。拿出第 26 课任务书,从用户入口逐项检查。
验收不能绕过 escript 直接调用内部模块。错误文字、日志与退出状态都属于结果。
在 README 记录构建命令、Erlang/OTP 版本和已知限制。把一个小闭环真正走完。
06 · 自己改一次
合上答案,动手
写出空文件验收结果。
练习起点
给定:一个空 UTF-8 文件
运行:trail_stats empty.txt
期待:lines=____, words=____, chars=____目标结果: 三项都为 0,命令以状态 0 退出。
卡住了,再看提示
空文件没有行、词和字符。
运行过以后,再看一种答案
一种答案
给定:一个空 UTF-8 文件
运行:trail_stats empty.txt
期待:lines=0, words=0, chars=0,退出状态为 0想一想:验收前发现一个新功能点,要马上塞进去吗?
先记入后续清单。当前只修任务书范围内的失败。
带走
记住三句
- 1
验收标准应提前写下。
- 2
从真正用户入口检查项目。
- 3
完成一个小闭环,再走 BEAM 主线。
本课结束代码也跑过一次,就把这一课收好。