問題タブ [granularity]
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.
nhibernate - NHibernate での DateTime 精度と NHibernate SchemeExport での DateTime2 のサポート
次に、Fluent NHibernate とその自動マッピング機能を使用して、次の単純化された POCO クラスをマッピングします。
CreatedDateTime フィールドは、デフォルトで SQL DateTime にマップされます。ただし、エンティティが正しく作成されていることを確認するテストを行うと、失敗します。これは、DateTime フィールドの精度が SQL データベース全体で維持されていないためです。この背後にある理由は、MS SQL Server の DateTime は、.000、.003、または .007 の増分に丸めることによってミリ秒の精度しか保持できないためであると考えています ( http://msdn.microsoft.com/en-us/libraryを参照)。 /ms187819.aspx )。このため、NHibernate はストアに保存するときにミリ秒を切り捨てます。これにより、.NET DateTime として正しく永続化されたフィールドがミリ秒を保持しているが、保存後に取得された DateTime がミリ秒を失ったため、2 つが真に等しくないことを確認すると、テストが失敗します。
この問題を克服するために、次のマッピングを Foo オブジェクトに追加しました。
このマッピングにより、NHibernate は CreatedDateTime を SQL 型の datetime2 に保持し、.NET DateTime が可能な完全な精度を格納できることを理解しています。これはうまく機能し、テストはパスします。
ただし、1 つのパスには別の失敗が伴います: スキーマのエクスポートをチェックする私のテストは、次のエラーで失敗するようになりました:
次のスタック トレースを使用:
このコードは、NHibernate.Tool.hbm2ddl.SchemaExport オブジェクトを使用して Execute メソッドを呼び出します。
Fluent v1 と NHibernate v2.1 を使用しています。
また、タイムスタンプへのマッピングを試みDateTime
ましたが、挿入が次のように失敗するため、マッピングを機能させることさえできませんでした。
タイムスタンプ列に明示的な値を挿入することはできません。列リストで使用INSERT
してタイムスタンプ列を除外するか、タイムスタンプ列に a を挿入しDEFAULT
ます。
誰もがSchemeExportをプロパティdatetime2
で動作させる方法またはタイムスタンプマッピングを取得する方法を知っていdatetime
ますか?
models - モデルの粒状化?
私は主に Zend Framework コンポーネントに基づいた CMS を開発しています。この CMS のデータベース テーブルの一部は次のとおりです。
Site
とりわけ、次のメソッドで構成されるという名前のモデルがあります。
私は、モデルをどのように粒度化する必要があるかについて、ちょっと迷っています。
1 つのオプションは、メソッドSiteLocale
からオブジェクト/モデル (つまり、DB テーブル表現)を返すことですlistLocales()
。これらのSiteLocale
オブジェクトには、次のメソッドが含まれています。
もう 1 つのオプションは、Site
モデルに次のメソッドを単純に作成し、それで完了することです。
正しい道は何だと思いますか?なぜ?
さらに、最初の選択肢 (または両方の選択肢) は、デメテルの法則に違反しますか?
編集(1 月 22 日)
私はジェフの答えが好きですが、私はまだ新しい/他の視点を受け入れています。
terminology - 粗粒度 vs 細粒度
粗粒と細粒の違いは何ですか?
これらの用語を Google で検索しましたが、意味がわかりませんでした。
agile - ストーリー内のタスクはどの程度の粒度にする必要がありますか?
最近スクラムを実装していますが、よく疑問に思うことの 1 つは、ストーリー内のタスクの粒度です。
社内の何人かは、理想的には、これらのタスクは非常に細かく設定する必要があると述べています。彼らは、これにより、現在のスプリントでのパフォーマンスを追跡できるようになると主張しています。
これにより、コンポーネント X がデータベースに保持されるように DAO を作成するなど、実行する必要がある多くの技術的側面と小さなアクションを詳述する多数のタスクが発生します。また、Ken Schwaber と Mike Beedle の著書『Agile Software Development with Scrum』を読んでいて、タスクにはこの種の細分性が必要だということを理解しました。章の 1 つで、タスクが完了するまでに 4 ~ 16 時間かかる必要があると述べています。
しかし、私が気付いたのは、このような小さなタスクでは、物事を過剰に指定する傾向があり、計画会議で以前に確立したものとソリューションが異なる場合、多くの新しいタスクを作成するか、古いタスクを置き換える必要があるということです. また、チーム メンバーは、スプリント内で行っているすべてのことを追跡して新しいタスクを作成する必要もありません。これは、バーンダウン チャートで合計タスクを増やす必要があるが、必ずしも価値を集約するタスクを追加する必要がないことを意味するためです。
では、理想的には、タスクは各ストーリー内でどの程度の粒度である必要がありますか?
sorting - MongoDB日付ソートの粒度?
MongoDB の日付値を粒度でソートすることは可能ですか?
結果を日付順に並べたいのですが、時間/分/秒のデータは気にしません。「20101215」のような追加のパラメーターを保存する必要はありません。
vbscript - 100nsecの粒度でNTFSタイムスタンプを表示
FATファイルシステムはファイルのタイムスタンプ(日付の変更など)を2秒の粒度で保存し、NTFSはそれらを100ナノ秒の粒度で保存することを理解しています。
FileSystemObjectでVBScriptを使用して、ファイルの詳細を表示しています。関数file.DateLastModifiedは、1秒の精度で日付を表示します(NTFSの場合)。
NTFSの内部ストレージの粒度に応じた精度でタイムスタンプを表示する方法はありますか。2010年8月9日14:40:30,1234567のようなものを想像しています
そして、VBScript / FileSystemObjectを使用しない場合、他の方法はありますか?
web-services - SOA-パフォーマンスを維持するには、サービスをどの程度細かくする必要がありますか?
私は、古代のレガシーシステムをゼロから置き換えるプロジェクトを引き継いでいます。私が来る前に、会社はシステムの基本的なスケッチをまとめてSOAを大いに推し進めたコンサルタントを雇いました。これにより、より複雑なサービスの組み合わせに構成されることを意図して、「エンティティサービス」の長いリストが作成されました。たとえば、委員会の情報が必要なユーザーは、「委員会」サービスにアクセスし、「委員会」サービスを呼び出してメンバーを取得し、「会議」サービスを呼び出して会議を取得します。
これにより柔軟性が向上することは理解していますが、私の懸念はパフォーマンスに関するものです。サービスにこのような細かいレベルで構築されたシステムは、サービスメッセージの変換に多くのリソースを費やし、パフォーマンスが許容できないものになると思われます。また、基本的な再利用可能なオブジェクトを使用して柔軟性を向上させることもできるように思われますが、その場合、パフォーマンスを向上させるためにテクノロジーに依存しないインターフェイスの利点が失われます。
詳細な背景:このソフトウェアを要求している組織には、現在、と統合する必要のある安定したサードパーティソフトウェアスイートがありません。このソフトウェアは、すべてのスイートを置き換えます。現在、提供されたWebサイトインターフェイスの外部でデータにアクセスする必要のある外部の消費者もいません。すべてのサービス呼び出しは、システム内の他の部分から行われます。この場合のSOAの選択は、完全に「準備」の概念に基づいているようです。
だから私の質問-パフォーマンスを犠牲にすることなく、安定したサービスで許容できる粒度のレベルはどれくらいですか?すべてのエンティティをサービスとして実装することで得られるパフォーマンスへの影響に懐疑的すぎませんか?機能は、必要な場合にのみWebサービスとして利用できるようにする必要があります。代わりに、「準備」に重点を置いて、後でサービスがその上にドロップされる可能性を考慮してビジネスレイヤーを設計します。
asp.net-mvc - 大きなWebサイトのMVCスタイルで適切なコントローラーの粒度はどれですか?
私たち(私のチームと私)には、多くのユーザー(少なくとも15,000人のユーザー!)を扱う大きなWebプロジェクトがあります。精緻化フェーズでは、MVCスタイルでコーディングすることにしました。私たちはトレードオフに直面します(このプロジェクトでは、すべてのアクションは認証されたユーザーによって実行される必要があります)。
設計の1つの方法は、コントローラーが要求を取得し、それに応じて要求の責任オブジェクトを作成(DBからロード)し、そのオブジェクトの参照がコントローラーに保存され、最後にコントローラーが次のセッションに追加されることです。ユーザー。このスタイルでは、コントローラーが、頻繁に発生する可能性のあるユーザーのアクションの中で複数の動作を行う、粗い詳細なクラスである必要があります。
設計の他の方法は次のとおりです。コントローラーはリクエストを取得し、リクエストの責任オブジェクトを作成しますが、このコントローラーはステートレスであり、たとえばWebサイトの1ページに従って特定の動作をします。このようにして、ページごとにコントローラーを作成する必要があります。一部のページで共通の情報が必要な場合は、DBまたはそのキャッシュからそれらをロードする必要があります。
- 最初のスタイルでは、作成とガベージコレクションが減少するため、コントローラーは粗い粒度のオブジェクトである必要があります。したがって、ユーザーが認証されてから1回だけ作成され、セッションが期限切れになるまでガベージになりません。セッションに存在するオブジェクトのライフサイクルは、セッションが期限切れになるまでなので、メモリ不足の原因になる可能性があると思います。
- 2番目のスタイルでは、ユーザーが他のページに移行するたびに1つのコントローラーを作成し、DBから情報を抽出する必要があります。これにより、パフォーマンスの問題が発生する可能性があります。
私のリクエスト:メモリ使用量とパフォーマンスの2つの側面でそれらを比較したいと思います!そして、何か提案があれば、私はそれについて言及したいと思います!
簡単な例については、以下の写真を参照してください。
http://v1.iimmgg.com/images/is7gr/fb0f6b763eea5294815dcb2d50a12f56.png
java - ガントチャートと粒度をサポートする無料のライブラリ<=1時間
時間単位または分単位のガントチャートをサポートする無料のグラフィカルライブラリはありますか?私はいくつか試しました。JFreeChartは最も有望なもののひとつでしたが、スケールダウンすると、表示される最大タイムスケールがわずか数日に短縮されるようです。