模块化思想在实践中的应用

简介: 各种编程语言中的函数,数据仓库的标签体系,甚至于数据中台的核心理念,都是把模块化的思想发挥到了极致,避免了我们重复造轮子,消除了数据烟囱,用最小的投入获得了最大的产出。

在谈论模块化开发之前,不得不提到近年来火热的数据中台的概念。在众多繁杂的对数据中台的定义中,有的偏重于功能,有的偏重于特点,似乎没有一个权威的定义,我更倾向于用四个字来描述,那就是“共享复用”,虽然很短,却道出了数据中台的本质,这也一直指导着我在数据仓库的具体实践。

云巧标准,包括了自治、云原生、可发现、可编排、健壮、模块化6个维度。其中,复用一词跟其中的模块化开发的核心理念不谋而合。

水无定势,兵无常法,但大的道理总是相通的,并能够随着时间的发展赋予新的生命,但抽丝剥茧之后,留下来的本质东西大同小异,模块化开发的理念便是如此。

我们知道,数据仓库的发展经历了三个阶段,简单报表阶段,数据集市阶段,数据仓库阶段,在报表阶段,数据开发人员为了减轻工作量,在多变的需求中把常用的核心指标逻辑沉淀下来,在下次有相同的需求时,拿来即用,这其实就是复用的思想。

各种编程语言中的函数,数据仓库的标签体系,甚至于数据中台的核心理念,都是把模块化的思想发挥到了极致,避免了我们重复造轮子,消除了数据烟囱,用最小的投入获得了最大的产出。
1.png

在具体的项目实践中,深刻理解了模块化开发的好处,并多次从中受益,不管这种思想叫“数据中台”也好,叫云巧也罢,但都体现了模块化组装式开发的思想。

举三个典型的例子:
其一,在中国移动的B域数据治理过程中,有一个场景是需要通过产品实例id,去判断这个产品是移动,固网,宽带还是其它,因为来源系统的数据业务含义不同,不同的省份,甚至同一省份下的不同地市就有不同的判断逻辑,体现到代码里,就需要编写各种case when,以致最后这个代码特别长,当时我们的做法就是把这段逻辑固化下来,在整个数据中台中出现有且仅有一次,以便于能够在需求逻辑变更的时候,变更这一处代码即可,可以想像,如果有多处这样的代码出现,代码冗余不说,极易出现指标不一致,结果不统一,维护困难,那会是一件多么痛苦的事情。

其二、曾经遇到过这样一个需求,因为要计算各种同比环比指标,但牵涉到2月情况特殊,有的28天有的29天,再做环比的时候,如果在3月30号的时候去计算环比,那就得给出明确的业务计算公式。需求如下:
3.png

乍一看,会不知所以然,但抛开问题的表面,其实质只是要通过输入一个日期值去返回一个要对比的日期值而已,理解到这个问题的本质后,问题就迎刃而解了,我们把这段逻辑固化到一个udf函数里,对这块儿逻辑进行了封装,如果当初我们一味的用sql去实现,大概率不会如此完美的解决这个问题,这就是模块化思维的重要案例。

其三,有一个场景是计算单车的top排名。数据是共享单车的订单表,核心字段是开始经纬度,结束经纬度,订单的开始时间和结束时间,在做了常规的数据标准化,属性冗余之外,根据业务需求的特点,要经常计算从某个围栏出来的top5目的地和从某个围栏结束的top5出发地,我的做法是加工出来这样一个通用的能力模型,把所有的围栏的出发地和目的地提前加工出来,在使用时稍加限定即可,这样一个模型为后续的业务开展,以及融合其它的业务的时候直接拿来即用,而不是重复的造轮子,节省了很多人力,这也是模块化思想的一个重要案例。

可能有人会说,你的这个模型支撑不了xx场景,我想说的是凡事总有例外,你能解决大多数问题就可以了,生活中的“八二原则”处处可见。

2.png4.png

这样的一个能力模型一来稳固,二是便于维护,就像是一棵参天大树的躯干一样,无数的数据看板、大屏指标,可视化应用都是生长在这个躯干下的枝叶,在这个躯干基础上稍微加工即可。有了这样的躯干,我们就能够避免很多的指标不一致问题,这个躯干是我们数据应用的中流砥柱,所有的上层数据应用只是临门一脚问题,这临门一脚准不准,快不快,好不好,完全取决于我们建设的这个躯干是否科学合理。

可以看到,模块化思想的运用,前提是对业务有充分的理解和对问题本质的把握。你只要掌握了模块化思想的本质,并能够在实践中运用,很多事情会事半功倍。

