测试驱动开发学习

测试驱动开发定义

参考书籍: 《重构-改善既有代码的设计》、《测试驱动开发》kentback、《实现模式》
用例子讲解:https://blog.csdn.net/MPU/article/details/1339958

idea快捷键总结(先用好开发的利器)

以下快捷键均出自mac book pro 13.3寸键盘

  • 新建类:command + 1调出project版面,通过上下左右键定位到需要新建的文件价路径下,command + n 即可新建类
  • 查找文件:shift + command + o
  • 查找class: command + o
  • 全局查找内容: command + shift + f
  • 看类所包含的方法 : comand + 7 , 然后在方法显示框中可以搜索方法
  • 生成方法: command + n
  • 跑一个文件所有单元测试的快捷键:control + shift + r / control + r
  • 调试代码: control + d
  • 提取代码option+command+m
  • 切换不同的类窗口(替代方案,最近文件): command + e
  • 格式化代码:option+command+L
  • 全选行(从光标开始到行尾):shift + command + 方向键盘(左或右) / 不带shift , 只把光标移到行尾而不选中 ; shift + 方向键盘(批量选中代码) ; command + shift + 上/下 ,把代码移上或下
  • 偏好设置:command + ,
  • 复制光标所在行:command + d
  • 光标回到上次/下次浏览处:command + [] (左括号回到上次光标停留处,右括号回到下次光标停留处)
  • 跳到方法定义: command + b
  • 跳到方法实现:option + command + b
    -调出错误解决建议: option + 回车
  • 关闭当前类窗口:command + w
  • 快速跳转到错误处: f2 (fn 然后touchbar上会出现f2)
  • 生成try catch : option+ command + t

刻意练习

刻意练习包含三个要素:
1、多次重复的练习;
2、针对自己不足的领域练习;
3、每次练习后对结果反思。
在这个简单的项目中,刻意练习能帮助我们显著提高编程速度。记住这个节奏,它是你学习一切能力的节奏

参数解析器

题目

初始需求
我们经常会遇到需要解析命令行参数的场景。如果没有趁手的工具,我们可以自己写一个,自己想办法处理传给main函数的参数。

传入一个程序的参数包含了“标记”(flag)和“值”(value)。标记都是一个字母,前面加上“-”号(例如“-p”这样)。每个标记可以有一个值与之对应,也可以没有对应的值。

我们要开发一个解析器(parser)来处理这些参数。这个解析器需要一个参数结构(schema)来描述“这个程序应该接受哪些参数”的信息,包括:

应该有几个标记;
每个标记应该是什么类型;
每个标记的缺省值是什么。
参数结构指定好以后,就可以把实际接收到的参数列表传给参数解析器。解析器会首先验证参数列表是否与参数结构相匹配。然后,程序就可以向参数解析器查询每个参数的值(根据参数的标记名)。返回值的类型应该与参数结构中规定的类型相一致。

例如,程序接收到的参数是这样:

-l -p 8080 -d /usr/logs

那么对应的参数结构应该规定3个标记:l、p、d

l(logging,是否记录日志)标记没有与之对应的值,这是一个布尔型的标记,如果传入了“-l”就为True,否则为False。
p(port,端口号)标记的值是整数型。
d(directory,目录)标记的值是字符串型。
如果参数结构中规定了的标记在实际的参数列表中没有出现,那么就应该返回合理的缺省值,例如布尔型的缺省值可以是False,数值型的缺省值可以是0,字符串型的缺省值可以是空字符串。

如果实际给出的参数与参数结构不匹配,需要给出良好的错误信息,解释清楚出错的原因。

扩展需求
扩展代码,支持列表类型的参数。例如下列参数中:

-g this,is,a,list -d 1,2,-3,5

g标记对应的是字符串类型的列表([“this”, “is”, “a”, “list”]),d标记对应的是整数类型的列表([1, 2, -3, 5])。

代码应该具有良好的可扩展性,这样在添加新的值类型时才会简单明了。

参考
https://mp.weixin.qq.com/s/DNrZ5OJlmwjfIT97Cu9TSg

任务拆解

任务拆解(我的拆解):
1、分解输入字符串
2、分解值(列表情况)
3、处理异常输入情况

任务拆解(教程中的拆解方案):
1、把命令行字符串拆分成main函数可用的字符串数组
2、把字符串形式的Schema解析成对象
3、根据Schema和参数字符串数组获取参数值

像机器一样思考:
http://insights.thoughtworkers.org/think-as-a-machine/

重新拆解任务
输入:参数结构字符串(schemaText) 请求参数(paramsText)
1、根据参数结构字符串 得到参数结构
2、根据请求参数字符串 得到请求
3、根据标记取出值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值