我正在寻找简单的方法来连接有关需求/发布和源代码的信息。案例是开发人员应该能够以简单的方式找到给定版本或 CR 创建的任何工件。我的想法是引入一些新注释来标记任何新类(我不确定它是否适用于任何新方法),例如:
@ArtifactInfo(release="1.2" cr="cr123")
你还有其他建议吗?也许你已经使用了类似的东西?
保重,马辛
我正在寻找简单的方法来连接有关需求/发布和源代码的信息。案例是开发人员应该能够以简单的方式找到给定版本或 CR 创建的任何工件。我的想法是引入一些新注释来标记任何新类(我不确定它是否适用于任何新方法),例如:
@ArtifactInfo(release="1.2" cr="cr123")
你还有其他建议吗?也许你已经使用了类似的东西?
保重,马辛
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);
}
}
这是几个要求的结果:
所有这些要求都是在不同的时间点,在不同版本的软件上添加的。类级别,甚至方法级别的注释都不足以有效地将需求映射到代码。您必须使用“代码行”级别的注释。当然,这是不切实际的。
正确的做法是在使用源代码存储库和错误跟踪器时遵循一些最佳实践:
如果您需要知道在哪个版本中实现了哪些要求,请询问您的错误跟踪器。
如果您需要了解为给定需求生成的所有代码,请询问您的源代码存储库(按日志消息过滤提交)
如果您需要知道给定代码行的要求是什么,请询问您的源代码存储库。GIT 和 SVN 有一个“责备”命令,它会告诉你,对于给定的文件,对于每一行代码,谁提交了它,何时提交,以及提交消息(如果团队中的每个人都是好人,它将有问题编号男孩) - 所以这将作为假设的“代码行”级别注释。
使用“提交挂钩”可以帮助您在组织中执行规则 2)。
Maven 与 JIRA 和其他错误跟踪器有一定程度的集成,也许它可以帮助自动化 #3。但我还没有真正那样使用它。但是,如果它不能满足您的需求,您可以随时要求更多:-)