問題をより小さな理解しやすい部分に分割するにはどうすればよいでしょうか?

StackOverflow https://stackoverflow.com/questions/932966

  •  06-09-2019
  •  | 
  •  

質問

この件に関して一般的なアドバイスができるかどうかわかりませんが、試してみてください。私の場合は複雑すぎて説明するのが難しいです。そしてまさにそれが問題なのです。

プロジェクトの一部を設計しようとすると、考慮すべきことが多すぎて理解できないという状況に常に遭遇するようです。

システムを一度に小さな単位で見る方法について、一般的なヒントやアドバイスはありますか?独自に個別に設計できる小さな部分を見つけるにはどうすればよいでしょうか?

役に立ちましたか?

解決

主な目標は次のとおりです。

  • 高い凝集力:1 つのピース/モジュール/パーティション内のコード (メソッド、フィールド、クラス) は集中的に対話する必要があります。それはすべきです 意味をなす これらの要素がお互いを認識できるようにするためです。それらの一部が残りの部分とあまり対話しないことがわかった場合、それらはおそらく別の場所に属しているか、独自のパーティションを形成する必要があります。外部のコードがパーティションと集中的に対話し、その内部の仕組みについて知りすぎている場合は、おそらく内部に属していると考えられます。典型的な例は、手続き型スタイルで記述された OO コードに見られます。このコードでは、「ダム」データ オブジェクトと、それらを操作するが実際にはデータ オブジェクトの一部である必要がある「マネージャー」コードが含まれています。
  • 疎結合:交流 ピース/モジュール/パーティションは、限定的で、明確に定義され、十分に文書化された API を通じてのみ実行されるべきです。そのような API を特定し、それらを実装するためにどのようなコードが必要か、またどのようなコードがそれらを使用するかを確認してください。

他のヒント

用語集を作成します。

言い換えれば、プログラマの観点からではなく、主題に詳しいユーザーの観点から、プロジェクト ドメインにとって意味のある用語を特定します。

次に、用語を次のように定義します 正確に そして 個別に することができますように。この形式の適切な定義は、一種の擬似コードとして機能します。

問題の領域さえ特定されていないため、ランダムな例を選択します。民間の人事制度では、次のような用語がある場合があります。

  • ビレット:特定のグレードおよびステップでのサービス期間 (開始日から終了日まで)
  • 従業員:特定の SSN に関連付けられた一連のビレット
  • グレードとステップ:連邦一般スケジュールの行と列

等々。これは、あなたがやろうとしているように聞こえるかもしれないが、機能単位を識別するためではありませんが、明確に定義された用語で機能ステップを表現できるようにするための、そうする前の良い準備ステップです。

これは、問題の分解トップダウンとボトムアップの両方にアプローチすると便利です。

あなたがトラブル二つに大きな問題を分割以上の小さな問題がある場合、解決する必要があります可能な限り最小の問題を考えてみてください。それらが処理されたら、あなたはあなたの元に大きな問題にアプローチとして、より大きな問題にそれらを結合する方法を見始めることがあります。

私は自分自身が、私はそれは、「パーティション」だ実現し、クラス、メソッド、関数、または何を作成し、最小限の調整とコードのチャンクをコピーして貼り付け見つけたときます。

実際には、全体のオブジェクト指向のアプローチは、それがすべてについて何です。ものを行う具体的なものとしてアプリケーションを考えてみてください。物事があり、彼らは何をすべきか、私は「パーティション」この方法の多くを見つけるものを記述した擬似コードを記述します。

ここで試して、野生の推測のようなものです。

人々は通常、それが仕事をするためにそれらを取るだろうどのくらい過小評価します。プロジェクトが大きい場合は、このことを念頭に置いて計画を試すことができますので、その後、最も可能性の高いあなたは、その上で動作するようにいくつかの人々が必要となります。今の人は頭の中でただ一つの領域を保持するために期待することができるので、あなたは彼が行うことになっていたタスクの正確どのような彼に説明する必要があります。

だから私はあなた一人が真剣に集中するために可能な限り網羅すべきジョブ記述を書くようにしてくださいと言うと思います。あなたがしたかったの部分にあなたのプロジェクトが壊れてしまうまで、繰り返します。利点として、あなたはあなたのチームを組み立てるする準備が整いました。あなたは部品が小さい見つけるなら、多分あなたはまだそれを自分で行うことができるでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top