6

我正在寻找简单的方法来连接有关需求/发布和源代码的信息。案例是开发人员应该能够以简单的方式找到给定版本或 CR 创建的任何工件。我的想法是引入一些新注释来标记任何新类(我不确定它是否适用于任何新方法),例如:

@ArtifactInfo(release="1.2" cr="cr123")

你还有其他建议吗?也许你已经使用了类似的东西?

保重,马辛

4

1 回答 1

6

IMO 代码是此类信息的错误位置。

看看下面的假想代码。

class Authenticator {

    login(String username, String password){
        User user = retrieveUserFromDatabase(username);
        throwIfWrongpassword(user, password);
        verifyUserAge(user)
    }

    void throwIfWrongpassword(User user, String password){
        //throws AuthenticationException if password is wrong
    }

    void verifyUserAge(User user){
        //verify that user is above 18 or account is authorized by a parent
    }

    void biometricLogin(String username, BiometricImage bioimg){
        User user = retrieveUserFromDatabase(username);
        verifyBiometricImage(user, password);
        verifyUserAge(user);
    }
}

这是几个要求的结果:

  • 用户必须进行身份验证才能访问系统
  • 用户可以在密码验证上使用生物特征验证
  • 未成年用户必须被授权为父母或类似的人。

所有这些要求都是在不同的时间点,在不同版本的软件上添加的。类级别,甚至方法级别的注释都不足以有效地将需求映射到代码。您必须使用“代码行”级别的注释。当然,这是不切实际的。

正确的做法是在使用源代码存储库和错误跟踪器时遵循一些最佳实践:

  • 1) 每个需求都对应于 bug 跟踪器上的一个或多个问题
  • 2) 每条提交消息都以相应的问题键开头,例如“PROJ-123 - 一个不错的功能”
  • 3) 当你发布一个版本(意味着增加你的软件版本)时,你告诉错误跟踪器这些问题在那个版本中得到了修复。

如果您需要知道在哪个版本中实现了哪些要求,请询问您的错误跟踪器。

如果您需要了解为给定需求生成的所有代码,请询问您的源代码存储库(按日志消息过滤提交)

如果您需要知道给定代码行的要求是什么,请询问您的源代码存储库。GIT 和 SVN 有一个“责备”命令,它会告诉你,对于给定的文件,对于每一行代码,谁提交了它,何时提交,以及提交消息(如果团队中的每个人都是好人,它将有问题编号男孩) - 所以这将作为假设的“代码行”级别注释。

使用“提交挂钩”可以帮助您在组织中执行规则 2)。

Maven 与 JIRA 和其他错误跟踪器有一定程度的集成,也许它可以帮助自动化 #3。但我还没有真正那样使用它。但是,如果它不能满足您的需求,您可以随时要求更多:-)

于 2012-08-01T04:11:32.977 回答