软件腐化

经典EMC案例-汽车车载电子行车记录仪显示屏EMC BCI整改案例 拿到这款汽车前装车载电子行车记录仪,小编首先在实验室还原客户描述的现象,确定现象符合客户的描述,再根据现象出现的对应频率做好记录,因为通常BCI FAIL的现象不局现于一个频率点,然后通过这些现象及频点,再结合产品的构造、线束,分析构思出大致解决方案。 阅读详情

随着时间的推移,各式各样的修改、新增需求会使软件变得越来越难以维护。软件逐渐的变得腐化了。

但软件出现下面这些气味时,就表明软件正在腐化。

僵化性(Rigidity)

很难对系统进行改动,哪怕是最简单的,因为每个改动都会迫使许多对系统其他部分的改动。应该是代码的耦合太厉害了。

脆弱性(Fragility)

对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题。导致这种问题的情况很多,功能不单一什么的都可能导致。

牢固性(Immobility)

很难解开系统的纠结,使之成为一些可在其他系统中重用的组件。功能间的依赖关系太强,以至于使用一个功能,必须同时处理很多不必要的功能。

粘滞性(Viscosity)

做正确的事情比错误的事情要困难。

软件的粘滞性

面对改动,一些方法可以保持设计而另一些方法会破坏设计。当那些可以保持设计的方法比破坏设计的方面更难应用时,就表明软件具有粘滞性。

环境的粘滞性

当开发环境迟钝、低效时,就会产生环境的粘滞性。

不必要的重复(Needless Complexity)

设计中包含有不具任何直接好处的基础结构。

不必要的重复(Needless Repetition)

设计中包含有重复的代码,而该重复的结构本可以使用单一的抽象进行统一。不要使用剪切和粘贴功能,它们是重复之源。

晦涩性(Opacity)

很难阅读、理解。没有很好的表现出意图。

那么是什么导致了软件的腐化呢?

在非敏捷环境中,由于需求没有按照初始设计预见的方式进行变化,从而导致了设计的退化。

但是敏捷团队是依靠变化来获得活力的。我们不需要事先设计,因此我们不需要一个完善的初始设计,那么自然不会由于需求的变化导致设计腐化了。

如何调试10G/25G以太网IP自协商/Link Training 如果是40G/50G, 100G以太网,选的是多通道的IP,务必保证两端的通道0是正确对接上的,因为在做自协商的时候,以太网只使用通道0,其它通道需在自协商完成后再加入工作。b. 自协商的工作完全由IP自动完成的,所以只要配置没问题,你只需要耐心等待就可以看到自协商的完成,以an_good_check为标志,并且进入下一步linktraining。c. 在LT的过程中,首先你要等到IP能够锁定LT帧,即frame_lock拉高,然后你就可以进行你自己的LT算法了,与AN不同LT是由客户手动完成的。 阅读详情

相关推荐

从CLIP到AnomalyCLIP:零样本异常检测的跨领域进化之路

本文探讨了从CLIP到AnomalyCLIP的技术演进,重点介绍了零样本异常检测在跨领域应用中的突破。AnomalyCLIP通过对象无关提示学习和多尺度特征提取,显著提升了工业质检、医疗影像等领域的检测精度,实现了高达96.4%的金属螺母划痕检测精度和85.7%的皮肤癌敏感度。这一技术为多模态模型在异常检测中的应用开辟了新路径。

r2s3t4的博客 111

软件腐化的七个特征之复杂性、重复性、晦涩性(设计模式原则的反面) (《敏捷软件开发》读书总结第三篇)

软件腐化的七个特征,设计模式,设计思想

weixin_43645811的博客 688

Photoshop免费获取指南:官方试用与开源替代方案详解

图像处理软件是数字内容创作的核心工具,其工作原理基于像素编辑、图层叠加与算法滤镜。这类软件的技术价值在于为设计师、摄影师和内容创作者提供了强大的视觉表达能力,广泛应用于平面设计、UI/UX、摄影后期及社交媒体内容制作等场景。在众多工具中,Adobe Photoshop以其全面的功能和行业标准地位备受关注。对于希望免费体验或使用的用户,存在合法且安全的途径。其中,Adobe官方提供的7天免费试用版允许用户在安全环境下体验完整功能,而开源替代方案如GIMP则提供了长期免费的强大图像编辑能力。理解这些合法获取方式

cigang4063的博客 526

软件架构:代码腐化的挑战和应对之道

