日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unix编程艺术心得

發(fā)布時(shí)間:2025/5/22 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unix编程艺术心得 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

這本書被稱為Unix世界"教外別傳"的心法,此言不虛!

大家都公認(rèn)主流的IT文化就是Unix的文化。此書對(duì)這種原來靠言傳身教和源代碼流傳的文化進(jìn)行總結(jié)。是一本深入到文化精髓,值得仔細(xì)反復(fù)玩味的經(jīng)典。 同時(shí)書中還有很多坊間故事,對(duì)Unix歷史發(fā)展歷史的梳理,案例的分析等。有助于了解歷史的脈絡(luò),深入理解文化精髓的奧秘。

翻閱此書不時(shí)能發(fā)現(xiàn)一些或讓人眼前一亮,或茅塞頓開,或醍醐灌頂,或沉思良久,亦或莞爾一笑之處。

現(xiàn)將印象深刻的幾點(diǎn)做一小結(jié)。

  • 明示勝于隱喻

這是一條Unix發(fā)展過程中非常重要的原則。在實(shí)現(xiàn)方面體現(xiàn)在采用文本化的協(xié)議,文本化的配置,反對(duì)專有軟件。提倡能夠使用最普通的文本工具即可讀取與修改;也體現(xiàn)在提倡代碼的開源(提高對(duì)程序員用戶的透明度),反對(duì)二進(jìn)制的封閉。

這種文化的內(nèi)涵乍看不過爾爾,細(xì)想其實(shí)不然。比如沒有受過unix文化熏陶的人(比如在下)在通訊協(xié)議上,往往會(huì)采用基于二進(jìn)制的格式。而二進(jìn)制的協(xié)議導(dǎo)致不得不依靠專有工具才能閱讀與調(diào)試,大量專用代碼與工具的產(chǎn)生。稍有不慎,常常會(huì)落得不可擴(kuò)展的結(jié)果。而文本化的協(xié)議,幾乎避免了絕大部分這種情況。從HTTP協(xié)議及大量基于HTTP協(xié)議的擴(kuò)展協(xié)議可見一斑。

這種文化不盡在Unix上發(fā)揚(yáng)光大,而且在其之上發(fā)展起來的編程語言也深受影響。比如所謂的Python之禪中就明確“ 明了勝于晦澀”。

  • 數(shù)據(jù)重于算法

"程序=數(shù)據(jù)結(jié)構(gòu)+算法"是一個(gè)眾所周知的公式。這一公式雖然有名卻未必獲得了真心實(shí)意的應(yīng)用。現(xiàn)代主流編程思想更多的體現(xiàn)在OO方面,在算法方面。而對(duì)數(shù)據(jù)的關(guān)注較少。

先輩們已經(jīng)在結(jié)構(gòu)方面發(fā)展出大量方法和技術(shù),比如數(shù)據(jù)流圖,數(shù)據(jù)字典,ER,甚至關(guān)系型數(shù)據(jù)庫等等等等。這些方法可以非常自然,非常直接的反映出現(xiàn)實(shí)世界的模型。有時(shí)候比OO更加直接與明朗。

舉個(gè)例子,在OO方法里,有一個(gè)非常著名的通過找名詞,動(dòng)詞來確定對(duì)象及其方法的技術(shù)。然而真正運(yùn)用這些方法的話,就會(huì)發(fā)現(xiàn)找出來的對(duì)象往往莫名其妙,名稱怪異。甚至?xí)萑氲揭粋€(gè)詞究竟是名詞、動(dòng)詞還是形容詞的糾結(jié)當(dāng)中。這完全是把寶壓在了從不精確的自然語言提煉精確的OO表達(dá)之上。語言是否能夠完全描述現(xiàn)實(shí)都不一定,從其上提煉出來的對(duì)象就更可想而知了。

換個(gè)角度,如果從數(shù)據(jù)的視角來看,幾乎能夠?qū)F(xiàn)實(shí)世界的某些模型直接映射到數(shù)據(jù)上來。這個(gè)過程精確而直接。

  • 現(xiàn)有實(shí)現(xiàn)再有標(biāo)準(zhǔn)

標(biāo)準(zhǔn)的制定必須要有實(shí)現(xiàn)的驗(yàn)證。據(jù)說X標(biāo)準(zhǔn)是與其實(shí)現(xiàn)同步編寫的,在此之后標(biāo)準(zhǔn)幾乎沒有變化。

  • 除非必要,絕不寫龐大的軟件

一個(gè)軟件應(yīng)該專注于其所面對(duì)的核心功能,其他功能盡量能夠借助已有的工具/庫來完成。提倡編寫短小精悍,功能足夠的小型軟件。除非別無選擇。

這一原則背后還有Unix通過管道,重定向等基礎(chǔ)設(shè)施構(gòu)建起來的上下文環(huán)境管理的支撐。這兩者相輔相成,最終讓Unix成為一個(gè)最好用的開發(fā)平臺(tái)。也有助于培養(yǎng)程序員協(xié)作,共享,專注的思維。

  • 爛代碼就要扔掉

眾所周知,維護(hù)爛代碼遠(yuǎn)比重寫編寫的成本要高。在Unix文化里對(duì)爛代碼從不姑息,現(xiàn)在流下來的代碼都是經(jīng)過歷史考驗(yàn)遺留下來的。都是非常優(yōu)秀的代碼。

這一原則給我們大膽重構(gòu),重寫提供了底氣。但動(dòng)手之前,一定要有足夠的理由認(rèn)定這是維護(hù)代價(jià)高昂的爛代碼,而不是出于對(duì)別人的代碼不可靠,只有我的才是最棒的心里因素。

轉(zhuǎn)載于:https://my.oschina.net/ankh2008/blog/107005

總結(jié)

以上是生活随笔為你收集整理的Unix编程艺术心得的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。