七条原则实现简单的代码设计

七大软件架构设计原则详解 详细讲解软件设计领域的七大软件架构设计原则! 阅读详情

1.  命名(变量名,参数名,函数名,也包括文件名)应当体现概念含义, 应当准确表达事物本质, 且恰如其分。

 

2.  涉及到计算(包括算术、逻辑、控制等等)的地方,如果这组运算行为,与现实业务中某个概念对应,则建议封装成一个函数。

 

3. 如果一个函数,体现的是现实业务中的一个大概念,但是其内部有若干个代码块,每个代码块体现了一个更细粒度的小概念,

     则建议将这些代码块抽取成函数。

 

4. 每个函数都不大,基本上200行以内。代码达到自注释的效果,层层隐藏实现细节。

 

5. 一个好的设计,增加新功能是,通常是只增加代码,几乎不修改任何代码。

    例如,增加一个宏定义,增加一个else if 分支,增加一个switch case分支,增加一个file_operation结构变量等。

 

6.  版本维护是一个长期的过程。

      版本演进过程中,如果发现违背了上述原则时,则可能需要及时进行新的抽像。即将老的概念进行进一步的包装,形成新的概念层。

 

7. 追求性能,与追求上述特性,是相冲突的。对于性能问题,需要拆中考虑。最好是针对对性能影响最关键的局部模块(例如,热度最高的函数)进行优化。

    当然,精良的整体设计对性能的提升无疑是有极大好处的。

代码规范原则与事例,很详尽的文本 目 录 1 目的 2 范围 3 注释规范 3.1 概述 3.2 自建代码文件注释 3.3 模块(类)注释 3.4 类属性注释 3.5 方法注释 3.6 代码间注释 4 命名总体规则 5 命名规范 5.1 变量(Variable)命名 5.2 常量命名 5.3 类(Class)命名 5.4 接口(Interface)命名 5.5 方法(Method)命名 5.6 名称空间Namespace)命名 6 编码规则 6.1 错误检查规则 6.2 大括号规则 6.3 缩进规则 6.4 小括号规则 6.5 If Then Else规则 6.6 比较规则 6.7 Case规则 6.8 对齐规则 6.9 单语句规则 6.10 单一功能规则 6.11 简单功能规则 6.12 明确条件规则 6.13 选用FALSE规则 6.14 独立赋值规则 6.15 定义常量规则 6.16 模块化规则 6.17 交流规则 7 编程准则 7.1 变量使用 7.2 数据库操作 7.3 对象使用 7.4 模块设计原则 7.5 结构化要求 7.6 函数返回值原则 8 代码包规范 8.1 代码包的版本号 8.2 代码包的标识 9 代码的控制 9.1 代码库/目录的建立 9.2 代码归档 10 输入控制校验规则 10.1 登陆控制 10.2 数据录入控制 立即下载

相关推荐

团子杂记:SAP收入确认工具RAR(Revenue Recognition&Reporting)在新收入准则下的应用

SAP收入确认工具RAR知识分享

Lucas1211的博客 4284

4招教你创建一个程序代码

更重要的是,将函数分为两大类,一类只做事,不需要返回值(比如与用户交互或设置变量的值),另一类则执行一些运算,最后返回结果。传统除法是指如果两个操作数都是整型的话,它将执行的是地板除(取比商小的最大整数)(关于“地板除”请参考第 5 章——译者注),而浮点除法是真正的除法,不管操作数是什么类型,浮点除法总是执行真正的除法。就像你看到的,操作符的优先级和你想象的一样:+和−优先级最低,*、/、//、%优先级较高,单目操作符+和−优先级更高,乘方的优先级最高。它读取标准输入,并将读取到的数据赋值给指定的变量。

电商数据Girl的博客 3318

YOLOv11 + TensorRT 在 Jetson 设备上的实时部署

YOLOv11 + TensorRT 在 Jetson 设备上的实时部署

p6666666668的博客 1589

代码规范

自己简单总结下代码规范吧,可能并不是很完整。想到哪儿就写到哪儿吧。 1、驼峰命名法,其实这个也没什么可说的了。 类名/接口名 :一般是首字母大写,后面跟着的单词首字母大写。比如:User、UserList; 方法名:首字母小写,后面跟着的首字母大写。比如:getUserList()、getPulicAccountInfo();普通的变量名也是如此。 常量:一般全大写...

Anthony_1223的博客 1264

四阶龙格库塔方法求解一次常微分方程组

