我的印象是透析器不像静态类型那么精确,这意味着它有时不会报告错误,尽管它应该.
从好的方面来说,如果透析器抱怨,那几乎总是我的错.通常,错误通常是由于不正确的类型规范造成的.
因此,虽然我不认为透析器是静态类型的好工具,但它仍然有帮助.特别是,我发现typespecs非常有用,因为它们可以作为文档.最近我换了工作,我加入的项目是一个复杂的Erlang项目.由于类型规范,我很容易找到代码库的方法.
所以我的建议是在大型项目中使用typespecs.我们只为导出(公共)函数和记录编写它们,这是一个很大的帮助,不占用太多时间.我通常首先使代码工作,当我对它感到满意时,添加规格,并运行透析器以验证一切正常.
一方面,静态类型内置于编译阶段——有点不容错过。另一方面,静态分析是开发人员必须自愿运行的。
同样,人们不必在 Elixir 中注释任何内容;这完全取决于程序员的判断力。在静态类型语言中这是无法避免的。
我想说你的问题有点宽泛,因此很难严格回答。您可能想将其放在 Programmers.Stackechange 上。