質問
私は現時点でいくつかの俳優ベースのScalaアプリケーションを維持しています、そして、私がいつも尋ねているのに気づく質問の1つは 誰がそのメッセージを送信しますか?
たとえば、ログで見つけた恐ろしいメッセージを印刷するコードを見つけます。
case ReportFailedUpdates(stuff) =>
log("The horror! The horror! " + stuff)
dieHorribly()
そして、私は何が原因であるかを知りたいです。俳優を使用していなかった場合、ヒットすることができました Ctrl+Alt+H
(少なくとも日食で)そして、誰が「この方法」と呼んだか(そして誰がそれを呼んだのか、誰が電話したのかを見つけてください それ)。俳優と一緒に、私は自分自身を探していることに気づきます ! ReportFailedUpdates(
どの俳優がこのメッセージを送信するかを見つけるには、メッセージの送信者を検索します それ 俳優が反応していた、 等 (そして通常、結果を紙に描画します)。これには2つの欠点があります。
- Eclipseは(潜在的に多くの)プロジェクトでテキスト検索を行っているので、それは遅いです。
- 多分これはで送られたので、必ずしもすべての出来事を見つけるとは限りません
!?
, 、あるいは、誰かが2つのスペースを置いたかもしれません!
そしてそのReportFailedUpdates
, 、または、または、または....
私が何 愛 メッセージがどこから来たのかを調べることができるツールサポートです。これは、ほとんど非俳優ベースのコードのコール階層に相当します。
それを行うツールはありますか?これは、私が発見したことがない日食のためのScalaideの特徴ですか? Intellijを使用する場合、私の人生は良くなりますか?
アップデート
私の例は誤解を招いていたかもしれません。これは、それがすべて倒れたときに何が間違っているのかを理解することだけではありません。また、新しいシステムを拾い、それがどのように機能するかを把握する必要があるときに、これをたくさんやっていることにもわかります。まだそれを行うためのツールがないようです。メッセージフローグラフを静的に抽出し(おそらく視覚化する)方法について自分自身を考えなければならないと思います...
正しい解決策はありません