四阶龙格库塔方法求解一次常微分方程组一、写在前面二、四阶龙格库塔方法三、使用四阶龙格库塔方法求解一次常微分方程组 一、写在前面 龙格库塔方法是数值求解常微分非线性方程的有利工具,计算精度较高,通过缩短步进距离和增加阶数可以进一步控制误差范围。工程上较为常用的是四阶龙格库塔算法(R-K4),在计算收敛的情况下往往可以得到比较好的结果。 二、四阶龙格库塔方法 这里简单介绍一下算法的具体实现过程,不做详细的推导。其求解的问题是形如方程: y˙=f(y,t),其中t∈[t0,t1]初值y(t0)=c0 \dot{y

HelloWorldTM的博客 2万+

从Delta Delay到Timing Window:详解数字芯片后端时序差异的那些坑

本文深入剖析了数字芯片后端设计中,模块级与系统级时序分析结果不一致的核心原因。重点解释了Delta Delay如何导致模块级分析的乐观假设,以及Timing Window(时序窗口)差异如何通过影响串扰噪声计算,在顶层集成时引发新的时序违例,尤其是保持时间问题。文章为工程师提供了从约束建模到签核策略的系统性应对方案。

beer8的博客 500

html简单网页代码:使用HTML做一个简单漂亮的页面(纯html代码)

📂文章目录二、✍️网站描述三、📚网站介绍四、🌐网站演示五、⚙️ 网站代码🧱HTML结构代码💒CSS样式代码六、🥇 如何让学习不再盲目七、🎁更多干货 ❤ 【作者主页——🔥获取更多优质源码】 ❤ 【学习资料/简历模板/面试资料/ 网站设计与制作】 ❤ 【web前端期末大作业——🔥🔥毕设项目精品实战案例】 # 一、👨‍🎓网站题目 🏮传统春节网页设计、🎅圣诞节节日发展、🥮中秋、端午传统节日习俗庆祝、🎏地区特色,网站模板 、等网站的设计与制作。 二、✍️网站描述 🏷️ 大学生传统节日网页作业成品采用DI

而风不止 1万+

Ubuntu 24.04下Loki+Alloy+Grafana日志分析系统的快速部署与实践

本文详细介绍了在Ubuntu 24.04系统上快速部署Loki+Alloy+Grafana轻量级日志分析系统的完整流程。通过二进制安装Loki、配置Alloy采集器以及设置Grafana可视化界面,构建了一套资源消耗低、易于管理的日志解决方案,并实战演示了如何采集和分析网络设备日志,特别适合资源有限的中小团队或边缘计算场景。

tensor9flow的博客 238

设计模式(一)设计六大原则

1. 单一职责原则(SRP) 定义:就一个类而言,应该仅有一个引起它变化的原因。 从这句定义我们很难理解它的含义,通俗讲就是我们不要让一个类承担过多的职责。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到破坏。 比如我经常看到一些Android开发在Ac

Android进阶三部曲 - 刘望舒 1万+

RHCSA Linux环境搭建

安装Linux操作系统一般有三种方式:为了便捷方便高效,因此本人选择通过虚拟机来使用Linux操作系统。先在官网(Download VMware Workstation Pro)下载好VMware workstation pro软件,下载安装完成后,需要激活打开。下载版本不同,所需激活码也不同(激活码可在网络上查找)

weixin_68256171的博客 1421

GitHub霸榜神器!NextChat领衔DeepSeek全栈开发范式

NextChat(原ChatGPT-Next-Web)是GitHub上斩获81.2K星标的现象级开源项目,定位为"轻量级AI助手终端",支持DeepSeek、Claude、GPT-4、Gemini等20+主流大模型。• 原生集成DeepSeek、GPT-4、Gemini Pro等模型API,同时兼容RWKV-Runner、LocalAI等自建模型框架,通过环境变量。• 客户端体积仅5MB(Windows安装包约6MB),采用PWA渐进式Web应用技术,首屏加载速度优化至100KB级,老旧设备亦可流畅运行。

实战AI智能体 895

让代码更加简洁的五大原则,简明叙述

1取变量名时像给孩子取名字一样认真 2一个函数只做一件事,长度不宜过长(<20行) 3循环、判断的嵌套尽量地少,最好小于等于两层 4让类只有一种职责

artistkeepmonkey的博客 676

【ROS2】从yaml文件中读取参数配置

ROS2:从yaml中读取参数,到节点;使用C++演示参数的增、删、改、查、遍历、监听变化

郭老二 1285

设计模式学习笔记 - 设计原则 - 7.DRY 原则及提高代码复用性

DRY 原则,英文描述为: Don't Repeat Yourself。中文直译:不要重复自己。将它应用在编程中,可理解为:不要写重读的代码。

chenjian723122704的专栏 1816

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

软件开发的七条原则

软件系统存在的原因:为用户提供价值。所有的决定都应该考虑到这一点。在指定系统需求之前,在关注系统的各个功能之前,在确定硬件平台或开发过程之前,问问自己以下问题:这是否能为系统真正增加价值?如果答案是否定的,那就不要去做。所有其他原则都以这一条为先。 原则#1:存在的原因 软件系统存在的原因:为用户提供价值。所有的决定都应该考虑到这一点。在指定系统需求之前,在关注系统的...

a859501的博客 393

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

设计模式的七条原则 适配器模式实现

设计模式

weixin_42469135的博客 934

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

unix设计十七条原则之二(unix编程艺术笔记)

最近在学习《unix编程艺术》。第一章非常不错,讲了很多Unix的历史,哲学基础,其中最重要的是提到的十七条设计原则。很多原则自己也知道,但是从来没有总结的如此详细深刻。 下面的内容大部分来自《unix编程艺术》这本书,少部分是我的一些理解。这是我读书的一个习惯,对于我认为

常高伟的专栏 3423

设计模式 学习笔记 七条原则

1开闭原则 软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension,but closed for modification),这就是开闭原则的经典定义。 这里的软件实体包括以下几个部分: 项目中划分出的模块 类与接口 方法 开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。 2里氏替换原则 继承必须确保超类所拥有的性质在子类中仍...

