元数据的理解!!
bug收集:专门解决与收集bug的网站
网址:www.bugshouji.com
今天给大家分享一下“元数据是什么?及其它作用!“
本文内容,来自《程序员修改之道——从小工到专家》
动态配置(目的)
首先,我们想要让我们的系统变得高度可配置。不仅是像屏幕颜色和提示文本这样的事物,而且也包括诸如算法、数据库产品、中间件技术和用户界面风格之类更深层面的选择。这些选择应该作为配置选项、而不是通过集成或工程( engineering )实现。
提示37 Configure , Don ' t Integrate 要配置,不要集成
程序员修炼之道
要用元数据( metadata )描述应用的配置选项:调谐参数、用户偏好( user preference 安装目录,等等。
元数据到底是什么?严格地说(元数据是关于数据的数据最为常见的例子可能是数据库 schema 或数据词典。schema 含有按照名称、存储长度及其他属性、对字段(列)进行描述的数据。你应该能访问和操纵这些信息,就像对数据库中的任何其他数据一样。
如下图:
我们在其最宽泛的意义上使用该术语。元数据是任何对应用进行描述的数据——应用该怎样运行、它应该使用什么资源,等等。在典型情况下,元数据在运行时、而不是编译时被访问和使用。你每时每刻都在使用元数据——至少你的程序是这样。假定你点击某个选项,隐藏你的 Web 浏览器上的工具栏,浏览器将把该偏好作为元数据存储在某种内部数据库中。
这个数据库可以使用私有格式,也可以使用标准机制。在 Windows 下,初始化文件(使用后缀. ini )域系统注册表中的条目都很典型。在 Unix 下, XWindow System 使用 Application Default文件提供类似的功能。Java 使用的是 Property 文件。在所有这些环境中,你通过指定关键字来获取值。另外,更强大和灵活的元数据实现会使用嵌入式脚本语言(详情参见“领域语言43页)。
Netscape 浏览器实际上使用了这两种技术实现偏好。在版本3中,偏好被存为简单的键/值对:
SHOW _ TOOLBAR : False
后来,版本4的偏好看起来更像是 JavaScript :
user _ pref (" custtoolbar . Browser . Navigation _ Toolbar . open ", false );
元数据驱动的应用
但我们不只是想把元数据用于简单的偏好。我们想要尽可能多地通过元数据配置和驱动应用。我们的目标是以声明方式思考(规定要做什么,而不是怎么做),并创建高度灵活和可适应的程序。我们通过采用一条一般准则来做到这一点:为一般情况编写程序,把具体情况放在别处——在编译的代码库之外。
提示38 Put Abstractions in Code , Details in Metadata 将抽象放进代码,细节放进元数据 程序员修炼之道
这种方法有若干好处:
●它迫使你解除你的设计的耦合,从而带来更灵活、可适应性更好的程序。
●它迫使你通过推迟细节处理,创建更健壮、更抽象的设计——完全推迟到程序之外。
●无需重新编译应用,你就可以对其进行定制。你还可以利用这一层面的定制,轻松地绕开正在运行的产品系统中的重大 bug。
●与通用的编程语言的情况相比,可以通过一种大为接近问题领域的方式表示元数据(参见”领域语言”,43页)。
你甚至还可以用相同的应用引擎——但是用不同的元数据——实现若干不同的项目。
苟有恒 , 何必三更眠五更起
相关文章
- java List去除重复数据的五种方式
- 数据化人才发展中的TD组织构建
- pandas基础:使用Python pandas Groupby函数汇总数据,获得对数据更好地理解
- R的数据
- 迪塔维王珂:聚焦数据治理,助力高校信息化高质量建设 | 镁客·请讲
- 一道题让你理解浮点型数据在内存的存储方式
- 疾病研究资源 | 用于评估疾病相关性的生物医学数据、计算方法和工具
- 【计算机网络】网络层 : 网络层设备 ( 路由器 | 输入端口处理 | 输出端口处理 | 物理层、数据链路层、网络层 设备对比 | 路由表 与 路由转发 )
- 【ES三周年】Java与Elasticsearch实战:GPT助您深入理解数据建模与映射
- 如何使用mongoshake实现mongodb数据同步的方法
- 深入浅出Redis:理解数据存储原理(redis原理)
- 共享Linux系统进程间数据共享机制研究(linux进程间数据)
- Oracle链接数据库:快速可靠的数据存储解决方案(oracle链接数据库)
- MySQL:更新视图数据的实用技巧(mysql更新视图数据)
- 实现Oracle数据库最佳性能优化(oracle数据优化)
- 深入理解MySQL导出Database数据(mysql导出数据库数据)
- 突破Redis数据上限,开拓新天地(redis数量上限)
- MySQL中的二进制数据存储实践(mysql二进制数据)
- 深入理解Redis的数据存储类型(redis数据存储类型)
- 使用Oracle的取模函数进行高级数据计算的方法简介(oracle取模函数)
- MSSQL简易添加数据指南(mssql 添加数据)
- 激发大数据潜能:Oracle大数据解决方案(oracle大数据解决方案)
- 深入理解Redis增长所需的数据存储和管理精湛技术(深入理解redis 书籍)
- 用外置Redis提升数据持久性与性能(为什么要外置redis)
- 深入理解Oracle数据分析一年的成长历程(oracle一年数据吗)
- Redis迁移原理深入理解数据迁移的本质(redis迁移原理)