4

Dart についてもっと学ぼうとしているので、dart のソースを読みたいです。dart vm は c++ で書かれており、コード ベースは巨大です。

https://github.com/dart-lang/bleeding_edgeからソースコードを取得します

以下はruntimeパッケージ内のコードです。18 万行以上の C++ コードが含まれていることがわかります。

➜  runtime git:(master) ✗ cloc .
     752 text files.
     746 unique files.
      47 files ignored.

http://cloc.sourceforge.net v 1.58  T=6.0 s (117.7 files/s, 52169.5 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C++                            375          32722          21436         180070
C/C++ Header                   238          10936           8753          36452
Dart                            76           2785           1340          16661
Python                          13            254            211           1113
C                                2             28             28            107
Bourne Shell                     1             16             11             85
Assembly                         1              1              3              5
-------------------------------------------------------------------------------
SUM:                           706          46742          31782         234493
-------------------------------------------------------------------------------

ダーツを一ヶ月習い、Java開発経験は数年ありますが、c++はわかりません。誰かが dart vm の学習についてアドバイスをくれませんか? dart vm を学習する長期計画があります。

私の質問は、dart vm を学ぶために、どのような知識がより重要であるかということです。

  1. dart vm のソースを実際に読むには、C++ をマスターする必要がありますか?
  2. VM 設計に関する本を読む必要はありますか? あるとしたら?
  3. Dart VM について読むべきドキュメント、書籍、ブログはありますか?
  4. その他のアドバイス
4

2 に答える 2

4

これが私の見解です。ソースコードを読んだだけで構造や機能を理解するのは難しく、時間がかかります。ガイドとなる設計ドキュメントがあれば、それは簡単ですが、それでも難しいでしょう。

VM で何かを行うことに集中する方がよいでしょう (私の経験では...おそらくこれはスタックオーバーフローの良い質問ではありません)。特定のバグまたは拡張機能を選択し、それを実装してみてください。コードを読むだけでなく、実際にコードを維持しようとすることで、より多くのことを学ぶことができます。

私は「私の経験上」と言いました。あなたと同じように、私は主に Java / C# 開発者であり、15 年間 C++ を実際に見ていません。

Dart VM の初期の頃、バグがあり、特定のことを実行できませんでした (今は覚えていません)。正しい方向に向けるためのスタック トレースがあり、コードを読んでいくつかのことを試してみました (Google を使用して特定の構文を確認しました)。私は VM を変更し、差し迫った問題を回避することができました (そして、バグは他の誰かによる後のコミットでリファクタリングされました)。ここでのポイントは、学習を続けることができる目的を持つことは良いことです.

完全を期すために、質問の「読むべきもの」の部分への回答として:

また、数年前に Dart ビルド環境のセットアップについてブログを書きました。ヒント: Windows ユーザーの場合は、Ubuntu VM を使用すると時間を節約できます。

Google I/O 2013の「Fast Code is Always in Fashion」ビデオは良い時計です。Dart VM の主な設計者が VM について語っています。概要が少しわかるかもしれません。

最後に、Dart VM は仕様の実装であるため、 Dart 言語仕様は一読の価値があります。

于 2013-08-13T14:26:22.540 に答える