プログラマはどのようにして高品質なデザインを出力できるのでしょうか?

プログラマーはなぜデザインをするのでしょうか?

作为一名程序员,最理想的状态当然是,产品提需求,UI给设计,程序员哐哐哐敲完代码就完事。然而事实并非如此,要想成为一名工程师,所具备的能力不止于此,不仅仅只是代码的搬运工,还应培养提升自己的综合能力

  • 「ソフトウェア設計」という用語は、コンピュータのソフトウェア要件仕様を実際に実行できるソフトウェアに変換するための一連のソリューションを考え出し、作成し、発明することを意味します。
  • 設計は、要件分析とコーディングのデバッグを組み合わせたアクティビティです。
  • 現実の世界では、デザイナーの仕事の重要な部分は、相反するデザイン機能を測定し、それらの間のバランスを見つけようとすることです。
  • デザインのポイントは、可能なものを生み出すことと、可能なことを制限することです。

良いデザインにはどのような特徴があるべきでしょうか?

  • 複雑さを最小限に抑える設計の主な目標は、複雑さを最小限に抑えることです。「賢い」デザインは理解できないことが多いため、「賢い」デザインを作成することは避けてください。シンプルでわかりやすいデザインにする必要があります。
  • 保守性とは、プログラマが保守を行うことを念頭に置いて設計することを意味します。メンテナンス プログラマーが、あなたが書いたコードに関して抱くかもしれない質問に留意してください。これらのプログラマーを聴衆として扱い、それから、一目瞭然 (自明の理) システムを設計します。
  • 疎結合とは、プログラムのさまざまなコンポーネントが最小限の相関で設計されていることを意味します。クラス インターフェイスに合理的な抽象化、カプセル化、情報隠蔽の原則を適用することで、相互関係をできるだけ少なくしたクラスを設計します。関連付けを減らすと、統合、テスト、メンテナンスの作業負荷も軽減されます。
  • スケーラビリティとは、システムの基礎となる構造を破壊することなく、システムの機能を強化できることを意味します。他の部分に影響を与えることなく、システムの一部を変更できます。可能な変更が多ければ多いほど、システムへのダメージは少なくなります。
  • 再利用可能とは、設計されたシステムのコンポーネントを他のシステムで再利用できることを意味します。
  • ファンインが多いということは、多数のクラスが特定のクラスを使用することを意味します。これは、システムが下位レベルのユーティリティ クラス (ユーティリティ クラス) を有効に活用するように設計されていることを意味します。
  • 低ファンアウト (低ファンアウト) は、クラスが少量または中程度の量の他のクラスを使用することを意味します。ファンアウトが高い (約 7 を超える) 場合は、クラスが他の多くのクラスを使用しているため、過度に複雑になる可能性があることを示します。
  • 移植性とは、他の環境に簡単に移植できるようにシステムを設計する必要があることを意味します。
  • シンプルとは、冗長部品のないシステムを設計することを意味します。ヴォルテールはかつて、本は何も加えられないとき、しかし何も取り除くことができないとき、完成しないと言いました。ソフトウェアの世界では、冗長なコードも開発、レビュー、テストし、他のコードが変更されたときに再検討する必要があるため、この見方はさらに真実です。ソフトウェアの後続のバージョンにも、この冗長コードとの下位互換性があります。次の重要な質問をしてください。「これは簡単ですが、これを追加すると何が問題になりますか?」
  • 階層とは、システムの各分解層の階層を維持して、どのレベルでもシステムを観察し、一貫したビューを取得できるようにすることを意味します。設計されたシステムは、他のレベルに入ることなく、どのレベルでも観察できる必要があります。
  • 標準テクノロジー システムが依存する奇妙で奇妙なものが多いほど、初めてシステムを理解しようとする他の人にとっては頭痛の種になります。システム全体を親しみやすくするために、標準化された一般的に使用される方法を使用するようにしてください。

デザインテンプレート

機能を手に入れるとき、どのような観点からデザインを書けばよいのでしょうか?著者は自身の経験に基づいてデザイン テンプレートを提供しています。アイデアがない場合、または開始方法がない場合は、このテンプレートを参照してください。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/m0_46627407/article/details/127196475