相关实践学习
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
SQL Java Shell
OBCP实践 - OceanBase 执行计划
在OceanBase数据库管理系统中,执行计划(Execution Plan)是数据库优化器基于SQL查询语句生成的一种逻辑表示,它详细说明了数据库如何执行SQL查询,包括选择合适的索引、连接顺序、临时数据处理方式、排序算法等一系列操作步骤,最终目的是为了最有效地获取所需数据并返回给客户端。
686 0
|
10月前
|
JavaScript 数据可视化 测试技术
Node.js 性能诊断利器 Clinic.js:原理剖析与实战指南
Clinic.js 是由 NearForm 开发的 Node.js 性能诊断工具集,通过可视化、低开销的方式帮助开发者快速定位 CPU 高占用、事件循环延迟、内存泄漏等性能瓶颈。它包含三大核心工具:`doctor` 初筛异常,`flame` 分析 CPU 热点,`bubbleprof` 追踪异步 I/O 延迟。基于 `perf_hooks`、`async_hooks` 等技术,实现多维度数据关联与智能建议,适用于预发环境压测与性能优化,显著提升调试效率。
884 14
|
人工智能 智能硬件
Claude 4来了 ,与DeepSeek/Qwen/Hunyuan 谁更强?
Claude 4发布,号称多项突破与超越。本文通过国内首款办公提效AI牛马智能体AiPy,在端午旅游规划场景下测评Claude 4、DeepSeek v3、Qwen-Plus和HunYuan-Turbos的表现。测评任务为制定1500元内端午旅行计划,并生成HTML报告。结果显示,Claude 4表现卓越但价格昂贵,是国产大模型的十倍以上;DeepSeek性价比高,值得称赞。国产大模型虽有亮点,但仍需努力追赶国际水平。测评结果附有各模型生成的报告截图对比。
|
10月前
|
存储 Java
Java语言中向数组添加元素的两种策略
在实际应用中,选择哪种策略取决于具体需求。如果你的应用不需要经常动态地更改数组大小,并且对性能有严格的要求,可能会倾向于使用数组复制的方式并尽量减少复制次数。而如果你需要一个可变长的列表,并且对元素的插入和删除操作更频繁,那么使用集合类将会是更合适的选择。
432 1
|
10月前
|
人工智能 监控 安全
Veeam Recovery Orchestrator 13.0 发布 - 恢复编排
Veeam Recovery Orchestrator 13.0 发布 - 恢复编排
239 0
Veeam Recovery Orchestrator 13.0 发布 - 恢复编排
|
11月前
|
人工智能 分布式计算 PyTorch
Ray Forward 2025 定档 12 月 20 日北京!议题征集通道已开放
由蚂蚁集团发起的 Ray 中文社区与蚂蚁开源联合主办的 Ray Forward 2025,将于 12 月 20 日在北京蚂蚁 T 空间正式启幕,以 “拥抱 AI,Ray 向未来” 为主题,邀您共探下一代智能计算架构的进化方向。
|
运维 监控 安全
高效运维管理:提升系统稳定性的策略与实践
【10月更文挑战第2天】 在当今数字化时代,运维管理成为企业IT部门的重要任务。本文将探讨如何通过高效的运维管理策略和最佳实践,提升系统的稳定性,确保业务持续平稳运行。通过分析常见问题、预防措施以及应对策略,我们将揭示高效运维的关键要素,助您打造一个可靠的IT环境。
|
监控 安全 数据挖掘
Palo Alto网络防火墙日志监控
EventLog Analyzer是一款集中式日志管理工具,专用于审计Palo Alto Networks等防火墙日志。支持实时告警、自定义报表、威胁分析与合规归档,助力高效识别异常登录、恶意流量及安全事件,提升网络安全响应能力。
384 0
|
监控 搜索推荐 UED
301重定向对SEO的影响:全面解析与最佳实践
本文深入探讨了301重定向在SEO中的作用,涵盖基本概念、积极影响(如保留链接权重、避免重复内容)、潜在风险(如权重传递不完全、错误实施)及最佳实践。同时对比了其他重定向类型,提供了技术实现建议和常见应用场景,帮助网站管理员正确使用301重定向以优化用户体验和搜索引擎表现。
705 16
|
人工智能 数据库
Poetry2Image:专为中文古诗词设计的图像生成校正框架,增强了诗歌内容与模型生成图像之间的一致性
Poetry2Image 是一个专为中文古诗词图像生成设计的迭代校正框架,通过自动化反馈和校正循环,提升诗歌与图像之间的一致性,有效捕捉诗歌的语义和艺术精髓。
732 11
Poetry2Image:专为中文古诗词设计的图像生成校正框架,增强了诗歌内容与模型生成图像之间的一致性

热门文章

最新文章