代码腐化是指随着时间的推移,在不断的修改和扩展过程中,代码逐渐失去了其原有的清晰结构和可维护性,变得混乱和脆弱。代码腐化是软件开发过程中的一个常见问题,但通过采取有效的策略,我们可以有效地控制和减少其负面影响。作为开发者,我们应当培养良好的编码习惯,积极采用自动化测试,定期进行代码审查和重构,以保持代码库的健康和可维护性。

十年运维开发经验的王义杰在此分享自己的知识和经验 1411

人工智能,不止于模型:四步实现完整工作流

工程师越来越多地致力于将人工智能 (AI) 集成到自己的项目和应用中,同时不断着力提升自己的 AI 技能。面对 AI 问题,工程师首先要了解什么是 AI,以及如何将它纳入当前工作流,这看似简单,实则未必容易。在 Google 中搜索“什么是 AI?”会得到数百万条结果,包括不同程度的技术和相关信息。那么,对工程师而言,AI 意味着什么?人们对 AI 的关注主要集中在 AI 模型上,受此影响,工程师会迅速投入 AI 建模的研究。

r1832644594的博客 2818

数字IC后端PPA优化实战:Innovus中Timing一致性策略与Module Region布局技巧

本文深入探讨了数字IC后端设计中PPA优化的核心挑战,重点解析了Innovus与PrimeTime之间Timing不一致的根本原因。通过实战案例,详细介绍了在Innovus中设置Timing Margin、Derate以及RC Scale Factor等关键策略,以校准时序视图。同时,文章分享了利用Module Region进行物理布局规划的技巧,将关键模块约束在最优区域,并结合Group Path等进阶方法,有效提升时序收敛效率与PPA结果的可预测性。

f9g0h的博客 2689

软件腐化的七个特征之僵化性和脆弱性(设计模式原则的反面) (《敏捷软件开发》读书总结第一篇)

软件腐化的特征,僵化性和脆弱性,设计模式,敏捷软件开发

weixin_43645811的博客 1393

机器学习面试笔试求职必背!八股文(1/5)

