搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
很楠不爱3
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
力扣热门100题——盛水最多的容器(暴力解法,双指针,贪心)_盛水最多容器
2
nodejs+vue电影推荐系统 mysql影院售票选座系统1r6m2
3
shell编程,实战高级进阶教学_shell高级编程
4
【求职面试】救命,我好像发现了测试工程师面试通关秘籍
5
基于Python爬虫湖南长沙天气预报数据可视化系统设计与实现(Django框架) 研究背景与意义、国内外研究现状
6
JAVA中生成随机数Random VS ThreadLocalRandom性能比较_java random效率
7
基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的智能监考系统(Python+PySide6界面+训练代码)
8
线性代数 --- 最小二乘在直线拟合上的应用与Gram-Schmidt正交化(上)_最小二乘法拟合的gram矩阵
9
【c#面向对象】项目实践—汽车租赁系统2:创建系统界面、创建车辆相关类、声明集合
10
你想要的宏基因组-微生物组知识全在这(1910)_cytoscape giant
当前位置:
article
> 正文
重复的危害_数据重复值的坏处
作者:很楠不爱3 | 2024-02-21 01:25:11
赞
踩
数据重复值的坏处
重复的危害---《程序员修炼之道》节选
作为程序员,我们收集、组织、维护和利用知识,我们在规范中记载知识,在运行的代码中使其活跃起来并将其用于提供测试过程中所需的检查。
遗憾的是,知识并不稳定,它变化--常常很快。你对需求的理解可能会随着与客户的会谈而发生变化,政府改变规章制度,有些商业逻辑过时了,测试也许表明所选择的算法无法工作。所有这些不稳定都意味着我们要把很大一部分时间花在维护上,重新组织和表达我们系统中的知识。
大多数人都以为维护是在应用发布时开始的。维护就意味着修正bug和增强特性。我们认为这些人错了。程序员持续不断地维护。我们的理解逐日变化,当我们设计或编码时,出现了新的需求,环境或许变了,不管原因是什么,维护都不是时有时无的活动,而是整个开发过程中的例行事务。
当我们进行维护时,我们必须找到并改变事物的表示--那些嵌在应用知识中的知识胶囊。问题是,在我们开发的规范、过程和程序中很容易重复表述知识,而当我们这样做时,我们是在向维护的噩梦发出邀请--在应用发布之前就会开始的噩梦。
我们觉得,可靠地开发软件,并让我们的开发更易于理解和维护的唯一途径,是遵循我们称之为DRY的原则:
系统中的每一项知识都必须具有单一、无歧义、权威的表示。
我们称之为DRY--Don't repeat yourself!
与此不同的做法是在两个或者更多地方表达同一事物。如果你改变其中一处,你必须记得改变其他各处。这不是你能否记住的问题,而是你何时忘记的问题。
重复是怎样发生的
我们所见到的大多数重复都可归入下列范畴:
1、强加的重复(imposed duplication)。
开发者觉得他们无可选择--环境似乎要求重复。
2、无意的重复(inadvertent duplication)。
开发者没有意识到他们在重复信息。
3、无奈的重复(impatient duplication)。
开发者偷懒,他们重复,因为那样似乎更容易。
4、开发者之间的重复(interdeveloper duplication)。
同一团队(或不同团队)的几个人重复了同样的信息。
心得体会:
一般来说,我们的软件都是具有一定的生命周期的,那么维护、升级就是软件生命周期中非常重要一部分。重复的知识在系统中多个地方表示,会给维护工作带来极大的麻烦和风险。当然,造成重复的原因很多,诚如上面节选的段落所列出来的那些原因。但是,我们仍能够采取一些有效的措施来避免重复,譬如采用元数据记录一些配置信息,项目组定义一套良好的规范,增加开发者之间的交流,做好充分的文档记录等等。书中的一句话说得特别好,“这不是你能否记住的问题,而是你何时忘记的问题”。因为维护都是发生在不得不修改的时候,通常这些时候我们都会充满各种压力,那么如果恰巧你忘了更改多处重复知识中的一处,那么风险就产生了。有时候简短的测试并不能发现这些潜在的风险,那么这个风险就会流入客户手中。
总的来说,重复的知识会给维护带来很多危害,除非你的系统永远不需要维护,而通常这种情况是不会发生的。在开发过程中我们要尽力采取各种措施来避免重复。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/很楠不爱3/article/detail/121417?site
推荐阅读
article
爱奇艺
H5
专题页打造原生
体验
优化
实践...
01 项目背景
H5
专题及活动页面一直是公司大剧热综宣传、App拉新促活的重要承载方式,其在各个业务领域中扮演着至关重要的...
赞
踩
article
java
基于微信小
程序
的
户外
体能训练
uniapp
小
程序
_
java
户外
运动类型项目...
户外
体能训练
教学平台的设计主要是对系统所要实现的功能进行详细考虑,确定所要实现的功能后进行界面的设计,在这中间还要考虑如...
赞
踩
article
【大
语言
模型
系列】用
ChatDev
框架实现爬虫任务
的
完整过程
_
chatdev
实践...
Python大
语言
模型
实战:记录一次用
ChatDev
框架实现爬虫任务
的
完整过程
_
chatdev
实践
chatdev
实践...
赞
踩
article
某
面试
官分享经验:看
求职者
第一眼
,
开口说
第一句
话
,
面试
结果
就
差不多
定了
,
准确率高达90%以上......
我们以前分享过许多经验
,
但大多是站在打工人的视角上
,
今天给大家带来一个
面试
官的经验:1. 看
求职者
第一眼
,
开口说
第一句
话...
赞
踩
article
基于
Java
+Vue+
uniapp
微信小
程序
国产
动漫
论坛
系统设计和实现_小
程序
论坛
界面...
随着网络的发展,上网用户也是越来越多,网上
论坛
也是变的非常流行起来,大家可以通过
论坛
来进行交流讨论,
国产
动漫
论坛
里需要管...
赞
踩
article
《
程序员
修炼
之道》
读后感
...
本书分为8章,我重点看的是第二章,注重实效的途径,在这里便我学到了如何来完善自己所写的源代码。1.系统中的每一项知识都必...
赞
踩
article
芯片
面积
与
算力
_
芯片
中最占用
面积
和
功耗
的
是
什么...
芯片
面积
与
算力
芯片
面积
的
估算IO neck
和
core neck 一般称作 IO limited
和
core lim...
赞
踩
article
MySQL
篇之
分库
分表...
这个是使用过的,我们当时的业务是(xxx),一开始,我们也是单库,后来这个业务逐渐发展,业务量上来的很迅速,其中(xx)...
赞
踩
article
Linux指定
python
版本
&
使用
指定
版本
的
python
的
pip
_
linux
使用
指定的
pip
...
可以看到已经安装了2.7,3.8,3.9等多个
版本
的
python
。因为我需要
使用
3.8及以上
版本
的
python
,因此需要...
赞
踩
article
stable
diffusion
webui
学习
总结(
2
)
:技巧汇总...
4、启动reactor,并作如下设置,这里需要注意的是如果原图片和参考图中有多个角色,需要修改source image和...
赞
踩
article
车载
开发
核心技术——
SystemUI
控制技术
_android 13
systemui
...
本文介绍了
SystemUI
在
车载
开发
中的车机
控制技术
,包括音量控制、RingtonePlayer、电源管理、任务管理、通...
赞
踩
article
简单
的
Python
项目——《
外星人
入侵》(关键词:
pygame
,
类
,函数,
编组
,
图像
)_
pygame
...
文章目录运行代码及详细注解ship
类
alien
类
bullet
类
button
类
game_stats
类
scoreboard
类
...
赞
踩
article
QT报错:
error
:
invalid
use of
incomplete
type
‘
class
...
qDebug
用于程序调试,可以将调试信息直接输出到控制台。解决办法:加入其对应的头文件 - >_
error
: inval...
赞
踩
article
在
D3D
窗口中渲染
WINDOWS
的基本控件_
intermediate
d3d
window
如何拿到画...
最近没怎么上文,因为做的东西可能较简单,不好意思发了。不过清明要来了。有大块时间Coding了。呵呵。今天接到CS...
赞
踩
article
Google
Gemini
1.5
:引领跨模态
AI
GC信息分析
理解
与
视频
内容推理的新篇章,与 Ope...
具有100万token的上下文
理解
能力,是目前最强!具有跨模态
理解
和推理:能够对文本、代码、图像、音频和
视频
进行高度复杂...
赞
踩
article
three
.
js
实现
扩散波效果...
【代码】
three
.
js
实现
扩散波效果。_
three
.
js
实现
扩散
three
.
js
实现
扩散 ...
赞
踩
article
Spring
Boot
3
.x 系列【1】
Spring
Boot
3
.0
版本
新特性_springb...
本系列基于最新
Spring
Boot
3
.0
版本
,由浅入深,从实战到源码分析,详细讲解各种
Spring
Boot
的使用...
赞
踩
article
AI
GC
专题
:
Sora
开启
AI
GC
新纪元
,
海外龙头
AI
指引乐观...
今天分享的是深度研究报告
:
《页。
AI
GC
专题
:
Sora
开启
AI
GC
新纪元
,
海外龙头
AI
指引乐观 ...
赞
踩
article
【
Android
+
OkHttp3
+
Jsoup
】 模拟登录
教务
系统
抓取课表和成绩_
程序
访问
教务
系统
...
原文链接:https://blog.csdn.net/u013347241/article/details/527110...
赞
踩
article
Android10
SystemUI
系列
(
一
)概述...
由于
SystemUI
涉及到的模块儿较多,和framework的交互也比较多,所以笔者打算从两个方面去总结。
一
个是自己平...
赞
踩
相关标签
小程序
java
微信小程序
uniapp
vue.js
python
人工智能
语言模型
面试
职场和发展
uni-app
国产动漫论坛
自动驾驶
物联网
mysql
数据库
pip
开发语言
stable diffusion
学习
windows
服务器
车载开发
车载系统