Web开发的艺术:C#开发中实现代码简洁性与规范性的终极指南

本文主要是介绍Web开发的艺术:C#开发中实现代码简洁性与规范性的终极指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、变量的要求

变量名

1.简短有意义:

合适: student_count,student_ids,student_enable_list, water_price

不合适: numberOfItemsInTheCart, totalPriceOfTheOrderInTheShoppingCart,temp, data,list

2.变量名之间不要太像:

合适: totalAmount, discountRate

不合适: totalAmount, totalAmt

3.别缩写

合适: maximumValue, transactionDate

不合适: maxVal, transDate

使用变量

1.常量先定义后使用

合适:int dayOfWeek = 7                 var result = sum / dayOfWeek

不合适:var result = sum / 7

2.类优先于字典

因为类提供了类型检查、支持继承、易开发(IDE提示)、易维护、可读性强 

二、函数的要求

1. 命名简短且有意义,使用动+名组合

// 不推荐的命名
void DoStuff() { ... }// 推荐的命名
void CalculateTotalAmount() { ... }

2. 单一职责

        每个函数应当只做一件事。这有助于提高代码的可维护性和重用性。函数的职责应当清晰,避免承担多个任务。

反例(违反了单一职责,一个函数三件事):

        1.难复用,有时候只想调用其中一个逻辑,而不是三个。  

        2.难维护,修改其中一个逻辑可能引发蝴蝶效应。


3. 无副作用(和单一职责差不多)

        函数除了其明确的功能外,不应有其他副作用。副作用是指函数在完成主要任务外,还改变了程序的状态或依赖于外部状态。

4. 入参少

        函数的入参应尽量少。过多的参数会降低函数的可读性和可维护性。如果函数需要很多参数,可以考虑使用类/元组来封装参数。

5. 函数之间不重复

        避免函数之间的功能重复。函数应尽量抽取出并复用已有功能,避免重复代码。

6. 循环复杂度小

        优化循环中的复杂度,使用提前返回(return)跳出循环(break)、继续循环(continue)来简化逻辑,提升代码的可读性。

三、注释的要求

简洁+明确

        正例如下

        反例如下

1.太简单:// 获取分组列表

2.太罗嗦:// 这个函数会根据输入的学生列表,处理所有学生数据,然后返回一个包含按组分类的学生数据的列表

3.胡言乱语:// 处理学生数据

4.浪费口舌:// 调用函数

 (未完待续。。)

这篇关于Web开发的艺术:C#开发中实现代码简洁性与规范性的终极指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1140417

相关文章

golang版本升级如何实现

《golang版本升级如何实现》:本文主要介绍golang版本升级如何实现问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录golanwww.chinasem.cng版本升级linux上golang版本升级删除golang旧版本安装golang最新版本总结gola

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四:

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os