写出优雅简明代码的论题集 -- Csharp(C#)篇[2“.NET研究”]

简介:   谢谢大家对本系列第一篇写出优雅简明代码的论题集 -- Csharp(C#)篇[1]的回复和讨论,我相信针锋相对的辩论不仅有助于发现答案,更让我们了解问题后面的实质。  对程序员而言,我们的代码需要:  1. 在预算内实现需求,让用户可以使用 -- 让自己或者公司可以赚到钱  2. 方便自己修改及日后维护  3. 方便别人修改及日后维护  4. 便于重复使用,为以后的开发节省时间  5. 让系统高效的运作  从美国商学院毕业的学生们掌握了很多相似的思维模式,这不仅有利于他们解决问题,更重要的是方便他们彼此之间沟通。

  谢谢大家对本系列第一篇写出优雅简明代码的论题集 -- Csharp(C#)篇[1]的回复和讨论,我相信针锋相对的辩论不仅有助于发现答案,更让我们了解问题后面的实质。

  对程序员而言,我们的代码需要:

  1. 在预算内实现需求,让用户可以使用 -- 让自己或者公司可以赚到钱

  2. 方便自己修改及日后维护

  3. 方便别人修改及日后维护

  4. 便于重复使用,为以后的开发节省时间

  5. 让系统高效的运作

  从美国商学院毕业的学生们掌握了很多相似的思维模式,这不仅有利于他们解决问题,更重要的是方便他们彼此之间沟通。-- 换句话说,他们毕业后都安装上了相同的协议和一些可通用的接口,这样有一个基础平台可以让他们协同工作。

  论题七:命名规范

  也许有人认为没有必要再提这个问题,但在日常编码生活中,这的确是一个很重要的话题。

  7.1  类名、方法、常数使用Pascal casing

 
 
public class MyClass
{
const int DefaultNumber = 100 ;
public void MyMethod()
{ }
}

  7.2 局部变量,参数用camel casing

 
 
partial void OnContactIdChanging( int value)
{
int number;
}

  7.3 interface 名字以I 开头

  7.4 尽量不用单个字符命名变量,象 i 或者 t 。使用 index 或者 temp 之类代替。

  7.5 将所有来自framework 的 namespace 放在前面,而后再放第三方或自定义的:

 
 
using System;
using System.Linq;
using System.Data.Linq;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel.DataAnnotations;
using CodeSmith.Data.Attributes;
using CodeSmith.Data.Rules;

  论题八: 一个方法的参数不能超过5个,当多于5个时,应进行函数的拆分或者参数的封装。-- 嚯嚯就像论题一样的规定

  一些说明:不是为了给自己一个紧箍咒,而是在日常编程中,我们发现如果你写的方法不满足这样一个条件,一年后,就算是你自己也不太想去维护和修改,如果换成是其他程序员会对此更加的头痛,对吗?

  论题九: 不要滥用注释,有些非常清晰明确的代码不需要注释

  仅在必要的时候注释你的代码,不要太多,并且注释也要简单给力。

  论题十: 不要把数值hard-code在代码中,使用const 来定义

  论题十一: 不要使用””, 使用string.Empty

  正确的:

 
 
string name = string .Empty;

  不建议:

 
 
string name = "" ;

  论题十二: 善于合并if

  观察下面这段可爱的代码:

 
 
public bool Equals(CommentData obj) {
上海企业网站设计与制作 if ( ! CommentId.Equals(obj.CommentId)) return false ;
if ( ! Comment.Equals(obj.Comment)) return false ;
if ( ! CommentorId.Equals(obj.CommentorId)) 上海企业网站制作an>return false;
return true;
}

  如果我们写成这样会不会好些呢:

 
 
public bool Equals(CommentData obj) {
return CommentId == obj.CommentId &&
Comment.Equals(obj.Comment)
&&
CommentorId
== obj.CommentorId;
}

  观察下面这段可爱的代码:

 
 
public bool Equals(CommentData obj) {
if ( ! CommentId.Equals(obj.CommentId)) return false ;
if ( ! Comment.Equals(obj.Comment)) return false ;
if ( ! CommentorId.Equals(obj.CommentorId)) return false ;
return true ;
}

  如果我们写成上海徐汇企业网站设计与制作:white;' href='http://www.93tj.com'>上海徐汇企业网站制作这样会不上海网站建设会好些呢:

 
 
public bool Equals(CommentData obj) {
return CommentId == obj.CommentId &&
Comment.Equals(obj.Comment)
&&
CommentorId
== obj.CommentorId;
}
上海闵行企业网站设计与制作

   论题十三: 不断重构你的代码

  当有新的需求或新改动的时候,可以拨一些时间来重构。 -- 你可能突然发现,原来重构后的代码可以如此美丽。使用一些重构的插件,比如resharper可以使你事半功倍。

  未完待继…

目录
相关文章
|
1月前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
|
11天前
|
开发框架 监控 .NET
C#进阶-ASP.NET WebForms调用ASMX的WebService接口
通过本文的介绍,希望您能深入理解并掌握ASP.NET WebForms中调用ASMX WebService接口的方法和技巧,并在实际项目中灵活运用这些技术,提高开发效率和应用性能。
30 5
|
20天前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
68 13
|
24天前
|
开发框架 .NET PHP
ASP.NET Web Pages - 添加 Razor 代码
ASP.NET Web Pages 使用 Razor 标记添加服务器端代码,支持 C# 和 Visual Basic。Razor 语法简洁易学,类似于 ASP 和 PHP。例如,在网页中加入 `@DateTime.Now` 可以实时显示当前时间。
|
1月前
|
敏捷开发 缓存 中间件
.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素
本文深入探讨了.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素,并通过企业级应用和Web应用开发的实践案例,展示了如何在实际项目中应用这些模式,旨在为开发者提供有益的参考和指导。
25 3
|
1月前
|
Java 物联网 编译器
C#一分钟浅谈:.NET Core 与 .NET 5 区别
本文对比了 .NET Core 和 .NET 5,从历史背景、主要区别、常见问题及易错点等方面进行了详细分析。.NET Core 侧重跨平台支持和高性能,而 .NET 5 在此基础上统一了 .NET 生态系统,增加了更多新特性和优化。开发者可根据具体需求选择合适的版本。
51 7
|
1月前
|
人工智能 开发框架 前端开发
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
|
1月前
|
开发框架 网络协议 .NET
C#/.NET/.NET Core优秀项目和框架2024年10月简报
C#/.NET/.NET Core优秀项目和框架2024年10月简报
|
28天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
28天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。