提高代码质量的 10 条编码原则

提高代码质量的 10 条编码原则

本文转自 公众号 ByteByteGo,如有侵权,请联系,立即删除

今天来聊聊提高代码质量的 10 条编码原则。

软件开发需要良好的系统设计和编码标准。我们在下图中列出了 10 条良好的编码原则。

在这里插入图片描述

01 遵循代码规范

我们在编写代码时,必须遵循业界公认的规范,如 “PEP 8”、"Google Java Style "等。遵守一套约定俗成的代码规范可确保代码质量的一致性和可读性。

02 文档和注释

好的代码应具有清晰的文档和注释,以解释复杂的逻辑和决策,注释应解释为什么采用某种方法(Why),而不是具体做了什么(What)。文档和注释应清晰、简洁并不断持续更新。

03 健壮性

好的代码应该能够处理各种意外情况和输入,而不会崩溃或产生不可预测的结果。最常见的方法是捕获和处理异常。

04 遵循 SOLID 原则

“单一责任”、“开放/封闭”、“利斯科夫替代”、"接口隔离 "和 “依赖反转” – 这五项原则(简称 SOLID)是编写可扩展且易于维护的代码的基石。

05 简化测试

软件的可测试性尤为重要。好的代码应该易于测试,既要努力降低每个组件的复杂性,又要支持自动测试,以确保代码的行为符合预期。

06 抽象

抽象要求我们提取核心逻辑并隐藏复杂性,从而使代码更加灵活和通用。好的代码应具有适度的抽象性,既不过度设计,也不忽视长期的可扩展性和可维护性。

07 利用设计模式,但不要过度设计

设计模式可以帮助我们解决一些常见问题。然而,每种模式都有其适用场景。过度使用或滥用设计模式可能会使代码变得更加复杂和难以理解。

08 减少全局依赖性

如果使用全局变量和实例,我们可能会陷入依赖关系和混乱的状态管理中。好的代码应该依赖于本地化的状态和参数传递。

09 持续重构

好的代码具有可维护性和可扩展性。持续重构可以尽早发现并解决问题,从而减少技术债务。

10 安全是重中之重

好的代码应避免常见的安全漏洞。尤其是金融应用程序的代码,必须避免 SQL 注入、跨站脚本 (XSS) 和数据泄漏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/696171.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Studio One破解版和正版的区别 Studio One购买是永久的吗

在过去的很长一段时间里,很多小伙伴想要使用一款软件时,可能第一时间就去网上寻找破解版的资源, 白嫖的资源固然很香,但随着法制的健全和人们版权意识的增强,现在破解版的资源是越来越少了。同时破解版的资源也会伴随着…

大数据计算技术秘史(上篇)

在之前的文章《2024 年,一个大数据从业者决定……》《存储技术背后的那些事儿》中,我们粗略地回顾了大数据领域的存储技术。在解决了「数据怎么存」之后,下一步就是解决「数据怎么用」的问题。 其实在大数据技术兴起之前,对于用户…

java面试JVM虚拟机篇

1 JVM组成 1.1 JVM由那些部分组成,运行流程是什么? 难易程度:☆☆☆ 出现频率:☆☆☆☆ JVM是什么 Java Virtual Machine Java程序的运行环境(java二进制字节码的运行环境) 好处: 一次编写&a…

Excel之index、MATCH面试题、VLOOKUP函数,

VLOOKUP() 在表格的首列查找指定的数值,并返回表格当前行中指定列处的数值。 结构:VLOOKUP(查找值,查找区域,列序数,匹配条件) 解释:VLOOKUP(找谁,在哪里找,第几列,0或1) 1.目的:根据【产品】查找【销量】 公式:V…

pikachu靶场-XSS

XSS: XSS(跨站脚本)概述 Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型: 1.反射性XSS; 2.存储型XSS; 3.DOM型XSS; …

QT的UI入门

二、UI入门 QWidget类(熟悉) QWidget类是所有组件和窗口的基类,内部包含了一些基础的界面特性。 常用属性: 修改坐标 x : const int 横坐标,每个图形的左上角为定位点,横轴的零点在屏幕的最左边&#xff0c…

171基于matlab的随机共振微弱信号检测

