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

相关文章

Java计算经纬度距离的示例代码

《Java计算经纬度距离的示例代码》在Java中计算两个经纬度之间的距离,可以使用多种方法(代码示例均返回米为单位),文中整理了常用的5种方法,感兴趣的小伙伴可以了解一下... 目录1. Haversine公式(中等精度,推荐通用场景)2. 球面余弦定理(简单但精度较低)3. Vincenty公式(高精度,

QT6中绘制UI的两种方法详解与示例代码

《QT6中绘制UI的两种方法详解与示例代码》Qt6提供了两种主要的UI绘制技术:​​QML(QtMeta-ObjectLanguage)​​和​​C++Widgets​​,这两种技术各有优势,适用于不... 目录一、QML 技术详解1.1 QML 简介1.2 QML 的核心概念1.3 QML 示例:简单按钮

Java实现视频格式转换的完整指南

《Java实现视频格式转换的完整指南》在Java中实现视频格式的转换,通常需要借助第三方工具或库,因为视频的编解码操作复杂且性能需求较高,以下是实现视频格式转换的常用方法和步骤,需要的朋友可以参考下... 目录核心思路方法一:通过调用 FFmpeg 命令步骤示例代码说明优点方法二:使用 Jaffree(FF

基于C#实现MQTT通信实战

《基于C#实现MQTT通信实战》MQTT消息队列遥测传输,在物联网领域应用的很广泛,它是基于Publish/Subscribe模式,具有简单易用,支持QoS,传输效率高的特点,下面我们就来看看C#实现... 目录1、连接主机2、订阅消息3、发布消息MQTT(Message Queueing Telemetr

Java实现图片淡入淡出效果

《Java实现图片淡入淡出效果》在现代图形用户界面和游戏开发中,**图片淡入淡出(FadeIn/Out)**是一种常见且实用的视觉过渡效果,它可以用于启动画面、场景切换、轮播图、提示框弹出等场景,通过... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细

Python实现获取带合并单元格的表格数据

《Python实现获取带合并单元格的表格数据》由于在日常运维中经常出现一些合并单元格的表格,如果要获取数据比较麻烦,所以本文我们就来聊聊如何使用Python实现获取带合并单元格的表格数据吧... 由于在日常运维中经常出现一些合并单元格的表格,如果要获取数据比较麻烦,现将将封装成类,并通过调用list_exc

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

Python日期和时间完全指南与实战

《Python日期和时间完全指南与实战》在软件开发领域,‌日期时间处理‌是贯穿系统设计全生命周期的重要基础能力,本文将深入解析Python日期时间的‌七大核心模块‌,通过‌企业级代码案例‌揭示最佳实践... 目录一、背景与核心价值二、核心模块详解与实战2.1 datetime模块四剑客2.2 时区处理黄金法

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

Java进行日期解析与格式化的实现代码

《Java进行日期解析与格式化的实现代码》使用Java搭配ApacheCommonsLang3和Natty库,可以实现灵活高效的日期解析与格式化,本文将通过相关示例为大家讲讲具体的实践操作,需要的可以... 目录一、背景二、依赖介绍1. Apache Commons Lang32. Natty三、核心实现代