算法工程师,技术软件类求职机器学习必背八股文 更多算法/业务/HR面等笔试题面试题 —— >个性签名自取! 1. 特征工程: 1.1 为什么要对特征做归一化处理: Feature scaling,常见的提法有“特征归一化”、“标准化”,是数据预处理中的重要技术。特征间的单位(尺度)可能不同,比如身高和体重,比如摄氏度和华氏度,比如房屋面积和房间数,一个特征的变化范围可能是[ 1000 , 10000 ] [1000, 10000][1000,10000],另一个特征的变化范围可能是[ −.

大厂offer宝典 1万+

面向对象软件设计原则(二) —— 软件设计的腐化

我们如何知道软件设计的优劣呢?以下是一些拙劣设计的症状,当软件出现下面任何一种气味时,就表明软件正在腐化。 僵化性(Rigidity):很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其他改动。 脆弱性(Fragility):对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题。 牢固性(Immobility):很难解开系统的纠结,使之成为一些可在其他系统中重用的...

爱.NET 222

月薪30k+的工业视觉,必备Java+YOLO技能(工业级落地全拆解)

30k+工业视觉岗的核心不是算法调参,而是用Java把YOLO落地到工业场景的能力——稳运行、能对接、可管理是高薪的核心壁垒;必备技能分五层:模型工业级适配、Java推理核心、SpringBoot后端、工业部署运维、场景适配,每层都要练到“能落地、能讲清、能避坑”;学习路径的核心是“实战驱动”:不要只学理论,从一个完整的工业项目(如锂电缺陷检测)入手,练完就能对标高薪岗。

2601_94871597的博客 525

LeRobot 入门教程(十)LIBERO 机器人终身学习评估

LIBERO是一项专注于机器人终身学习(LLDM)的基准测试平台,包含130项任务,分为5大套件(空间推理、物体操作、目标约束等)。LeRobot框架已集成LIBERO,支持单/多套件评估,并兼容SmolVLA模型。训练需使用预处理数据集(HuggingFaceVLA/libero),观测数据需符合规范(8维状态+双摄像头图像)。该平台采用MuJoCo模拟,支持无头服务器运行,旨在推动机器人持续学习算法的发展与标准化评估。

2506_90492529的博客 1664

软件系统腐化的四个原因

Rober .C. Martin指出,软件腐化的四个原因 1.过于僵硬(regidity) 表现:很难加入一个新功能,要波及很多模块,起初几天的工作,要很长时间才能实现。 对立面:可扩展性(extensibility),使新的模块更好插入。可以用开闭原则(O),里氏替换原则(L),依赖倒置(I),组合/聚合复用原则保证 2.过于脆弱(fragility) 表现:一个地方的修改,...

aibin0436的博客 500

Cadence OrCAD Capture 原理图中创建差分对约束的两种常用方法

本文介绍在原理图设计阶段,添加差分对的方法。

fydar的博客 3932

软件的腐化之路

软件腐化之路 本文并不是吐槽,而是总结开发过程中软件腐化的各种原因,希望基于此思考如何解决软件腐化的问题. 需求不明确 项目已有第n个版本,现开发第n+1个版本,但是需求不明确,导致可能无法将新需求融入到现有的设计,可能要调整现有设计,可能不要改.如果需求不明确,又要开始干活,那么可能到需求明确的时候,已经没有资源去做相应的调整了,这个时候通常会用各种hack方式实现功能,为后期版本埋坑. 定义不...

coooooding 634

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

设计的臭味——腐化软件的气味

 当软件出现下面任何一种气味时,就表明软件正在腐化。Ø 僵化性(Rigidity):很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其他改动。 Ø 脆弱性(Fragility):对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题。 Ø 牢固性(Immobility):很难解开系统的纠结,使之成为一些可在其他系统中重用的组件。 Ø 粘滞性(Viscos

多多的专栏 1660

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

软件腐化的机种表现

软件腐化的机种表现: l 僵化性(Rigidity):一个改动引起一连串的改动,必须改动的模块越多,设计就越僵化。 l 脆弱性(Fragility):改一个地方,N个地方都会出问题。 l 牢固性(Immobility):设计中包含了一些可供其他系统有用的部分,但又无法剥离出去。 l 粘滞性(Viscosity):要修改某些功能,无法沿用之前的设计,而不得不破坏之前的设计。 ...

chenwei6111的专栏 268

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

敏捷设计-腐化软件的气味

敏捷设计是一个过程,而不是一个事件。它是一个持续的应用原则、模式以及实践改进软件结构和可读性的过程。 腐化软件的气味 当软件出现下面现象,表明软件正在腐化。 僵化性 脆弱性 顽固性 粘滞性 不必要的复杂性 不必要的重复 晦涩性 僵化性 给了一个看起来简单的改动的合理估算,实际改动时发现改动带来的很多影响并没有预测到,需要修改的模块数目远远超过最初的预测,所话费的时间比初始估算的...

jikai2008的专栏 275

软件腐化的七个特征之牢固性和粘滞性(设计模式原则的反面) (《敏捷软件开发》读书总结第二篇)

软件工程、架构设计、设计模式、软件腐化、敏捷开发

weixin_43645811的博客 908

DDD解决软件系统腐化之道

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34240520的博客 892

腐化软件的气味

腐化软件的气味-《敏捷软件开发-原则、模式与实践》读书笔记摘抄自《敏捷软件开发-原则、方法与实践》-Robert C. Martin记住,在大多数软件项目中最不稳定的东西就是需求。 (1)僵化性单一的改动会导致有依赖关系的模块中的连锁改动。 (2)脆弱性在进行一个改动时,程序的许多地方就可能出现问题。

Welcome to cpluser's blog 1933

设计的臭味,腐化软件的气味

软件开发的过程中所体现出来的坏味道: 1.僵化性: 很难对系统进行改动,因为每个改动都会迫使许多对系统其它部分作出改动; 2.脆弱性: 对系统的改动往往会导致一些在概念上无关的地方出现问题; 3.牢固性: 很难解开系统的纠结,使之一些功能成为其它系统能够公用的组件; 4.粘滞行: 即做正确的事情比做错误的事情要困难很多,系统对环境和某些不可预料的事情太过于依赖; 5.不必要的

古影轩 1488

敏捷软件开发——第七章 什么是敏捷设计

第7章 什么是敏捷设计   可以使用许多不同的媒介描述设计,但是设计最终体现为源代码。从根本上讲,源代码就是设计。 7.1 设计臭味   如果幸运,你会在项目开始时就想到了系统的清晰图像。系统设计是存在你脑中的一幅至关重要的图像。如果幸运一点,在首次发布时,设计依然保持清楚。   接着,事情开始变糟。软件像一片坏面包一样开始腐化。随着时间流逝,腐化蔓延、增长。丑陋腐烂的痛处和疖子...

daxun0631的博客 186
上一篇: 极限编程简介
下一篇: 敏捷开发中的设计原则
weeweee
博客等级 码龄16年 10粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值