《Linux就是這個範兒》試讀有感

李潔發表於2014-07-21

感謝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月技術圖書有獎試讀活動

相關文章