問題タブ [fantom]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
fantom - StrBuf に StrBuf を追加する最良の方法は何ですか?
一連の StrBuf オブジェクトがあり、それらを連結する最も効率的な方法を知りたいです。
add()
メソッドはありますが、ドキュメントには「 x.toStr をこのバッファの最後に追加する」と書かれています。これを何度も何度も繰り返しているとしたら、StrBuf.toStr()
それほどパフォーマンスが良くないと思います。
(本当の答えは 1 つの StrBuf を使用することだとわかっていますが、ここで冗談を言ってください!)
乾杯。
アップデート:
Java ソースを見ると、内部バッファとして char 配列を使用StrBuf
する Javaが使用されています。StringBuilder
そうですね@Adrian
、大きな初期バッファを持つことが重要です。
関係する限りStrBuf.toStr()
、新しい Java String は次を使用して作成されますArrays.copyOfRange()
- これは合理的ですが、append(StringBuffer sb)
メソッドがあることを考えると不必要です。
fantom - ディレクトリにルーティングするにはどうすればよいですか?
afBedSheet をいじっていて、ディレクトリへのすべてのリクエストを処理したいと考えています。たとえば、/abcd へのリクエストは abcdMethod#doSomething を呼び出します
ルートを次のように設定しました
しかし、/abcd を参照すると、404 エラーが発生します :(
どうすればこれを機能させることができますか?
fantom - afBedSheet は、クラスをサービスとしてタグ付けし、メソッドをルート ハンドラーとしてタグ付けするファセットを提供しますか?
私は Fantom の afBedSheet フレームワークで遊んでおり、そのドキュメント hereでは、例は次のようになります...
上記の convertRoutes メソッドは、追加されるルートが増えるにつれて、特にルート ハンドラーが異なるクラスから来る場合に、読み取りと保守が難しくなり始めます。
私はこれを別の方法で行っています: 各 Service クラスで、次の例のように、そのメソッドによって処理されるルートのリストを返す静的メソッドを追加しています。
次に、私の AppModule は次のようになります
私は、AppModule をクリーンに保ち、Route 定義とハンドラー マッピングを実装クラスに近づけようとしています。これにより、サービス/ルートの保守が容易になると期待していますが、それが良いアイデアか悪いアイデアかはわかりません。これを行う利点は次のとおりです。
- ルート ハンドラー メソッドをクラスに追加する場合、同じクラスでルートを宣言します。
- ルート ハンドラー メソッドは同じクラスの一部であるため、スロット名を入力するだけで済みます (例: Info#podVersion ではなく #podVersion)。
しかし、私が言ったように、私は afBedSheet で遊んでいるだけです。例が示すように、AppModule クラスでルートを宣言する正当な理由があるかどうか、このフレームワークで実際の生産プロジェクトを行った人から知りたいです。 .
また、私がやっていることが OK または良い場合、上記の Info クラスを次のようなものに変更するためのファセットがあるかどうか (または追加することをお勧めするかどうか) を考えています。
このようなファセットが存在しない場合は、ルート宣言を AppModule に保持する正当な理由があるに違いないと思います。それらが何であるかを知りたいと思います。
macos - エラー: Mac OS X で afBedSheet に基づく Fantom アプリを実行している Sys.homeDir を初期化できません
Alien Factory の afBedNapの指示に従って、Fantom 用の afBedSheet フレームワークを使用して Web アプリを構築しましたが、ステップ 3 (アプリの実行) の最後にこのエラーが発生しました。
パス/Users/coder/apps/fantom-1.0.66
が存在し、Fantom をインストールした場所です。私は走りましexport FAN_HOME="/Users/coder/apps/fantom-1.0.66"
たが、これは違いはありませんでした。
これを実行$FAN_HOME/bin/fan -version
すると、次のようになります。
Fantom フォーラムで解決策が見つかりません。何かアイデアはありますか?
fantom - afFancordion の結果のターゲット フォルダーを変更するにはどうすればよいですか?
Fantom プロジェクト内で afConcordion フィクスチャを実行すると、生成されたフィクスチャは次のフォルダーに配置されます。
target
しかし、プロジェクトのフォルダーの下にあるというフォルダーにそれらを書きたいと思います。
afConcordion のドキュメントを見ると、ConcordionRunner を拡張すると、少なくとも afBedSheet アプリケーションの場合、可能であるように見えます。
しかし、独自の ConcordionRunner を実装する代わりに、デフォルトの ConcordionRunner を使用したいと思いますが、それでもテスト結果が必要な場所を決定します。可能ですか?
fantom - この場合、afIoc がサービスを注入しないのはなぜですか?
Fantom afIocがそれに慣れるために、IoC フレームワークを使用して非常に単純なアプリを作成しようとしています。私はこれを試しました...
バージョンクラスは
AppModule は
コンパイルされますが、印刷されますversion is null
。Main クラスを再定義して問題を修正しました。
しかし、afIoc レジストリのライフサイクルと、メイン クラスの最初のバージョンにバージョン サービスが挿入されない理由を理解したいと思います。誰か説明してくれませんか?