软件设计中的抽象层次
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
轉載于:https://www.cnblogs.com/njuxdj/archive/2013/05/11/3073532.html
總結
以上是生活随笔為你收集整理的软件设计中的抽象层次的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zigbee ZIGBEE_FRAGME
- 下一篇: mysql group by与order