軟件設計中的抽象層次


The programmers of old were mysterious and profound. We cannot fathom their thoughts, so all we do is describe their appearance.
遠古時代的編程大師們高深莫測,我們不能揣測他們的所思所想,只能描述外表所見。

——《編程之道》

最近在項目中完成了一個數據訪問設計,包含本地數據庫、對象關系映射(ORM)和應用程序框架(Application FrameWork)。在設計和實現的過程中對軟件設計的抽象的理解進一步加深。特將所得記於此,記之戒之。

變量名是數據的第一抽象

在早期我還在用C語言寫程序的時候,教材用的是譚浩強的《C語言程序設計》。網絡上對這總銷量超過本書1000萬冊的的詬病不斷,最大的問題就是變量的命名實在是很混亂,例程中的變量從來都是a、b、c、i、j、k……。現在回想起來變量名是什么啊,不就是對數據的抽象嗎?變量名混亂就是抽象關系混亂。所以抽象的第一步就是要把變量名起好,先賢已經給我們留下了各種命名法,我好像窺探到他們這樣做的初衷了。

The Tao gave birth to machine language. Machine language gave birth to the assembler.
道生機器語言,機器語言生匯編囂。

——《編程之道》

數據庫是軟件工程中的規范化抽象

匯編語言中是沒有變量名稱的,高級程序設計語言中變量有了名稱,有了第一次抽象,變量組合成結構體、類,為第二次抽象。變量及其組合(結構體、類)等價於數據庫。工程中軟件詳細設計的第一步就是畫實體關系(ER)圖,然后將對象數據放到數據表中,數據表之間的關系表示實體對象之間的關系。數據庫中表名和列名的命名法如前所述依然是第一抽象,數據庫是軟件工程中的規范化抽象。先賢留下了若干范式來規范數據庫設計,需細細體會每種范式,根據復雜度選取合適范式。

對象關系映射為回歸本真的抽象

ORM使冷冰冰的數據骨架上又長出了血肉,氣血豐盈的對象方才是活生生的對象。ORM是解決面向對象與關系數據庫存在的互不匹配的現象的技術。ORM是通過使用描述對象和數據庫之間映射的元數據,將程序中的對象自動持久化到關系數據庫中。

推薦給大家一本書:編程之道

歡迎訪問我的個人博客:www.fiiii.com


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com