提升代码质量

简介: 好的代码应易读、易改、易维护,写单测即是“吃自己狗粮”,从用户视角检验代码。高单测覆盖率的项目更原子化、边界清晰,利于迭代与重构。低圈复杂度意味着逻辑简洁、易于测试,而缺乏单测的复杂代码则难以维护。写单测促使开发者优化设计,降低认知负担,提升整体代码质量。(238字)

代码是写给⼈看的,好的代码应该是易读、易改、易维护的。写单测的过程其实就是吃⾃⼰代码狗粮(dogfood)的过程,从⽤户/研发视⻆去使⽤⾃⼰的代码,帮助我们提升代码质量。
● 好的代码是易测的:业界很早就提出了圈复杂度(Cyclomatic complexity)的概念,⽤来衡量⼀个模块判定结构的复杂程度,其数量上表现为独⽴路径的条数,也可理解为覆盖所有的可能情况最少使⽤的测试⽤例个数。圈复杂度⼤说明程序代码的判断逻辑复杂,可能质量低,且难于测试和维护。因此好的代码⼀定是圈复杂度低的,也是易于测试的。
● 易于迭代演进:没有什么软件是⼀成不变的,好的软件系统应该是易于演进的。单测覆盖⾼的项⽬模块更原⼦化,边界更清晰,修改起来更容易。单测覆盖更全的项⽬重构的⻛险也相对更⼩,相反⼀个没有单测覆盖的复杂项⽬是没⼈敢碰的。
● 更优质的设计:前⾯也提到,好的单测能够提升代码的质量。如果⼀个研发需要给⾃⼰的代码写单测,他就会注重代码的模块化分割,减少过⻓、圈复杂度过⾼的method。下⾯的例⼦就是⼀段没有单测的代码的认知复杂度值(可以理解是圈复杂度的⼀个改良版,从代码是否容易理解的⻆度衡量),超标了⾜⾜三倍。现在回过头来想补单测,脑袋都⼤。

