`
widen
  • 浏览: 6821 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

.Net最佳实践 (1-10)

阅读更多
.Net最佳实践

2009年8月30日

对天发誓,这篇文章绝对是我刚才翻译的

译者注:弟弟刚才叫我帮他翻译一篇文章,我哪敢不从,遂译之。翻译的过程中发现很有道理,对大多数编程语言都适用,翻译下来,学了东西不少,深感浑身舒服,遂共享之。欢迎大家拍砖。

到Twitter上follow译者:@jiakuan
到新浪微薄上专注译者:http://t.sina.com.cn/jiakuan


正片开始上映:
------------------------------------------------------------

  1. Avoid writing very long methods. A method should typically have 1~25 lines of code. If a method has more than 25 lines of code, you must consider re factoring into separate methods.


1.  避免编写非常长的方法。典型的情况下一个方法应该只有 1 25 代码。如果一个方法含有多余 25 行的代码,你必须考虑重构到 单独的方法中。


  1. A m ethod should do only 'one job'. Do not combine more than one job in a single method, even if those jobs are very small.


2.   一个方法应该只做 一个 任务 即使任务都非常小,也不要把多个任务 一起放到单个方法中。


Good:

              // Save the address.

              // 保存这个地址。

              SaveAddress (  address );

             

              // Send an email to the supervisor to inform that the address is updated.

              // 发送一个邮件给管理员,告知 这个 地址被更新

              SendEmail ( address, email );                            

             

              void SaveAddress ( string address )

              {

                            // Save the address.

                            // ...

              }

             

              void SendEmail ( string address, string email )

              {

                            // Se nd an email to inform the supervisor that the address is changed.

                            // ...

              }

 

Not Good:

 

              // Save address and send an email to the supervisor to inform that

// the address is updated.

// 保存地址并发送一个邮件 给管理员,告知这个地址被更新了。

              SaveAddress ( address, email );

 

              voi d SaveAddress ( string address, string email )

              {

                            // Job 1.

                            // Save the address.

                            // ...

                            // 任务 1

                            // 保存这个地址。

                            //

 

                            // Job 2.

                            // Send an email to inform the supervisor that the address is changed.

                            // ...

                            // 任务 2

                            // 发送一个邮件告知管理员这个地址被更新了。

              }

 

  1. Use the c# or VB.NET specific types (aliases), rather than the types defined in System namespace.


3.  使用 C# 或者 VB.NET 的特定类型(别名), 而不是用在 System 名字空间里面定义的类型。

 

              int age;   (not I nt 16 )

              string name;  (not S tring)

              object contactInfo; (not O bject)

 

             

Some devel opers prefer to use types in Common Type System than language specific aliases.

相对于语言 特定的别名, 有些开发人员 喜欢使用 Common Type System 里面的类型

 

  1. Always watch for unexpected values. For example, if you are using a parameter with 2 possible values, never assume that if on e is not matching then the only possibility is the other value.


4. 总是检查事先不能预料的值 。例如,如果你正在 使用的一个参数有两个可能的值,绝对不要假设 如果其中一个值不匹配就一定会是另一个值。

 

Good:

 

If ( memberType == eMemberTypes.Registered )

{

              // registered user… do something…

// 注册 用户 做相关处理

}

else if ( memberTy pe == eMemberTypes.Guest )

{

              // Guest user... do something…
// 游客 做相关处理

}

else

{

                            // Unexpected user type. Throw an exception

                            // 未知的用户类型,抛出 一个异常

                            Throw new Exception (“Un expected value “ + memberType.ToString() + “’.”)

 

                            // If we introduce a new us er type in future, we can easily find

// the problem here.

// 如果我们将来引入一个新的用户类型,我们就可以容易的从这个地方发现

// 问题。

}

 

Not Good:

 

If ( memberType == eMemberTypes.Registered )

{

                            // Registered user… do something…

                            // 注册用户 做相关处理

}

else

{

                            // Guest user... do somethi ng…

                            // 游客 做相关处理

 

// If we introduce another user type in future, this code will

// fail and will not be noticed.

// 如果我们将来引入一个新的用户类型, 这个代码将会失败而且不会有提示。

}

 

  1. Do not hardcode numbers. Use constants instead. Declare constant in the top of the file and use it in your code.

 

However, using constants are also not recommended. You should use the constants in the config uration file or database so that you can change it later. Declare them as constants only if you are sure this value will never need to be changed.


5. 不要硬编码数字。使用 量代替。在文件的顶端声明 常量然后在你的代码中使用它。

 

尽管如此 ,使用常量也不是推荐的做法。你应该在配置文件或者数据库中使用常量,那样的话,你就可以在 之后修改它。只有在你确信这个值永远 不需要修改的时候,就可以将它们声明为常量。

 

  1. Do not hardcode strings. Use resource files.


6. 不要硬编码字符串。使用资源文件。

 

  1. Convert strings to lowercase or upper case before comparing. Th is will ensure the string will match even if the string being compared has a different case.


7. 在比较之前将字符串转换成小写或者大写。这将 保证 同时 包含大小写的字符串 在比较的时候仍然可以匹配。

 

if ( name.ToLower() == “john” )

{

                  //…

}

 

  1. Use String.Empty instead of “”


8.   使用 String.Empty ,而不是用 “”


Good:

 

If ( name == String.Empty )

{

              // do something

}

 

Not Good:

 

If ( name == “” )

{

              // do something

}

 

 

  1. Avoid using member variables. Declare local variables wherever necessary and pass it to other methods instead of sharing a member variable between methods. If you share a member variable between methods, it will be difficult to track which method changed the value and when.


9.  避免使用成员变量。在任何必要的情况下 声明局部变量 ,然后传给其他方法,而不要在方法 之间 共用 一个成员变量。 如果你在方法之间共用了一个成员变量, 将很难跟踪哪个方法修改了这个变量,在何时修改的。

 

  1. Use enum wherever required. Do not use numbers or strings to indicate discrete values.


10. 在任何需要的情况下使用枚举类型。 不要使用数字和字符串来 指定 不连续的值。

 

Good:

              enum MailType

              {

                            Html,

                            PlainText,

                            Attachment

              }

 

              void SendMail (string message, MailType mailType)

              {

                            switch ( mailType )

                            {

                                          case MailType.Html:

                                                        // Do something

                                                        break;

                                          case MailType.PlainText:

                                                        // Do something

                                                        break;

                                          case MailType.Attachment:

                                                        // Do something

                                                        break;

                                          default:

                                                        // Do something

                        

分享到:
评论

相关推荐

    ADO.NET开发最佳实践---vs2003

    本文将深入探讨ADO.NET开发的最佳实践,帮助开发者提升效率,保证代码的稳定性和可维护性。 1. **连接管理**:在ADO.NET中,应合理管理数据库连接,避免打开过多连接导致资源浪费。可以使用`using`语句块来确保连接...

    .NET最佳实践.pdf

    这是《.NET最佳实践》.((美)Stephen Ritchie).pdf pdf 中文电子版,带书签

    .NET数据备份--DataBack.rar

    这可能涉及加密备份文件,限制访问权限,以及遵循最佳实践来保护备份存储位置。 9. **恢复和验证**:除了备份,还需要确保能正确恢复这些备份。因此,恢复过程也应该是程序的一部分,并且应该有验证机制来确认备份...

    实战C#.NET编程----Spring.NET & NHibernate从入门到精通

    此外,书中可能还会介绍一些最佳实践和性能优化技巧,帮助读者在实际项目中更高效地使用这两款工具。 总而言之,《实战C#.NET编程——Spring.NET & NHibernate从入门到精通》是一本全面介绍C# .NET开发中两个关键...

    Pro C# 7 With .NET and .NET Core - Eighth Edition

    5. **最佳实践与案例研究**:通过具体的案例分析,向读者展示了如何将理论知识应用于实际项目中,并遵循最佳实践来提高代码质量和可维护性。 #### 三、核心知识点详解 ##### 1\. C# 7的新特性 - **模式匹配**:...

    asp.net经典视频1-3全(1)

    这部分可能涉及Visual Studio的调试工具,以及异常处理的最佳实践。 总的来说,这个ASP.NET的经典视频系列旨在为初学者提供一个全面的入门指南,涵盖从基础概念到实际应用的关键技术,帮助他们快速掌握ASP.NET的...

    ASP.NET数据库入门经典--C编程篇_程序设计

    ASP.NET是一种由微软开发的用于构建Web应用程序的框架,它基于.NET Framework,为开发者提供了强大的服务,包括构建...同时,这个资源也可能涵盖实际项目中的最佳实践和常见问题解决,帮助读者更好地应对实际开发挑战。

    asp.net 2.0编程珠玑--来自mvp的权威开发指南

    同时,还涵盖了开发过程中的最佳实践,如代码分离、异常处理、性能优化以及调试技巧。 此外,对于Web服务和企业级应用程序的集成,ASP.NET 2.0也提供了强大的支持,如WSDL、SOAP和Web服务代理类等,方便与其他系统...

    asp.net小项目--物流管理系统

    这个项目对于学习ASP.NET和物流管理的学生或开发者来说,是一个很好的实践平台。通过实际操作,不仅可以掌握ASP.NET开发技巧,还能深入了解物流行业的业务流程和管理需求。同时,对于毕业设计或个人项目展示,这样的...

    .NET-Writing High-Performance .NET Code(2nd Edition Ben Watson)

    总的来说,《.NET-Writing High-Performance .NET Code(2nd Edition Ben Watson)》是一本全面且深入的指南,不仅提供了理论知识,还有大量实践案例和最佳实践,对于任何希望提升.NET应用程序性能的开发者来说都是...

    ASP.NET 2.0编程珠玑--来自MVP的权威开发指南

    这本书“ASP.NET 2.0编程珠玑--来自MVP的权威开发指南”深入讲解了这个框架的关键特性和最佳实践,旨在帮助开发者充分利用其功能。 在ASP.NET 2.0中,最重要的改进之一是页面生命周期管理。与前一版本相比,2.0版...

    新VB.NET源代码2023-11-18-23-50QZQ.zip

    VB.NET是一种基于.NET框架的编程语言,由微软公司开发,它是Visual Basic的现代版本,具有更强大的功能和更丰富的...通过学习和分析这些源代码,你可以提升自己的VB.NET编程技能,并了解实际项目的开发流程和最佳实践。

    《.NET最佳实践》.((美)Stephen Ritchie)

    《.NET最佳实践》是.NET领域的集大成之作和公认经典。书中总结了大量.NET开发人员公认的最佳实践,并有针对性地阐明了如何恰当地在个人、小组、组织和行业中应用这些最佳实践。书中的最佳实践涵盖.NET开发的方方面面...

    Pro .NET Best Practices .net最佳实践 英文版

    《.NET最佳实践》是.NET领域的集大成之作和公认经典。书中总结了大量.NET开发人员公认的最佳实践,并有针对性地阐明了如何恰当地在个人、小组、组织和行业中应用这些最佳实践。书中的最佳实践涵盖.NET开发的方方面面...

    敏捷思维学习Ext.Net MVC源码--ExtNetMvcExample

    **标题解析:** "敏捷思维学习Ext.Net MVC源码--...总之,这个源码包为学习者提供了一个实践敏捷开发理念和掌握Ext.Net MVC技术的实战平台,通过逐步解析和运行这些代码,可以深入理解这两个领域的核心概念和最佳实践。

    ASP.NET C#深入学习---------

    深入学习ASP.NET C#不仅仅是掌握语法和框架,更重要的是理解Web开发的最佳实践,以及如何利用这些工具和技术解决实际问题。同时,随着技术的不断更新,不断学习和适应新的框架和库,如.NET 6和ASP.NET Core 6,也是...

    ASP .NET 技术内幕130-200

    详细内容可能包括实际示例、最佳实践以及解决常见问题的方法。 总的来说,"ASP .NET 技术内幕130-200"这一资料集合提供了深入学习ASP.NET技术的机会,无论你是初学者还是有经验的开发者,都能从中受益。通过学习...

    ASP.NET 3.5 开发大全--注册模块设计.rar

    10. **最佳实践**:遵循最佳实践,如使用HTTPS保护敏感信息传输,以及定期更新和审核代码,以确保注册模块的安全性和合规性。 "第22章.注册模块设计.doc"很可能会深入讲解这些概念,包括具体的代码示例、配置步骤...

    08-.NET类图书36-43.doc

    最后,书籍可能会讨论.NET中的设计模式和最佳实践,这些都是提升代码质量和可维护性的关键。例如,工厂模式、单例模式、观察者模式等设计模式,以及依赖注入、单元测试和持续集成等实践。 总之,《.NET类图书36-43...

Global site tag (gtag.js) - Google Analytics