注:本节未经校验,如有问题欢迎提issue
注意
首先阅读Akka贡献者指南。
Akka代码风格遵循 Scala 风格指南。唯一的例外是块注释的样式:
/**
* Style mandated by "Scala Style Guide"
*/
/**
* Style adopted in the Akka codebase
*/
Akka使用 Scalariform
作为构建的一部分的格式化源代码。所以随便修改,然后运行的 sbt compile
,它将重新格式化为Akka标准代码。
wip-<ticket number>-<descriptive name>-<your username>
这样命名。请按照如下指导方针创建公共提交和编写提交消息。
如果你的工作跨越多个本地提交 (例如 ; 如果你在主题分支工作时的安全点提交,或在长时间工作分支做合并/rebase 等)则请不要提交所有,而是重写历史,将多个提交挤压到单个大提交中,并在此编写良好的提交消息(如下讨论)。有一篇好的文章介绍了如何做到这一点。每个提交都应该是能够用于隔离、cherry picked等。
第一行应该是一个描述性的句子,说明提交在做什么。应该达到只是读这一行就能够充分了解提交做了什么。它不是只列出ticket编号、打入"次要修复"或类似的话。在第一行末尾加上以#
开头的ticket编号。如果提交是一个小的修复程序,则已完成。否则请看下一条。
单行描述之后应该是一个空行,然后跟一个提交细节的枚举列表。
示例:
Completed replication over BookKeeper based transaction log. Fixes #XXX
* Details 1
* Details 2
* Details 3
签入的所有代码都应该有测试。所有的测试都是用ScalaTest
和 ScalaCheck
编写。
测试actor的有用套件:akka.util.TestKit。它提供了确认收到的答复及其时间的断言,更多文档参考测试actor系统模块中。
包含在示例中的是一个多 jvm 测试的 sbt 特质,将分枝 Jvm用于多节点测试。它支持运行应用程序 (含main方法的对象) 和运行 ScalaTest 测试。
你可以使用 'NetworkFailureTest' 特质来测试网络故障。