zoukankan      html  css  js  c++  java
  • 软件设计中的抽象层次

    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

  • 相关阅读:
    智能手机
    Micro LED
    paper-10-IRM-in-MANETs
    INFOCOM
    如何基于 Android Things 构建一个智能家居系统?
    (OK) VNCserver
    CCF 2016-04-2 俄罗斯方块
    CCF 2016-04-1 折点计数
    洛谷 P1927 防护伞
    洛谷 P1843 奶牛晒衣服
  • 原文地址:https://www.cnblogs.com/njuxdj/p/3073532.html
Copyright © 2011-2022 走看看