carlkkx 写道
结论:当我们无法抽象出稳定接口时,我们应该无招胜有招,不变应万变。否则我们的强类型体系必然走向崩塌。
以前发过一篇:
JavaBean和FieldMap 静态定义和动态构建孰优孰劣?
http://www.iteye.com/topic/534249
时至今日我愈发有了这种感悟。
引用有所删减 :)
我还是很赞同楼主关于数据结构传递的设想的,也就是对于DTO,对于做存储来说使用映射机制比定义一个bean要容易。
参考了NoSQL思想、GAE的存储系统+结合了目前公司软件数据的特点来设计的“私有NoSQL”,我的观点有兴趣的可以看:面向对象,真的必须设计数据对象吗?
目前现状:
现在自己在设计一个档案存储系统:
界面定义bean类型和字段(包括字段的类型和检查),后台直接创建对应的表结构
bean编辑界面通过定义自动生成,可直接维护对象属性和关系
对外提供底层API:类型+对象ID做为对象定位,类型字段ID+对象ID 定位对象属性值——说白了对外就是个key-value系统,存储时还是bean对应一个表
对外提供高级API:
仿造Ibatis,只要你提供了对象类型+对象类型对应的class+映射处理器(系统本身预定义了一些简单的比如按名字映射,也可以通过xml配置映射,或直接编写adapter class),你可以通过输入Object bean来访问数据
查询设计:
底层提供了自定义查询语言MQL,通过antrl分析语法,转化为对应的SQL,发送到数据库中查询
或者
自己访问底层提供的元数据,自己组装sql执行查询
特别的:
以上底层数据全部使用memcached做了内存存储
或者
数据量小时直接使用map做为内存存储
背景:
问题:你知道的做企业应用的数据对象有多少,一个产品多个现场(>30个现场)的产品个性化的问题?
目标:
- 档案对象维护自动化
- 档案数据读取简单(比如UtilObject.getProp(propId, objId)即可获得属性值),外部可认为此方法耗用时间可以忽略
- 业务数据查询简单化(因为不需要考虑档案数据获取的时间了,底层处理数据时只需要针对objID集合对应的数据进行处理,表现在数据库就是select * from 对象的业务数据表 where oid in (???)的形式),此地方不讨论in的性能问题(对于in的使用,在我们的实际系统 40万采集设备,每天96个点,每个点大约24个数据项,4年数据库2T的规模看,未出现特别大的性能问题)——实在不行,可以对数据进行预先加载设计,因为绝大多数业务数据都是只读的
我的观点就是设计可以结合实际软件特色来做,一定要做适合的底层——也就是专有的系统
各个NoSQL产品,剥去它们宣传的仔细看看它们的优缺点,发现都是特别适合它们自己的
有些采用开源的最后还是转向基于开源的设计思想再开发自己的专有NoSQL产品!
——成功的产品必然是理论+公司价值磨合而形成的
分享到:
相关推荐
根据给定的文件信息,虽然没有提供具体的规程内容,但是可以推测这份文件是关于易碎品在物流、存储或运输过程中管理与检查的详细操作规程。由于文件名中包含“2017”年份标记,可以推断该规程是适用于2017年版本的...
这些分类有助于确定不同类型的物品需要采取何种级别的包装保护措施。 在封装方法中,文档介绍了多个基本概念和定义。销售包装指的是商品生产者直接用于展示和销售的包装,而裸件则是没有销售包装的商品。封装材料的...
在IT行业中,尽管我们主要关注的是技术和编程,但有时候也会涉及到其他领域的交叉应用,比如在这个情况下,"水性易碎纸淋涂白墨的制备方法"是一个与印刷技术相关的主题,尤其是涉及到材料科学和工艺流程。...
《具有防转移功能高频易碎RFID电子标签及其制备方法》是一份深入探讨现代电子技术,特别是无线射频识别(RFID)领域的专业资料。本文将围绕标题和描述中的核心概念,即“防转移功能”、“高频”、“易碎”和“RFID...
易碎型电子标签作为其中的一个特殊类型,其设计和应用具有独特的重要性。 易碎型电子标签,顾名思义,是指那些在特定条件下容易破损或失效的RFID标签。这种设计主要针对那些需要防止篡改或保护商品原封不动的场景,...
首先,陶瓷易碎电子标签是一种特殊类型的射频识别(RFID)标签,通常用于高价值或防伪需求较高的商品。它们由陶瓷材料制成,一旦破碎,无法修复,从而确保了标签的完整性与产品的原始状态。在电子政务领域,这种标签...
在IT行业中,设计装置往往涉及到各种技术和方法,用于创造或改进特定设备以满足特定需求。在本案例中,"一种改良型易碎纸"的设计装置可能是指在纸质材料上进行技术创新,以达到特殊的安全或功能目的。易碎纸通常被...
标签中的“资料 文档”表明这个压缩包内包含的是关于易碎防伪电子标签的相关资料和文档,可能是技术规格、设计原理、使用方法、案例分析等,这些内容可以帮助读者深入了解这一领域的知识。 在文件名称“行业分类-...
【包装印刷易碎品快递包装装置设计】 包装印刷易碎品快递包装装置是针对易损物品在运输过程中可能遭遇的破损问题而设计的一种自动化设备。该设计旨在提高包装效率,确保物品安全,减少物流过程中的损失。以下是设计...
易碎一世 :red_heart: 太多了很喜欢。 我也 :red_heart: 烧瓶。 因此,一旦需要和机会出现,我就决定创建自己的基于Flask的Ansible UI API和Scheduler。 注意-如果您只需要UI和API功能-请在此处查看应用程序的简化...
- 电池卡口和接口:确认电池卡口无损坏,电池接口无烧痕或缺失部分,同时电池本身不能有摔痕,以确保电池能够正常充电和使用。 - 接口完整性:多次提及的接口检查是验货的关键,包括电池接口、USB、网卡、VGA、...
该文档可能详细介绍了易碎纸的设计原理、生产工艺、应用案例,以及如何鉴别真伪的方法。通过这份文档,读者可以详细了解易碎纸在实际应用中的具体操作和防伪效能,掌握必要的鉴别技能。 对于从事防伪技术、高价值...
在考古发掘过程中,对出土的易碎青铜器的加固与长期保存和随后对青铜器的保护有关。 因此,加固技术必须科学,安全,有效。 从开挖现场出土的易碎青铜器的保护和修复工作入手,首先介绍青铜器的背景,然后介绍易损...
标题《一种变容量的自嵌入图像易碎水印算法》中的知识点主要围绕数字图像处理和数字水印技术。水印算法可以分为两类:鲁棒水印和易碎水印。鲁棒水印主要用于版权保护,能在一定程度的图像处理后仍然保持。易碎水印则...
6. **接口类型**: - **并行接口**:在并行接口中,数据通过多条线路同时传输,提高了传输速率。 - **串行接口**:仅用一条线路传输数据,每次只能传输一位,速度较慢,常用于打印机和终端设备。 7. **计算机端口...
在繁华社会的车水马龙中,有一种职业始终如一地散发着人性的光芒,那就是医生。他们不仅承载着生命之重,更以一腔热血和专业精神,护卫着百姓的健康。在这个快节奏的时代,医疗行业的工作者们面临着前所未有的挑战,...
《具有防转移功能高频易碎RFID电子标签的说明分析》 在当今信息化时代,RFID(Radio Frequency Identification,无线射频识别)技术已经成为数据采集和自动识别领域的重要手段,广泛应用于物流、零售、医疗、安防等...
双重分发模式用于根据方法调用中涉及的两个对象的类型实现动态多态性。它允许方法行为根据调用方法的对象和作为参数传递的对象的运行时类型的组合而有所不同。 ## 二、详细解释及实际示例 1. **实际示例**: - 在...