相关文章
|
人工智能
cdr2023绿色版一键安装下载CorelRAW2023
CDR全称是CorelRAW2023,它不同于Photoshop,PS是一款图片处理软件,而CDR是一款较为常用的矢量绘图设计软件,该软件给设计师提供了矢量动画、页面设计、网站制作、位图编辑和网页动画等多种功能,使用的比较多的版本是2022版的和X8版,不过呢我这里都有呢~
3104 0
|
2月前
|
机器学习/深度学习 人工智能 编解码
阿里云 AI 服务器配置及价格表_今年最新阿里云GPU服务器租赁费用(1个月、1年和1小时收费明细表)
阿里云 AI 服务器提供多样化硬件组合方案,涵盖 CPU+GPU、CPU+FPGA、CPU+TPU、CPU+ASIC 等多种加速卡配置,具备超强计算能力,主要适用于人工智能、机器学习、深度学习等计算密集型任务,同时也可满足科学计算、图形可视化、视频处理等场景的算力需求。以下是其 GPU 服务器的具体规格、价格及适用场景整理:
|
1月前
|
人工智能 JSON 网络协议
AI 大模型 LLM API 深入解析:Gemini 3.0 Pro 的 SSE 流式响应与大模型接口跨区域延迟优化实践
本文对比Google Vertex AI与OpenAI在SSE协议处理上的差异,针对跨洋网络高延迟问题,提出通过聚合层优化TTFT。结合GRPC与REST的适配挑战,引入协议转换网关,实测P99延迟降低75%,显著提升连接稳定性与首 token 速度。
184 2
|
2月前
|
Web App开发 JavaScript 前端开发
Vue实用组件与工具使用指南
本文系统梳理Vue开发中常用UI组件库(如Element Plus、Vant)、状态管理(Pinia)、工程化(Vite)及调试工具,结合实操示例讲解核心用法与选型建议,助力开发者提升效率、规范流程、聚焦业务。
108 0
|
2月前
|
存储 人工智能 图形学
阿里云无影 GPU 云电脑(NVIDIA RTX 5880 显卡)收费价格表:月付与年付费用详解
阿里云无影 GPU 云电脑凭借搭载的 NVIDIA RTX 5880 专业显卡,成为高性能计算场景的热门选择 —— 无论是 3D 建模、工业设计这类图形密集型任务,还是 AI 推理、机器人仿真等计算需求,都能依靠其强劲的硬件配置高效完成。对有这类需求的用户来说,最关心的就是不同配置的具体收费标准,尤其是月付和年付的费用差异,以及如何根据自身场景选择性价比最高的方案。本文结合最新的价格信息和配置细节,用通俗的语言拆解各规格的收费情况,同时补充适用场景和计费方式说明,帮大家清晰掌握成本构成与选型逻辑。
|
3月前
|
存储 安全 开发者
阿里云4核8G云服务器收费标准与活动价格解析:u1/u2i/c9i多规格价格参考
阿里云4核8G服务器价格是多少?当前,经济型e实例的按量付费最低标准为每小时0.45元,包月费用为159.84元,而包年费用则为1477.44元。在阿里云的活动中,通用算力型u1实例的包年价格低至955.58元起,u2i实例的包年价格为1170.26元起,而计算型c9i实例的包年价格则为3136.81元起。不同实例类型的4核8G云服务器,其价格存在差异,且日常购买价格与活动期间价格也有所不同。以下是阿里云4核8G云服务器的最新价格概览。
790 4
阿里云4核8G云服务器收费标准与活动价格解析:u1/u2i/c9i多规格价格参考
|
9月前
|
传感器 人工智能 供应链
一场关于物料清单BOM的深度对话
这段对话发生在某科技公司茶水间,新入职的采购专员张薇向供应链总监陈峰请教BOM表的作用。陈峰以乐高说明书为喻,解释BOM是产品的物料清单,涵盖零件型号、用量与供应商信息。他通过实例说明BOM错误可能引发采购、生产和售后等环节的连锁问题,如材料浪费、返工增加及客户索赔。最后,陈峰提出通过源头管控、动态监测和反向追溯优化BOM管理,并强调其准确率对提升企业毛利率的重要性,展现了BOM在现代制造业中“悄然重写利润法则”的核心地位。
259 12
|
10月前
|
存储 机器学习/深度学习 关系型数据库
《ONNX模型牵手MySQL:数据交换全攻略》
ONNX模型与MySQL数据库的数据交换是机器学习系统中的关键环节。ONNX作为开放式神经网络交换格式,提供跨框架的模型兼容性;MySQL则以高效稳定的结构化数据管理能力著称。两者结合时,需解决数据格式适配、表结构设计及预处理等问题。通过序列化、反序列化和性能优化(如索引、批量操作、缓存),可实现高效的数据交互。同时,还需应对数据一致性、格式匹配及连接问题,确保系统稳定性和可扩展性,为AI应用提供坚实支持。
339 32
|
12月前
|
Web App开发 编解码 弹性计算
实时云渲染技术布道 | 像素流送技术与商业化实时云渲染产品的指标对比
随着虚幻引擎(UE)在高品质应用开发中的广泛应用,大内容与轻终端的矛盾日益突出。实时云渲染技术应运而生,成为解决这一矛盾的关键。本文以LarkXR实时云渲染平台为例,对比UE自带的像素流送插件,探讨云渲染技术的革新。LarkXR提供完整的实时云渲染PaaS服务,涵盖云端算力管理、网络传输优化和异构终端接入全流程,支持2K-8K分辨率、30-120FPS帧率,具备强大的集群并发能力和多引擎兼容性,整体性价比远高于像素流送,为开发者提供了更高效、专业可靠的解决方案。
|
机器学习/深度学习 测试技术 计算机视觉
NeurIPS 2024:FaceChain团队新作,开源拓扑对齐人脸表征模型TopoFR
在2024年NeurIPS会议上,FaceChain团队推出TopoFR模型,通过利用数据的拓扑结构信息,显著提升了人脸识别的准确性。TopoFR采用PTSA策略和SDE策略,分别增强了模型的泛化能力和对硬样本的处理效果。实验结果显示,TopoFR在多个基准测试中表现优异,特别是在IJB-C和IJB-B等高难度测试中,显著超越了现有方法。
514 5