大数跨境

软考高频新词:数据湖、代码坏味道到底是什么?

软考高频新词:数据湖、代码坏味道到底是什么? 软件工程师奇谈
2026-10-24
6
很多备考软考的同学刷题、逛交流帖时,常会看到两个概念:数据湖、代码坏味道。不少同学会疑惑,这些内容是什么,要怎么理解。

一、数据湖(Data Lake)

1、定义

数据湖:所有原始数据,不挑格式、不提前加工,统一存放的存储载体。

表格、日志、视频、图片、JSON、接口数据,都可以原样入库,先存储下来。

2、特点

• 存储未经清洗的原始数据

• 结构化、半结构化、非结构化数据都可以存放

• 入库阶段不需要提前建表、定义字段

• 灵活度高,适合大数据挖掘、AI分析、探索式分析

3、对比:数据湖 VS 数据仓库

数据仓库(DW)
先建模 → 先清洗 → 先规整 → 再入库
适合:固定报表、企业统计、日常对账

数据湖
先入库保存 → 要用再整理 → 随时分析
适合:大数据挖掘、机器学习、未知业务分析

区分口诀:
仓库先加工、后存储;数据湖先存储、后加工。

4、考察形式

题目会设置不同业务场景,让大家判断适合的数据存储方案,或是辨析二者的差异。

二、代码坏味道(Code Smell)

1、通俗一句话定义

代码可以正常运行、不会报错,但编写方式或者设计存在隐患,长期下来会提升维护的难度。

它不属于程序故障,只是一种信号,提示开发者这段代码可以做优化重构。

2、本质

坏味道代表代码设计不够合理,可读性、可维护性、扩展性偏弱,当下功能不受影响,但后续迭代容易出现问题。

3、常见的代码坏味道

1. 重复代码
多处出现内容相近的代码片段,修改的时候需要多处同步调整。

2. 过长方法 / 过长类
单个函数代码篇幅很长,或者一个类承载过多职责,也就是大家常说的大泥球类代码。

3. 魔法数字
代码里直接写入数值,没有定义常量去说明它的含义。

4. 参数过多
一个方法的入参数量较多,阅读和调用都比较麻烦。

5. 特征依恋
一个类频繁获取另一个类内部的数据,职责划分不够清晰,不符合封装思想。

6. 冗余临时变量
额外定义没有必要的中间变量,让代码变得繁琐。

4、配套知识点

识别出代码坏味道之后,对应的处理方式是重构(Refactoring)。
重构,是在不改变系统原有功能的前提下,优化代码结构,提升可读性、维护性和扩展性。

三、考生容易混淆的两点

混淆点1:把坏味道等同于Bug

Bug是功能运行出错;坏味道是代码质量层面的问题,功能可以正常执行,只是设计存在短板。

混淆点2:分不清数据湖和数据仓库

固定统计报表的场景,适合选用数据仓库;需要保留原始数据、做探索分析的场景,适合选用数据湖。

四、简短梳理

1. 数据湖:存放原始、多类型数据,先存储后处理,适配大数据、AI分析场景

2. 数据仓库:数据提前规整处理之后入库,多用于企业固定统计报表

3. 代码坏味道:程序可正常运行,但设计存在不足,需要通过重构优化

这两个概念,在近几年软考的题目里经常出现,选择题、案例题、论文都有可能涉及。
读懂本文,遇到相关题目就可以从容判断。

【声明】内容源于网络
0
0
软件工程师奇谈
软件工程师奇谈,除了程序,还有生活~
内容 87
粉丝 0
软件工程师奇谈 软件工程师奇谈,除了程序,还有生活~
总阅读2.5k
粉丝0
内容87