程序設(shè)計(jì)的方法論

完成以下步驟:

1、正確的問題

明確問題,這場(chǎng)戰(zhàn)役就成功了90%。必須仔細(xì)定義一個(gè)問題的輸入、輸出的流程場(chǎng)景和數(shù)據(jù)范圍、以及對(duì)應(yīng)的約束條件和性能指標(biāo)。對(duì)小問題的仔細(xì)分析有時(shí)可以得到明顯的實(shí)際益處、幾分鐘的仔細(xì)研究可以大幅度消減代碼的長度、程序員時(shí)間和程序運(yùn)行時(shí)間。

2、定義數(shù)據(jù)結(jié)構(gòu)

不同的問題需求需要定義不同的數(shù)據(jù)結(jié)構(gòu),有限定義內(nèi)的稠密集合?稀疏?樹?索引?…

3、設(shè)計(jì)算法

設(shè)計(jì)復(fù)雜度更精巧的算法


4、時(shí)間空間折中與雙贏

沒有雙全法,那么就得根據(jù)需要用空間換時(shí)間,或者相反。通常前者的資源更稀缺需求更重要,當(dāng)然有時(shí)候減少程序的空間需求也會(huì)減少運(yùn)行時(shí)間,比如減少了IO操作。


5、簡(jiǎn)單的設(shè)計(jì)

正如機(jī)械設(shè)計(jì)師贊揚(yáng)一個(gè)好的系統(tǒng):“結(jié)構(gòu)簡(jiǎn)單、部件很少、易于維護(hù)、非常堅(jiān)固”;“設(shè)計(jì)者確定其設(shè)計(jì)已經(jīng)達(dá)到了完美的標(biāo)準(zhǔn)不是不能再增加任何東西我,而是不能再減少任何東西。” 更多程序員應(yīng)該使用該標(biāo)準(zhǔn)來檢驗(yàn)自己完成的程序。簡(jiǎn)單的程序通常比具有相同功能的復(fù)雜程序更可靠、更安全、更健壯、更高效、而且易于實(shí)現(xiàn)和維護(hù)。

ps:就此突然想到了前幾日分享的國寶級(jí)折紙大師,其完成折紙前反復(fù)計(jì)算推演才最終僅僅用一張紙不用任何工具折成生動(dòng)萬物,這其實(shí)和我們老祖宗高超的榫卯設(shè)計(jì)一樣,不要一根釘子。

高低之別其實(shí)是沉浸的匠心,都是工程,從折紙和榫卯中我們可以有很多的思考、靈感和啟發(fā),故配上幾張圖。


? ?掌門艾老師

? ?2017年3月18日晨讀且思

圖片發(fā)自簡(jiǎn)書App


圖片發(fā)自簡(jiǎn)書App
圖片發(fā)自簡(jiǎn)書App
圖片發(fā)自簡(jiǎn)書App
圖片發(fā)自簡(jiǎn)書App
圖片發(fā)自簡(jiǎn)書App
圖片發(fā)自簡(jiǎn)書App
圖片發(fā)自簡(jiǎn)書App
圖片發(fā)自簡(jiǎn)書App
圖片發(fā)自簡(jiǎn)書App
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,315評(píng)論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,933評(píng)論 18 139
  • 本文把程序員所需掌握的關(guān)鍵知識(shí)總結(jié)為三大類19個(gè)關(guān)鍵概念,然后給出了掌握每個(gè)關(guān)鍵概念所需的入門書籍,必讀書籍,以及...
    dle_oxio閱讀 11,211評(píng)論 6 244
  • 我的助教和我告別的時(shí)候曾經(jīng)說過這樣一句話:不要對(duì)今天絕望,因?yàn)楦纯嗟挠肋h(yuǎn)是明天。當(dāng)時(shí)的我沉浸在考研失敗人生茫茫求...
    書書書書寧閱讀 486評(píng)論 0 1
  • “清明時(shí)節(jié)雨紛紛,路上行人欲斷魂。借問酒家何處有?牧童遙指杏花村。”耳邊漸漸響起陣陣?yán)世实淖x書聲,暮然間回首看了一...
    玩命飛哥閱讀 679評(píng)論 0 1