.net功能的设计指南

时间:2011-03-24 05:21:58

标签: .net

在课堂上设计/添加新功能时,您遵循哪些设计准则?指南可以从命名约定,函数大小,输入参数,输出参数等变化。

此问题专门针对.net环境,但同样适用于其他编程环境。

3 个答案:

答案 0 :(得分:2)

您可以在这里找到一些Design Guidlines for Developing Class Libraries

答案 1 :(得分:1)

当遇到多个环境时,设计约定和指南的语言和平台将付出巨大努力。根据我的经验,最好遵守供应商或社区的标准。这样做的原因是:

  1. 减少工作量
  2. 新团队成员可以轻松捡起来;它应该是熟悉的
  3. 语言/环境的未来添加可能很容易添加
  4. 所以查看供应商和社区的标准,并添加未指定的内容(大多数时候内部事情,如命名不影响接口的局部变量)

答案 2 :(得分:0)

我尝试按照以下指南来处理我添加到课程中的任何新功能:

  • 函数名称应遵循Pascal命名约定。
  • 函数名称应该显示它的作用 - 不需要查看代码。如果您正在尝试理解一段代码,那么函数名称应该确切地说明它的作用,并且不应该去查看该函数的代码。
  • 功能应该做一件事(单一责任原则)并做正确的事。
  • 功能应尽可能小。
  • 功能名称应为动词。它不应该包含类的名称。对于例如User.Authenticate优于User.AuthenticateUser。
  • 非静态函数应该改变对象的状态或返回对象的状态,但不能同时返回两者。如果该功能同时执行,则会变得混乱,并且通常无法正确命名。
  • 函数输入应该是更合理的更通用的基类型。
  • 函数返回值应该是更合适的更专业的派生类型。
  • 函数应该通过使用Debug.Assert来记录函数逻辑之前和之后的任何假设(如果有的话)。
  • 类中的公共函数应该依赖于顺序。如果函数期望对象的某个状态,那么它应该向消费者抛出适当的异常。
  • 公共函数应检查提供的输入是否有效。如果输入无效,则应抛出适当的异常。 .net中有异常类用于相同目的:ArgumentNullException,ArgumentOutOfRangeException,ArgumentException等。在创建自定义类之前,查看是否已有一个异常类用于服务目的。
  • 公共函数应该有关于函数的xml注释:目的,输入参数,输出,函数抛出特殊考虑的异常等。
  • 私有函数不应检查输入的有效性,因为它们是从类中调用的。
  • 不能访问对象状态的私有函数应声明为static。
  • 函数应该通过在其前面加上'base'来访问任何基类成员。对于例如base.ToString()应该用于调用基类方法。