puppet113的博客 154

测试概念进行代码设计时的七条基本原则

当设计大型程序的时候,您必须时刻留心不同设计选项对诸如性能和可扩展性这样的特征的影响。随着软件产品的日渐复杂及其无所不在的部署,软件的“可测试性”也成了更重要的考虑事项。  彻底测试代码的重要性是显然的。花在编写测试和测试代码上的时间和精力给您带来的回报是维护成本的大幅降低。  然而,除非您很小心,否则您花在测试代码上的精力可能会首先达到花在编写代码上的精力的几倍!我曾看到程序员们齐心协力

溺水的鱼 - Later equals never. 1376

PPT制作经验总结(PPT制作七条原则)

PPT制作经验总结(PPT制作七条原则)         目前PPT已经成为大家交流的常用文档,下面就个人制作ppt过程中积累了一些经验总结成七条原则分享大家,共同交流提高。 1.先列内容提纲再做PPT设计,先做简单的后设计复杂的。 2.内容决定形式,先根据主题内容,选择制定PPT风格模板,配色。 3.以突出主题内容,思路清晰,言简意赅为主要目标,不以形式花

赵玉的专栏 8482

【七大软件架构设计原则详解】

设计原则一句话归纳目的开闭原则对扩展开放,对修改关闭降低维护带来的新风险依赖倒置原则高层不应该依赖底层更利于代码结构的升级扩展单一职责原则一个类只干一件事便于理解,提高代码的可读性接口隔离原则一个接口只干一件事功能解耦,高聚合、低耦合迪米特法则不该知道的,不要知道只和朋友交流,不喝默认人说话,减少代码臃肿里式替换法则子类重写方法功能发生变化,不应该影响父类方法的含义防止继承泛滥合成复用原则尽量使用组合实现代码复用,而不是用继承降低代码耦合。

qq_31532979的贺公子之数据科学与艺术博客,致力于科技向善,拥抱开源,要用技术的影响力来领导团队,而不是威权和职位! 2108

七大设计原则

在软件开发的领域中,随着技术的不断进步和市场需求的不断变化,软件系统的设计和维护变得越来越重要。为了确保软件系统能够长期有效地运行,并且能够在未来的发展中适应新的需求和技术变化,提高软件系统的可维护性和可复用性成为了开发过程中的关键目标。此外,增加软件的可扩展性和灵活性也至关重要,因为它们可以确保软件系统能够轻松地添加新功能或者修改现有功能,而不会引发大量的结构重组或代码重写。为了实现这些目标,程序员在开发程序时应该遵循一系列的设计原则。

超级博客 1179

基于测试概念进行代码设计的七条基本原则

当设计大型程序的时候,您必须时刻留心不同设计选项对诸如性能和可扩展性这样的特征的影响。随着软件产品的日渐复杂及其无所不在的部署,软件的“可测试性”也成了更重要的考虑事项。彻底测试代码的重要性是显然的。花在编写测试和测试代码上的时间和精力给您带来的回报是维护成本的大幅降低。然而,除非您很小心,否则您花在测试代码上的精力可能会首先达到花在编写代码上的精力的几倍!我曾看到程序员们齐心协力地对他们

elimago的专栏 787

unix设计十七条原则之一(unix编程艺术笔记)

最近在学习《unix编程艺术》。第一章非常不错,讲了很多Unix的历史,哲学基础,其中最重要的是提到的十七条设计原则。很多原则自己也知道,但是从来没有总结的如此详细深刻。 下面的内容大部分来自《unix编程艺术》这本书,少部分是我的一些理解。这是我读书的一个习惯,对于我认为重要的,我会把它打出来,在打字的过程中我会根据深入的思考理解。所以,笔记对我来说是一个思考和记忆的辅助手段。 1、模块原...

tibaloga 293
上一篇: C语言实现的配置文件读取功能,喜欢的拿去用.
下一篇: 嵌入式开发学习路线——写给初入门的同仁
无忧老猪
博客等级 码龄18年 200粉丝 112原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值