數(shù)據(jù)決定程序結(jié)構(gòu)

2018-02-24 15:53 更新

數(shù)據(jù)決定程序結(jié)構(gòu)

恰當(dāng)?shù)臄?shù)據(jù)視圖實(shí)際上決定了程序的結(jié)構(gòu)。 我們常??梢酝ㄟ^(guò)重新組織內(nèi)部數(shù)據(jù)來(lái)使程序變得小而美。

發(fā)明家悖論:更一般性的問(wèn)題也許更容易解決。(有時(shí)候吧)

程序員在節(jié)省空間方面無(wú)計(jì)可施時(shí),將自己從代碼中解脫出來(lái), 退回起點(diǎn)并集中心力研究數(shù)據(jù),常常能有奇效。數(shù)據(jù)的表示形式是程序設(shè)計(jì)的根本。

下面是退回起點(diǎn)進(jìn)行思考時(shí)的幾條原則:

  • 使用數(shù)組重新編寫(xiě)重復(fù)代碼。冗長(zhǎng)的相似代碼常常可以使用最簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)—— 數(shù)組來(lái)更好地表述。

  • 封裝復(fù)雜結(jié)構(gòu)。當(dāng)需要非常復(fù)雜的數(shù)據(jù)結(jié)構(gòu)時(shí),使用抽象術(shù)語(yǔ)進(jìn)行定義, 并將操作表示為類(lèi)。

  • 盡可能使用高級(jí)工具。超文本,名字-值對(duì),電子表格,數(shù)據(jù)庫(kù), 編程語(yǔ)言等都是特定問(wèn)題領(lǐng)域中的強(qiáng)大的工具。

  • 從數(shù)據(jù)得出程序的結(jié)構(gòu)。在動(dòng)手編寫(xiě)代碼之前,優(yōu)秀的程序員會(huì)徹底理解輸入, 輸出和中間數(shù)據(jù)結(jié)構(gòu),并圍繞這些結(jié)構(gòu)創(chuàng)建程序。

提到的書(shū)籍:Polya的《How to Solve it》,中文書(shū)《怎樣解題》; Kernighan和Plauger的《Elements of Programming Style》;Fred Brooks的《人月神話(huà)》 Steve McConnell的《代碼大全》;《Rapid Development》; 《Software Project Survival Guide》

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)