脳はリアルタイムアプリケーションを設計するための設計パターンの理解に失敗します
-
23-09-2019 - |
質問
リアルタイムMIDIアプリケーションを実装するタスクを設定しました。私がこれまでに書いた他のすべてのソフトウェアと同様に、私はコーディングから始めました。輸送状態を制御できる小さなGUI(GTK2)アプリケーションを実装しました ジャックオーディオ接続キット そしてそのクライアント。
私は以前にリアルタイムのアプリケーションを書いたことがなく、マルチスレッドプログラムを1つしか書いたことがありません。これらの詳細はどちらも組み合わさって、これを私にとって大きな課題にします。私は時々、物事を解決するためにペンと紙を必要としました。
ただし、このプロジェクトでは、コーディングによって進められません。しかし、私はソフトウェアのデザインについてほとんど何も知っていません、私は自己教えです(1990年代半ばに2年のコンピューター研究コースを割引)。私はいつも段階的に働き、何かを機能させ、それを構築しています。
私の研究中、私はモデルビューコントローラーパターンに出くわしましたが、詳細について考えることはないことは本当に難しいと感じており、すべてが転倒する問題を見つけることなく構築する基盤を見つけることができません。
このブロックを通過するにはアドバイスが必要です。思考の列を失う気晴らしを見つけるのをやめる必要があります。これは気晴らしの1つです。このブロックを通過するにはどうすればよいですか?
解決
非常に広い用語では、「ソフトウェアデザイン」とは、一連のモジュールで問題を分解し、各モジュールの責任とは何かを指定し、各モジュールが他のモジュールと通信する方法を指定するプロセスです。
このアクティビティを進めるには、さまざまな方法があります。これを考慮すると、それに対する最初の試みは、できるだけシンプルなものを保持します。紙のシートとペンをつかみます。
最初のステップ:新しいアプリケーションが実行できる必要があるタスクのリストを書き留めます。この後、論理的に属していると思われるさまざまなセットでタスクをグループ化してみてください。
各サブセットについて、名前を見つけて、空白シート(サブセット用)に書き込み、モジュールの機能をもう少し詳しく説明します。これらはそれぞれ「モジュールデザインペーパー」です
別の空白のシートに、各サブセットのボックスを描き、適切な名前でラベルを付け、矢印をもう1つのボックスに描画してみてください。各矢印には名前が付いていて、モジュールのいずれかを表す必要があります。これをモジュール「インターフェイスデザインペーパー」と呼びましょう。
他のモジュールに提供するインターフェイスでモジュールの説明を再確認し、これが元のタスクリストの変更が必要かどうか、これが管理するデータにどのように影響するかを確認します。
モジュールは、複雑すぎる/大きく見える場合は、反復的に細分化できます。サブモジュールにモジュールを分割する場合は、別のインターフェイスデザインペーパーを描画し、サブモジュールの合計がモジュールのために最初に想定していたすべてのタスクを引き継ぎ、残りのリクエストに応答できるはずであることを忘れないでください。システム。
参照してください CRCカード 詳細については。
他のヒント
このスレッドには、あなたの状況に適応するのがかなり簡単であるプラグインに変換されたばかりのいくつかのフィドルがあります
jQuery のカスタムドロップダウンパネル
編集:上記の投稿から削除された選択にドロップダウンを作成するためのデモは、投稿を編集し、このフィドルを返す
1つの方法は、あなたの要件について話し合い、DesignPatternに精通している人とデザインを非常に激しく奪うことです。 設計 ソフトウェア。このプロセスでは、Applied DesignPatternの概念について説明できます。