首页 > 编程语言 >《程序员修炼之道 - 从小工到专家》读后感(三)

《程序员修炼之道 - 从小工到专家》读后感(三)

时间:2022-10-31 19:33:41浏览次数:35  
标签:读后感 shell 代码生成 小工 生成 程序员 debug 文本 代码

第三章

纯文本的威力:

优点:可读性远大于二进制,且不依赖特定的应用解码,因此不会过时。为了增加纯文本可读性,应该使用能够理解的词语。另外纯文本可由任何应用读取,因此适合作为应用之间的接口,将应用拼接成功能更强大、更丰富的应用,如linux shell的管道。

纯文本的缺点在于占用空间更大和解析更难。

 

shell的游戏:比起大型workbench,cli更加简洁清晰,可以用短小有力的命令完成强大的功能,并可以将功能拼接。

不过,与gui相比,shell不便之处在于功能非常零散,如果要做一件事情可能需要使用很多工具。这样的拼接确实使得自由度最大化,但当需要专心工作于一个工程、希望有一个集成的工具能清晰地显示自己的工作并可以完成大部分常用功能时便有些不方便。可说各有所长,不过此前的我没怎么做过大型项目,所以cli的不方便之处不太明显。

不过书中提到windows下的linux shell工具cygwin很有趣,打算试一试。

 

强力编辑:文本是编程的基本原料,所以编辑器很重要。vim、emacs等编辑器都功能强大,适用于各个平台,有gui和cli版本。应该使用一个特定的强大编辑器并精通,这样生产率会大大提高。

在shell下这很有道理,不过在visual studio这样的大型平台上似乎没有必要?

 

源码控制:由源码控制工具控制版本和分支可以让工作更加方便有序,减少出错的可能。没有源码控制工具非常痛苦,只能将代码一份份备份,而且很容易丢或者忘记顺序。

我所知道的源码控制工具只有git。

 

调试:作者似乎异常强调debug过程中的心理因素。debug确实容易让人崩溃。

在debug过程中要获得尽可能具体的信息。随意地、泛泛地调试往往是徒劳。获得具体的错误信息并进行bug的复现才能尽可能高效地debug。

有这样一些策略:

多用ide的可视化功能,如watch窗口。这是最直观的。

在程序中加入打印语句看起来非常愚蠢的,不过在某些情况确实管用,甚至比ide的debug功能还要管用。

在某个数据出问题时,可以检查附近内存。

可以采用橡皮鸭策略,即用语言将代码逻辑解释一遍。这个过程中可能会发现隐藏的问题。

在无法找到问题时,可以用二分查找。(但是在条件不是一维的时候如何二分查找?)

 

文本操纵:用文本操纵语言实现,简单的工具如emacs、vi的内置语言、脚本语言如perl、python(我只会python好凉啊)。

文本操纵可以用来维护数据库schema,如自动生成代码、填充空位;自动生成重复代码;生成测试数据;生成不同语言之间接口;生成特殊格式的文档。

 

代码生成器:分两种。

被动代码生成器,为了减少编码时手工编码。仅使用一次,然后将生成的代码嵌入代码中。被动代码生成器不需要完全精确,只需要简便,事后由人工校对一遍。

主动代码生成器,是代码的有机部分,每次都被调用,如用来根据数据生成不同语言的接口。主动代码生成器符合DRY的原则,可以减少错误。

代码生成器不一定要很复杂,也不一定要生成代码,可以生成任何文本。

标签:读后感,shell,代码生成,小工,生成,程序员,debug,文本,代码
From: https://www.cnblogs.com/ysk0904/p/16845472.html

相关文章

  • 10月代码大全2读后感1
    对于代码大全2的第五章,第六章内容,从之前的大体转变为了更加细微的东西,第五章讲解了软件构架中的设计问题,点明了软件的首要使命是管理复杂度以简单性作为管理目标的设计方案......
  • 万字泣血解析割韭菜内情,程序员别老想着做副业 _
    前言最近有准备一篇干货,但想了想还是先放放,眼看年关将近,写点其他对大家有用的内容。今年见了不少人被割韭菜,下半年尤为严重,这种情形甚至在技术行业蔓延,令人深感大环境的......
  • 程序员修炼之道+从小工到专家阅读笔记02
    第五章弯曲,或折断解耦与得墨忒耳法则:好篱笆促成好邻居。函数的得墨忒耳法则视图使任何给定程序中的模块之间的耦合减至最少元程序设计:再多的天才也无法胜过对细节的专......
  • 程序员修炼之道:从小工到专家读后感
    这本书的适用范围可以从初学者到有经验的程序员再到项目经理,作为一本偏向理论与思想的书,书中不可避免有些假大空的地方,再加上作者写完本书的时间还在1999年,书中的很多方法......
  • 程序员修炼之道:从小工到专家读后感(x)
    在我们进行团队开发的时候需要注意不容忍破窗户-那些小小的无人修正的不完美的问题,质量是一个团队问题,如果一个人无论能力如何如果被派到不在乎质量的团队里,会发现自己......
  • 《程序员修炼之道:从小工到专家》读后感(第三篇)
    第14节纯文本的威力1、纯本文由可打印字符组成,人可以直接阅读和理解其形式。这里强调可打印含义是字符时经过编码的可阅读字符,而不是二进制。这在现在看来几乎是不用争辩......
  • 《程序员修炼之道:从小工到专家》读后感(第四篇)
    第21节按合约设计1、注重实效的程序员会不信任自己,所以他们针对自己的错误行为进行防卫性编码。2、按合约设计(DesignByContract,简写DBC)是BertrandMeyer为Eiffel语......
  • 《程序员修炼之道》读后感第二篇(10月)
    时间耦合时间是软件架构的一个常常被忽视的方面,吸引我们的时间只是进度表上的时间。作为软件自身的一种设计要素,时间有两个方面对我们很重要:并发和次序。我们在编程时......
  • Python程序员常犯的编码错误(三)
    1.引言本文是Python程序员常犯的编码错误的第三篇,在前两篇中我们重点介绍了常见的几种错误,本文继续介绍该话题,希望大家在日常生活中多多关注。闲话少说,我们直接开始吧!2.使......
  • 一封供程序员参考的http学习笔记
    文章目录​​CDN有什么好处​​​​什么是代理​​​​浏览器HTTP请求过程​​​​在HTTP中安全和幂等是什么意思​​​​HTTP方法清单​​​​状态码的含义​​​​3xx​​......