感谢ITeye的7月图书试读活动,使得我有机会接触到当前最热门的技术以及优秀的图书。上一次不经意间的写了微管理的读后感,并且侥幸获奖,这次在写这篇文章的读后感的时候有了一些莫名的压力,那就是如何让本篇读后感也成为优秀的文章,为购买该图书的人抛砖引玉,并且对自己的学习过程做一个总结,而不只是简单的获奖。

的确,如书中所写“初学 Linux使用的人们,坐在 Linux老手旁边,看他们帮自己解决一些工作上的问题时,往往会惊叹于他们似乎不怎么使用 GUI。”,在刚参加工作时,看着老大在linux的“shell”界面下,熟练的敲着那么活蹦乱跳的命令行时,一种崇拜之情油然而生。而当自己在接下来工作中自己来敲那些简单的命令时,如简单的“ll、ls、rm”等等这些简单的命令时,都显得如此的笨拙,尤其对于命令中添加的参数"-f、-v"等等时,更觉得无所适从。

本章前序中写道作者如何爱上linux,从而开启自己的linux神奇之旅也深深的触动了我。在上大学的第一年,在学习操作系统时,老师要求我们在windows XP上通过虚拟机软件安装linux操作系统时,当时的自己还傻傻的认为,这linux有什么好处,不过是微软的图形化界面的一个翻版操作系统,用起来还是那么的憋手,现在想起来,自己对于linux的认知在当时是多么的浅薄,就如同作者认为linux只不过是写错了名字的“unix”,直到在读本章之前,我似乎也只是知道linux是unix的衍生版,并没有什么不同。

万般皆文本

linux将枯燥的令人厌烦的二进制计算机语言转变为程序员易上手、易操作、易阅读的文本,这节省了程序员很多时间效率,同时linux对于文本的封装也是极其有效率的,这使得我们觉得简单的文本操作起来也是非常的方便、简洁,这也使得我们这些linux新手在操作shell文件时,也显得那么轻松快乐,下面就介绍一下使用linux shell编程一个hello world经典案例。

在linux上进行一个“hello,world”的程序编码时,我们只需要使用vim命令就可以轻松的打开一个文件,然后在里面输入"echo 'hello,world'",然后wq保存退出后,再使用chmod将文件属性改变为可执行文件,然后再通过sh命令运行该文件,那么就可以在命令行看到hello,world字样(具体细节请查看我写的“linux shell之hello world”一文),在这个过程中是不是可以体会到linux的文本之强大。

就如书中介绍的linux把配置文件、程序、通信协议、更甚至于硬件,也都和文本紧密的联系在一起,linux就是这样让我们感受到了文本原来也可以如此的强大。

四处用脚本

linux使用了大量的“脚本”来编写程序,这使得我们可以选择当今非常强大的Python、Rudy脚本来编写自己所需要的程序,从而在linux上运行。记得我在参加上一个公司的项目时,需要做出一个tab键自动填补命令的程序,当时采用的是Perl 语言编写的,比如,当你运行该程序后,在你在命令行敲一个show 命令时,我们当时做的候补项有date、dir、file等等,当键入tab键时,这些命令选项就如同linux本身的tab键功能时出现在当前命令的下一行list选项中。

我非常喜欢作者提出的“强力胶水”的概念,将自底向上和自顶向下的设计方式进行粘合,同时却不显得臃肿,使得bug缺少了滋生的温床。

规律无处可循

是的,作为一个程序员,我们始终抱着一种心态,只要我学会一门编程语言,再来学习其他语言就可以有规律可循,而对于linux的编程,作者告诉我们在linux上解决一个问题是没有规律可循的,但却有着技巧。作者写道的“机制和策略”(吃饭是一种机制,怎么吃饭是一种策略,作者用通俗易懂的方式把两个略显枯燥的词语进行了很好的解释)、“接口和引擎”(这里的接口指程序和人的交互界面)、“重用”(不用重新造轮子,的确,一种好的设计模式可以让程序员事半功倍)、“内在支持”(linux能使的两个进程之间进行数据的交互,有点略强大)、“沉默是金”(作者所说的正是我们作为程序永远所需要的,不轻易写大程序)。

配置乱生根

我个人是不太习惯配置到处都是的,但这也许是我对linux的配置了解的还不够透彻。

文化

书中说linux就是一种基于“简单”和“傻X”的传统文化和哲学,linux的重要特性就是“提供一种机制,而不是策略”,linux使得这种“傻X”文化发挥到了极致,而linux的开源使得更多希望自己能够成为程序员中的精英而努力掌握这门技术,而我也希望自己能够通过敲入一些枯燥的命令从而做些“入侵”工作,哈哈。

简单,是的,什么事物只有越简单才会越强大,诸如武侠小说中的“无招胜有招”、“独孤求败、唯快不过”等理念,就是使自己的文化底蕴足够的简单,足够的精纯。而linux提供给我们的这种简单的文化,使得linux受到编程高手的青睐。

大师的阐释

书中列出的及格“禅言”使我非常有感触。

  • 使每个程序只做好一件事,对于我们编程人员来说,就是要让自己编写的每一个类都具有自己的独立性,而不在一个类中写和自己不相关的功能。

  • 尽早的将软件投入使用,就目前我们的项目而言,这也是我以后应该注意的,不能把自己做好的东西迟迟不敢放出去,只有将自己完成的一个功能大胆的交给客户,才能发现自己没有注意的问题。

  • 拙劣的代码扔掉,在我们软件开发过程中,难免会接手前人留下的代码,而由于怕造成影响,我们总是对一些没用的代码耿耿于怀,却没有胆量删除掉它。

  • 无法判定程序在什么地方花费时间的话,不要胡乱找代码修改,在找到瓶颈后,再进行修改。这一点,在我的这次迭代工作中,使我有很大的感触,我们的项目目前遇到了一个性能上的问题,但是在这个调优的过程中,我尝试了做了几次自己并没有确定瓶颈的代码的修改,而导致不断的反复的改回代码。

总结:本章试读使我对朦胧的linux有了进一步的理解,而书中介绍的一些案例也有着非常好的扩展,使我意识到自己在工作中遇到的一些问题,从而进行总结改进。

本文来自ITeye做一个对社会有用的IT人博客
欢迎参加ITeye 7月技术图书有奖试读活动