如果你不能将正在做的事情描述为一个流程,那表示你不知道自己正在做什么。
突然对这句话很有感觉,如果你不知道你的工作流程,你就不可能持续改进和迭代它。一个好的工作流程确实非常重要。
变化式编程是把程序看成一个转换器,把数据从一个格式变换成另一个格式,前一个转换器的输出就是后一个转换器的输入,感觉这样的转换器也要符合契约式编程。
作者举了一个例子,如何取出行数最多的5个文件,就用了变换式编程,或者管道式编程,把下面五段程序都首尾相接了。
find .-type f
向标准输出写入当前目录(.)及其下的所有文件(-type f)。xargs wc -l
从标准输入一行行读入,把每一行的内容作为参数传给命令 wc -l。
wc 这个程序搭配 -l 选项,用来计算每个参数指定的文件的行数,并把结果以“行数 文件名”的形式输出到标准输出。sort -n
假设标准输入的每一行以一个数字开头(-n),则用这些数字进行排
序,将结果输出到标准输出。tail -5
从标准输入读入,只把最后5行写到标准输出。
转换式编程让我们从数据处理的视角去看程序,感觉挺有道理的。
网友评论