JAVA—咖啡館

          ——?dú)g迎訪問(wèn)rogerfan的博客,常來(lái)《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術(shù),交流工作經(jīng)驗(yàn),分享JAVA帶來(lái)的快樂(lè)!本網(wǎng)站部分轉(zhuǎn)載文章,如果有版權(quán)問(wèn)題請(qǐng)與我聯(lián)系。

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

          今天讀到一些UNIX下的編程哲學(xué),對(duì)自己相當(dāng)?shù)挠袥_擊力,把我覺(jué)得有用并且有道理的,自己組織了一下:

          “編程的核心是數(shù)據(jù)結(jié)構(gòu),而不是算法”,即使最簡(jiǎn)單的程序邏輯人類來(lái)驗(yàn)證也很困難,但就算復(fù)雜的數(shù)據(jù),對(duì)人類來(lái)說(shuō)也相對(duì)容易推導(dǎo)和建模。五十個(gè)節(jié)點(diǎn)的指針樹(shù)要比五十行程序的流程圖更清楚。

          “編程的本質(zhì)是控制復(fù)雜度”,而流程圖、過(guò)程化、結(jié)構(gòu)化、面向?qū)ο笠约捌渌椒ㄕ撉『?#8220;成功”將復(fù)雜度提升到人腦不能處理的地步。所以,降低整體復(fù)雜度的方法是用清晰的接口把若干簡(jiǎn)單模塊組合成一個(gè)復(fù)雜軟件。

          “簡(jiǎn)潔最美”,最錯(cuò)綜復(fù)雜的美妙設(shè)計(jì),常常使我們的設(shè)計(jì)能力超出排錯(cuò)能力,結(jié)果是代價(jià)高昂的廢品。

          “接口和引擎分離”,把復(fù)雜的GUI界面與后臺(tái)處理分做兩端,中間用簡(jiǎn)單協(xié)議架橋。

          “可見(jiàn)才可掌控”,軟件系統(tǒng)的透明性就是說(shuō),你能一眼看出它在干什么,要能監(jiān)視到內(nèi)部狀態(tài)。

          “撐不下去,馬上退出”,出現(xiàn)異常,補(bǔ)救措施明明又沒(méi)成功,還挺在那里,很久才發(fā)現(xiàn)是最壞的一種情況。要么“響亮的倒塌,要么為工作鏈下一環(huán)程序輸出一個(gè)嚴(yán)謹(jǐn)干凈的正確數(shù)據(jù)”。

          “過(guò)早的優(yōu)化是萬(wàn)惡之源”,先要求運(yùn)行,再求正確,最后再求快。還不知道瓶頸就匆忙優(yōu)化,是唯一一個(gè)比亂加功能更損害設(shè)計(jì)的錯(cuò)誤。“最強(qiáng)大的優(yōu)化工具是DELETE鍵”。

          “善用工具”,教會(huì)電腦生成一些簡(jiǎn)單的代碼;一旦有人解決了某個(gè)問(wèn)題,就直接拿過(guò)來(lái)用,盡可能一切都自動(dòng)化。

          “寧花機(jī)器一分,不花程序員一秒”。

          綜上所述,4個(gè)字母:KISS--Keep It Simple, Stupid!


          最后,還是把UNIX哲學(xué)的17個(gè)原則完整列一下:
          1、 模塊性原則:寫簡(jiǎn)單的,通過(guò)干凈的接口可被連接的部件。
          2、 清楚原則:清楚要比小聰明好。
          3、 合并原則:設(shè)計(jì)能被其它程序連接的程序。
          4、 分離原則:從機(jī)制分離從策略,從實(shí)現(xiàn)分離出接口。
          5、 簡(jiǎn)單原則:設(shè)計(jì)要簡(jiǎn)單;只有當(dāng)你需要的時(shí)候,增加復(fù)雜性。
          6、 節(jié)儉原則:只有當(dāng)被證實(shí)是清晰,其它什么也不做的時(shí)候,才寫大的程序。
          7、 透明原則:為使檢查和調(diào)試明顯更容易而設(shè)計(jì)。
          8、 健壯性原則:健壯性是透明和簡(jiǎn)單的追隨者。
          9、 表現(xiàn)原則:把知識(shí)整理成資料,于是程序邏輯能變得易理解和精力充沛的。
          10、最小意外原則:在接口設(shè)計(jì)中,總是做最小意外事情。
          11、沉默原則:當(dāng)一個(gè)程序令人吃驚什么也不說(shuō)的時(shí)候,他應(yīng)該就是什么也不說(shuō)。
          12、修補(bǔ)補(bǔ)救:當(dāng)你必須失敗的時(shí)候,盡可能快的吵鬧地失敗。
          13、經(jīng)濟(jì)原則:程序員的時(shí)間是寶貴的;優(yōu)先機(jī)器時(shí)間節(jié)約它。
          14、產(chǎn)生原則:避免手工堆砌;當(dāng)你可能的時(shí)候,編寫可以寫程序的程序。
          15、優(yōu)化原則:在雕琢之前先有原型;在你優(yōu)化它之前,先讓他可以運(yùn)行。
          16、差異原則:懷疑所有聲稱的“唯一真理“。
          17、可擴(kuò)展原則:為將來(lái)做設(shè)計(jì),因?yàn)樗赡鼙饶阏J(rèn)為來(lái)的要快。

          posted on 2008-01-17 10:53 rogerfan 閱讀(380) 評(píng)論(0)  編輯  收藏 所屬分類: 【管理哲學(xué)】 、【成功人生】
          主站蜘蛛池模板: 兴义市| 龙游县| 大冶市| 博爱县| 潮安县| 朝阳市| 诏安县| 内乡县| 德安县| 吐鲁番市| 洪湖市| 呈贡县| 高唐县| 永宁县| 沁源县| 博白县| 大理市| 商河县| 林芝县| 密云县| 交口县| 仁怀市| 丹寨县| 新源县| 门头沟区| 绿春县| 黄陵县| 博白县| 嘉定区| 偏关县| 尼勒克县| 辛集市| 咸阳市| 宜兴市| 澄江县| 湖州市| 师宗县| 砚山县| 鞍山市| 资兴市| 迁安市|