基于matlab的随机共振微弱信号检测,随机共振描述了过阻尼布朗粒子受周期性信号和随机噪声的共同作用下,在非线性双稳态系统中所发生的跃迁现象. 随机共振可用于弱信号的检测。程序已调通,可直接运行。

HashMap 源码学习-jdk1.8

1、一些常量的定义 这里针对MIN_TREEIFY_CAPACITY 这个值进行解释一下。 java8里面,HashMap 的数据结构是数组 (链表或者红黑树),每个数组节点下可能会存在链表和红黑树之间的转换,当同一个索引下面的节点超过8个时…

【Webpack】处理字体图标和音视频资源

处理字体图标资源 1. 下载字体图标文件 打开阿里巴巴矢量图标库open in new window选择想要的图标添加到购物车,统一下载到本地 2. 添加字体图标资源 src/fonts/iconfont.ttf src/fonts/iconfont.woff src/fonts/iconfont.woff2 src/css/iconfont.css 注意字体…

[计算机网络]---TCP协议

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一 、TCP协…

Java并发基础:原子类之AtomicBoolean全面解析

本文概要 AtomicBoolean类优点在于能够确保布尔值在多线程环境下的原子性操作,避免了繁琐的同步措施,它提供了高效的非阻塞算法实现,可以大大提成程序的并发性能,AtomicBoolean的API设计非常简单易用。 AtomicBoolean核心概念 …

Facebook Horizon:探索虚拟现实中的社交空间

随着科技的不断进步,虚拟现实(VR)技术正成为社交互动和娱乐体验的新前沿。在这个数字时代,Facebook作为全球最大的社交媒体平台之一,正在引领虚拟社交的新时代,其推出的虚拟社交平台Facebook Horizon成为了…

深入理解C语言(5):程序环境和预处理详解

文章主题:程序环境和预处理详解🌏所属专栏:深入理解C语言📔作者简介:更新有关深入理解C语言知识的博主一枚,记录分享自己对C语言的深入解读。😆个人主页:[₽]的个人主页&#x1f3c4…

Imagewheel私人图床搭建结合内网穿透实现无公网IP远程访问教程

文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测…

flutter 文件上传组件和大文件分片上传

文件分片上传 资料 https://www.cnblogs.com/caijinglong/p/11558389.html 使用分段上传来上传和复制对象 - Amazon Simple Storage Service 因为公司使用的是亚马逊的s3桶 下面是查阅资料获得的 亚马逊s3桶的文件上传分片 分段上分为三个步骤:开始上传、上传对…

CSP-J 2023 T3 一元二次方程

文章目录 题目题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 题目传送门题解思路总代码 提交结果尾声 题目 题目背景 众所周知,对一元二次方程 a x 2 b x c 0 , ( a ≠ 0 ) ax ^ 2 bx c 0, (a \neq 0) ax2bxc0,(a0),可…

STM32G030C8T6:定时器1ms中断(以64MHz外部晶振为例)

本专栏记录STM32开发各个功能的详细过程,方便自己后续查看,当然也供正在入门STM32单片机的兄弟们参考; 本小节的目标是,系统主频64 MHZ,采用高速外部晶振,通过定时器3 每秒中断控制 PB9 引脚输出高低电平,从…

低代码开发:推动互联网企业数字化转型的关键因素

联网行业作为我国数字经济发展的核心驱动力,在推动国家数字化转型中扮演着至关重要的角色。与其他传统行业相比,互联网企业面临更加紧迫的数字化转型需求,因为它们需要不断适应快速变化的市场环境和技术趋势。 然而,由于互联网企业…

MFC 皮肤库配置

1.创建MFC 对话框 2.添加皮肤资源 添加资源 添加头文件 关闭SDL检测 添加静态库文件 修改字符集 添加头文件 将皮肤中的ssk文件加载到初始化实例中 > 运行即可

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(一)

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(一) 大家好 我是寸铁👊 总结了一篇刷题关于树、dfs、bfs、回溯、递归的文章✨ 喜欢的小伙伴可以点点关注 💝 105. 从前序与中序遍历序列构造二叉树 模拟分析图 代码实现 /*** Definition for a binary tre…