今天这一章说的是文本操作,可以当做是之前关于纯文本讨论的扩展吧。最主要的一点,就是作者建议我们学会一种方便对文本进行操作的语言(比如,python或者perl)。
因为同样的功能,A语言写10行,B语言写100行。对性能要求不严格,且有频繁添加、修改需求的事情来说,显然是A语言更加合适一些。作者称这种文本处理语言是一种通用的工具。
就像之前提到文本处理和木头处理的类比。之前提到的那些都是锤子,锯子这类在特定情况下,处理特定问题的工具。而文本处理语言,就像是刨子一样,不管用木头做什么,拿到木料的第一件事,都是用刨子把木料弄平整。这一章后面也有一个练习,就是让写一个将.ymal文件,转换成.json文件的工具。看到这个例子,我算是更明确地理解了作者的意思,我们拥有的工具,可能可以很丝滑地处理.ymal或.json或.properties。但是由A转到B的过程,工具可能无法胜任,只能通过文本处理语言来填补这个空缺。
其实对于个别的文本转换,互联网上也有许多的在线工具,转一转也挺快的。但要是一个项目里有100个文件要处理,那手动转换就是一场噩梦。
且通过代码,可以做很多工具做不到的,更加精确的,更加个性化的操作。
我本人没太多经验,就罗列一下作者写的例子吧:
1.这本书的编辑与创建
2.这本书里的代码同步,基于DRY(不重复自己的原则),如果作者在代码编辑器里写代码,再复制到书中,很可能会因为某一次修改忘记同步,而使得两边的版本不一致。所以,作者写了脚本,让两边的代码进行同步。同步之前会先进行测试。同时,对于一些示例来说,并不需要完整的可运行代码,可以去掉很多的不重要的代码,比如包的导入。作者的这个脚本还会对代码进行一定的删减,以及对代码进行高亮处理。
3.作者还写了脚本,把书籍的内容同步到网站上。
……
总之,如果能把文本操作用得溜,可以做出很多骚操作的。字数:655
耗时:45分
··················END··················