22

10月に、クリストファー・ジョンソンは会計ソフトウェアのデザインパターンについて質問しました。

彼はいくつかの回答を受け取りましたが、それらはすべて基本的に同じであり、MartinFowlersの会計パターンを示しています。

ファウラーのパターンがそれほど役立つとは思いません。それらは、より単純な会計システムには過度に複雑に見えるので、私はクリストファーの質問を再ハッシュし、より多くのオプション、できればより小さなシステムを探しています。

これは主に、ユーザーに銀行と同様の口座が与えられる現金ベースのシステムになります。ログイン(Webベース)して残高を確認したり、特定の取引を行ったりすることができます。

銀行というよりはPaypalやクレジットカードの会社に似ていると思いますが、規模は小さいです。税金や償却、あるいは本格的な会計システムで見られるようなものを扱う必要はありません。ちょうどバランス、そしてトランザクション。

では、会計ベースのソフトウェア設計や、単純な会計システムの優れた実装のための追加のリソースを誰かが指摘できるでしょうか。

4

5 に答える 5

9

Fowler のパターンは、それほど複雑ではありません。彼らは必要なものについてです。エンド ユーザーや経理担当者とトラブ​​ルに巻き込まれることなく、より単純なものを構築できる可能性はほとんどありません。

于 2009-04-02T09:32:56.827 に答える
8

それでは、会計ベースのソフトウェア設計や単純な会計システムの優れた実装について、追加のリソースを指摘できる人はいますか?

Free Digital Money Projectは、あなたのニーズに役立ちそうです。基本的な取引と残高のフレームワークを提供します。これは意図的にシンプルで抽象的であるため、特に斬新なアイデアをテストしたい場合に役立つデザインの洞察が得られる可能性があります。

Cyclosはより実用的です。ユーザーアカウントとトランザクションを対象としています。

MyBancoは、ユーザーの銀行口座と Web ベースのアクセスをサポートするもう 1 つのオープン ソース バンキング システムです。仮想通貨とリアル通貨の両方で使用できます。

これらはすべてオープン ソースであるため、ドキュメント、アーキテクチャ、およびコードを直接確認できます。

余談ですが、実際に残高と取引のみに関心がある場合は、評判、カルマ、またはポイント システムに関連するパターンまたはプロジェクトには関連する重複がある可能性が高いように思えます...

于 2009-09-06T01:52:00.023 に答える
4

私が会計を実装するとき、それはジャーナル、トランザクション、アカウント、およびアカウントの種類の典型的なモデルです。

tblTransactions
    - Amount
    - AccountID1
    - AccountID2
    - Type [CR/DR]
    - DateEntered

次にtblJournals、明らかな基準でトランザクションをグループ化するものもあります。また、ジャーナルの種類の一般的な説明を保持する JournalTypes を追加することもできます。これにより、良いこと (リバースなど) を検出できます。

このモデルでの反転は些細なことなので、いいですね。ジャーナルのすべてのトランザクションを収集して、タイプを交換するだけです。

tblTransactions にはトリガーがあり、トリガーはタイプに応じて特定のアカウントに対して「CalculatedBalance」を更新します。その後、特定の期間についてレポートを実行することもできます。

これを実装するのに多くの会計知識は必要なく、シンプルですが効果的です。

于 2009-09-06T02:31:32.107 に答える
1

Googleで「2フェーズコミット」を検索

それ自体はデザインパターンではありませんが、 「$amountを$account1から$account2に転送する」などの操作が、一致する「デポジット」なしで「撤回」ないようにする必要があります。入金」が完了し、「出金」がロールバック(元に戻されます)

コミット可能なトランザクションは、元にできる(ロールバック可能な)サブトランザクションで構成されています。

  1. 必要な許可を取得する:些細な拒否、「不十分な資金」
  2. 「2フェーズコミット」を開始します
  3. サブトランザクションを追加する
  4. コミットまたはロールバック

警告:BCD数学は、Base10数学の丸め誤差を防ぐために考案されました。国際的な問題については言及していませんが、固定小数点または「高精度」の数学、通貨換算、およびその他すべてが必要になります...

于 2009-03-22T23:54:26.283 に答える
-3

通貨をドル (float) ではなくセント (integer) として保存します。これはデザインではありませんが、おそらくより便利です。

于 2009-03-22T18:55:57.423 に答える