Reading 1: Static Checking > Documenting Assumptions
原文地址:https://courses.edx.org/courses/course-v1:MITx+6.005.1x+3T2016/courseware/Readings_Videos/01-Static-Checking/
文档假设
写下一个变量的类型是写了一个关于这个变量的文档:int n意味着n永远引用一个正整数,永远不会引用一个列表或者其他类型.Java实际在编译时检测了这个同时保证你程序中没有地方违反这个假设.
给一个变量声明final也是一种类型的文档,final List<Integer> list是一个声明list变量在其最初一次赋值后将会永远指向同一个List对象.Java也会检查这个,静态地.
在hailstoneSequence方法上面说明的注释,我们做了另一种假设的文档,一种Java不会自动检查的文档:
为什么我们需要写下我们的假设?因为程序全是假设.如果我们不把它们写下来,我们将不记得它们,其他将要读我们代码或者修改我们代码的人也将不知道它们.他们将会做出猜测.
项目必须被写下来考虑到两个目的:
- 和电脑交流.首先假设你项目的编译器很敏感--语法正确和类型正确--然后逻辑要正确才能在运行时得到正确的结果.
- 和其他人交流.使得项目容易懂,因此当其他人必须修复它,提升它,适应它时,他们能够做到.