您好,登錄后才能下訂單哦!
這篇文章主要介紹了Linux內核編碼風格分析的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Linux內核編碼風格分析文章都會有所收獲,下面我們一起來看看吧。
為什么要豎向對齊代碼?
舉一個簡單的例子:
int robert_age = 32; int annalouise_age = 25; int bob_age = 250; int dorothy_age = 56;
相較而言,下面的寫法更易讀:
int robert_age = 32; int annalouise_age = 25; int bob_age = 250; int dorothy_age = 56;
只要用眼睛一掃,我們就能發現”bob_age”數字異常。我可以去輕松的識別這些變量都是數字,不需要拿眼睛一個個對比。
這種編碼風格并不是被廣泛的接受。所以,我需要解釋一些這種風格的好處。
代碼的可讀性
90%的編程活動是為了解決問題。另外90%是用來理解代碼是如何解決問題的。
閱讀代碼跟閱讀小說沒多大區別。我們希望作者能把他的想法寫明白,不需要陳詞濫調長篇累牘,但同時要遵守所使用的語言的語法。
事實上,Linux內核編碼風格里十分強調這一點。你給變量的命名同它的作用同等重要。
看一下下面的這段代碼:
var thinG=doIt(thestuff,MORE_sTuff); /* LOL! */
就算你是十分解這段代碼,你讀起它來也十分費勁。
var totalBill = apply_tax(initialBill, taxRate);
通過給予變量有意義的命名,空格,大小寫區分,我們能讓這段代碼更清晰。這意味著接手我們的代碼的下一位程序員能更容易的理解它。
為什么要使用Monospace字體?
關于代碼編輯器應該使用monospace字體還是proportional字體的爭論,從未停息也不會停息,兩派人各有所好。
有些異教徒會告訴你proportional 字體是最好的——忽略這些人吧。
最終是為可讀性。什么方法能最簡單的幫助我們理解代碼?所以IDE才會有代碼高亮配色,這樣你就能輕松的分辨“foo”究竟是一個函數,是一個變量,是一個常量,還是一個注釋。只要是能幫助我們理解代碼的東西都是好東西!
編輯器的問題
有趣的是,我遇到的很多批評的聲音不是說代碼豎向對齊的好壞,而是批評我的代碼編輯器不行。
你這樣做會破壞使用diff對比版本差異時的可讀性和有效性。比如,本來只是一行是有一個變量有bug,你能為了對齊變量改動了很多行,影響了查看關鍵修改處。也有能夠忽略空格的diff技術,但至少你這樣做得不償失。
Andreas van Cranenburgh
…還有…
假如說,你有50行代碼要豎向對齊,你把所有的值對對齊距離最遠的那一行,而增加一個更大距離的行,你需要修改50行。我就遇到過這樣的問題,最終發現這樣做是錯誤的。
scrollaway
他們說的是對的——在某些情況下。但關鍵是他們不會使用更好工具。
我記得Elastic Tabstops提供的一個技巧——如何自動對齊代碼塊:
正確的工具能輕松的完成這樣的任務。計算機就是用來為我們干這些枯燥、重復的事情的-CPU的工作很廉價,我們可以“浪費”CPU的工作來讓我們的代碼更清晰可讀。
在Linux 內核代碼中還有大量的例子能說明豎向對齊代碼能讓代碼更適合人類閱讀。
豎向對齊代碼并不是在所有情況下都適用——但對于大多數情況,它的好處是大大的。
代碼是我們表達我們的思想的媒介。如果你的工具使得理解這些思想更困難,那說明工具需要改變,而不是我們。
關于“Linux內核編碼風格分析”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Linux內核編碼風格分析”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。