这是一篇译制博客文章,原博客为
Learn from Source Code (an Effective Way to Grow for Beginners)
,原作者为Nick Mose 。
我 向 Nick 申请获得了此文的中文翻译权与中文翻译文章发布权。
前言
上周我在和一位年轻程序员聊天时,他问到我:“如何阅读源码?”,我们讨论了一段时间,我还列举了几种有效阅读源码的方式。
然后他说:“你应该就这个话题写篇文章,这对初学者很有帮助,而且这种经验无法从书籍和教程中获得。”
那么开始吧,下面是我关于阅读源码的小技巧。
对读者的知识要求&前言
要求
前言
在本文中我将介绍编写单元测试 (和组件测试,实践中这两个概念拆不开) 时可使用的三种调用 - 期望方式,用途各不相同:
数据保存在电子介质上,且只能通过电子设备读写,这意味着可能需要购买额外设备以满足对其保存、处理的需要。本文在引用所有没有对应术语级定义的自创名词时,将使用大括号高亮该名词,防止读者迷惑(例:【自创名词】)。同时本文使用反引号引用上文已提到的有对应术语的名词(例:术语名词)。本文为我因愚蠢与意外,丢失了四个半月工作数据的反思总结文。本文内容仅个人见解,欢迎指点与讨论。
0.对读者的知识要求&前言
要求:简单掌握任一编程语言,明白“软件测试”的定义、类别与各测试类别的作用。
去年刚写这篇文章(20200717)时,我第一次在《代码整洁之道》系列书中读到 TDD 的概念与好处,
并试着在工作中实践了一个月,写这篇文章的目的是分享实践中摸索与网上搜索到的 TDD 实践技巧。
今年我读了更多的书,感觉对 TDD 的理论与实践多了解了一些,更新打的“补丁”字数也不少,
于是把标题改成更宽泛的“对 TDD 的实践的讨论”。
背景
最近玩的某游戏开了新卡池,抽了 8 个 10 连共计 80 次,
出了 4 个稀有度最高的角色,
我突发奇想想算算我这个爆率算什么水平,
程序模拟一下,顺便复习排列组合。
程序设计
Java 标准类库中,没有排列组合甚至阶乘的现成方法, 搜了一下
但为了这个引入一个第三方库又未免太麻烦,于是自己来实现。