再ハッシュ:会計ソフトウェアの設計パターン
-
21-08-2019 - |
質問
10月に遡ると、クリストファー・ジョンソンは次のように尋ねた。 会計ソフトウェアの設計パターン
彼はいくつかの答えを受け取りましたが、それらはすべて基本的に同じでした。 マーティン・ファウラーの会計パターン.
ファウラーのパターンがそれほど役に立つとは思いません。これらは、より単純化された会計システムにとっては複雑すぎるように思われるため、クリストファーの質問を再考し、できれば小規模なシステム向けに、より多くのオプションを探しています。
これは主に現金ベースのシステムであり、ユーザーに銀行と同様の口座が与えられます。(Web ベースで) ログインして残高を確認したり、特定の取引を行ったりすることができます。
銀行というよりもPaypalやクレジットカード会社に似ていると思いますが、規模は小さいです。税金や償却など、本格的な会計システムで見られるような事柄を扱う必要はありません。残高と取引だけです。
それでは、会計ベースのソフトウェア設計、または単純な会計システムの優れた実装に関する追加のリソースを誰かが指摘できますか?
解決
だから、でき会計ベースのソフトウェアの設計や簡単な会計システムであっても良いの実装のための任意の追加のリソースを誰ポイント?
無料デジタルマネープロジェクトには、ニーズのために有用になります。これは、基本的なトランザクションとバランスのフレームワークを提供します。それはあなたが新しいアイデアをテストしたい場合は特に、意図的にシンプルかつ抽象的なので、便利な設計の洞察を提供することがあります。
Cyclos には、より実用的です。これは、ユーザーアカウントと取引をカバーしています。
MyBanco には、ユーザーの銀行口座およびWebベースのアクセスをサポートし、他のオープンソース・バンキング・システムです。これは、仮想と現実の通貨の両方で使用できます。
これらのすべては、あなたが直接、ドキュメント、アーキテクチャとコードをチェックアウトすることができるようにオープンソースです。
あなたは残高および取引で実際にのみ関心がある場合はさておき、それが評判に関連する任意のパターンやプロジェクトのように聞こえるように、、カルマ、またはポイントシステムは、おそらく、関連するオーバーラップを持つことになります...
他のヒント
ファウラーのパターンは、のないの過度に複雑です。彼らは必要とされているものについてです。あなたは、エンドユーザーや会計士のいずれかでトラブルに取得せずにシンプルな何かを構築することができることはほとんどありません。
私はそれは雑誌、取引やアカウントとアカウントの種類の代表的なモデルの会計実装するときます。
tblTransactions
- Amount
- AccountID1
- AccountID2
- Type [CR/DR]
- DateEntered
私はその後も明らかに基づきtblJournals
グループの取引を持っています。あなたが素敵なもの(reverals、など)を検出できるように、また、それが雑誌の何種類の一般的な説明を保持JournalTypesを、追加することもできます。
これは、うれしいです。あなたは自分の雑誌のためにすべてのトランザクションを収集し、タイプを入れ替えることができます。
tblTransactionsはトリガーを持っており、トリガーは種類に応じて、特定のアカウントに対して「CalculatedBalance」を更新します。その後、またように与えられた期間にわたってレポートを実行し、することができます。
これは、これを実装するために多くの会計知識を必要とし、シンプルでありながら効果的ではありません。
それ自体はデザインパターンではありませんが、次のような操作を確認する必要があります。「$account1 から $account2 に $amount を送金します」 しないでください これまで 一致する「入金」なしで「引き出し」...つまり「入金」が完了する前に停電が発生した場合、「出金」はロールバック(取り消し)されます。
コミット可能なトランザクションは、取り消し可能な (ロールバック可能な) サブトランザクションで構成されます...
- 必要な権限を取得します。些細な拒絶、「資金不足」
- 「2フェーズコミット」を開始する
- サブトランザクションを追加する
- コミットまたはロールバック
警告:BCD 計算は、10 進数の計算における丸め誤差を防ぐために発明されました。国際問題については言及していませんが、固定小数点または「高精度」の数学、通貨換算、その他すべてが必要になります...
私は実際にMyBancoの著者午前、ちょうど私にメールをドロップします。)
セント(整数)の代わりドル(フロート)としてストアお金。それはデザインではないのですが、それはおそらくより便利です。