ベイダー-Dartのシンプルなロガー

数日前、私は少し前に導入したDart言語が現在どのような状態にあるかを判断することにしました。 私の意見では、言語機能を試す最も簡単な方法は、シンプルで完全なものを書くことです。 考え直さずに、オブジェクト指向スタイルでDartの単純なロガーを作成することにしました。 切り抜きの下にあるのは、Dartに対する私の印象と、何が起こったかの簡単な説明です。



ご存知のように、Dartは現在活発に開発されており、現在次のものがあります。
  1. コードをローカルで実行するための仮想マシン
  2. Javascript Dart Code Translator
  3. Eclipseに基づいて構築された、アルファ段階のシンプルな開発環境Dart Editor。
  4. Dartiumと呼ばれる特殊なChromiumアセンブリ。Javascriptに変換せずにDartアプリケーションを実行できます。


言語自体の印象



私の考えでは、最も簡単な方法は、少なくとも一度Javaで書いた人にDartに書くことです。Dartの構文はこの言語から多くを借用しているからです。 しかし、誰かがJavaを酷使しているという感じがあります。



開発環境の印象



ここではすべてが非常に単純です。環境は湿気が多く、多くのバグがあります。 まず第一に、オートコンプリートの不完全な完了とコードの強調表示は面倒です。 たとえば、オートコンプリートは、クラス自体の内部にプライベートクラスメソッドを表示することを拒否します。 Eclipse DartEditorによって提供されるJavaサポートはまだまだ先ですが、それでも環境はコードの不正なライブラリインポートまたは構文エラーに関連する最も明らかなエラーをキャッチします。 標準のDartライブラリの一部の機能も示しています。たとえば、クライアント(dart:html)とサーバーライブラリ(dart:io)を同時にインポートすることはできません。



約束のコード例



同様の機能が標準ライブラリで利用可能であるという事実にもかかわらず、さまざまなレベルのログ(デバッグ、情報、アラートなど)を持つメッセージをさまざまな出力ストリームに出力できる非常に単純なロガーを作成しました。 ロガーで使用される主な抽象化は次のとおりです。



現在、3つの出力ストリームが実装されています。

ロガーの使用は非常に簡単です。
#import("vader_server.dart"); void main(){ Vader vader = Vader.vader(new StdoutStream()); vader.logWarn("You don't know the power of the dark side!"); vader.logInfo("Luke, I am your father!"); }
      
      





開始するには、ライブラリファイルの1つをインポートします: vader_server.dart (ファイルへのログイン用)またはvader_client.dart (ブラウザへのログイン用)。 この分離は、クライアントライブラリとサーバーライブラリを同時にDartにインポートできないためです。 このリンクでコメントを提供されたロガーコードを見ることができます。



All Articles