IRONSOFTWAREHOME

C# におけるアプリの概要計画:Tim Corey から学ぶ全体像

C#アプリスタートからフィニッシュまでレッスン02 - 概要計画

ティム・コーリー

31m 35s

開発者がアプリケーションを作成するとき、最も高価な間違いは通常、コードが記述される前に発生します。 "C# From Start to Finish: Tournament Tracker"のレッスン02では、ティム・コーリーはアプリ概要計画に焦点を当てています。これは、アプリが何をすることになっているのか、誰がそれを使用するのか、どのように機能するのか、そしてどのような境界内で操作しなければならないのかを理解することです。 このレッスンにはまだコードを書くことは含まれていません。 代わりに、ティムはプロの開発者が開発を始める前に一歩引いて、アプリの構造、機能、戦略をどのように設計するかを一緒に歩んでいます。

この記事では、ティム・コーリーのビデオを注意深く追うことで、アプリ概要計画をさらに深く見ていきます。 ティムは、実際の人々(利害関係者)からの回答がアプリケーションのルール、構造、および主要な開発の決定にどのように変換されるかを説明します。 この概要は、将来のレッスンで同じアプリを一貫して構築する基盤となります。

概要計画の紹介

ビデオの冒頭でティム・コーリーはレッスン02を紹介し、概要計画、つまりアプリケーションの全体像を中心にしていると説明します。 ティムはこのステップが詳細に踏み込む前にアプリの基盤を築くことに関するものであると説明します。 彼は、このレッスンが他のものよりも簡単に感じるかもしれないが、管理しやすく拡張性があり、保守可能なアプリを作成する上で重要な役割を果たすと強調します。

ティムは、概要計画は機能やコードを書くことではないと説明します。 それはアプリが全体としてどのように機能するか、ユーザーがどのようにそれと関わるか、および開発者がどのようにアプリを構築するかのアプローチについて理解することです。

利害関係者の質問の見直し

ティムは、進む前に前のレッスンで行った15の質問を再検討する必要があると説明します。 これらの質問は利害関係者、つまりアプリを要求している人々から追加情報を収集するために設計されました。ティムは開発者が利害関係者に戻り、明確な質問をし、より詳細な回答を収集する実世界のシナリオをシミュレートします。

彼はこのプロセスが実際のビジネス環境を反映していると指摘します。 開発者は多くの質問をし、要求を洗練する必要があることがあり、ユーザーは自分が求めるものを技術的な用語で表現する方法を常に知っているわけではありません。

可変なプレイヤーとトーナメントのサイズ

ティムは、アプリが可変数のプレイヤーをサポートする必要があることを説明して答えの見直しを始めます。 トーナメントトラッカーは固定数に限定されるべきではありません。 プレイヤーが2人であろうと、もっと多くてもアプリはそれを処理する必要があります。

この要件はアプリの機能性、データ構造、ロジックに直接影響します。 ティムは、開発者はプレイヤー数に関する仮定をハードコードできないと説明します。 代わりに、アプリはエントリ数に基づいてユーザーとゲームを動的に管理する必要があります。

不完璧なトーナメントにおける不戦勝の扱い

ティムは、トーナメントは必ずしも理想的なプレイヤー数を持つわけではないと説明します。 合計が均等に割り切れないとき、アプリは不戦勝を割り当てる必要があります。 この時点で、ティムは重要なルールを強調します:不戦勝はランダムに割り当てられなければなりません。

これはアプリの繰り返しの技術的ニーズであるランダム化を導入します。 アプリは、プレーヤーがプレイせずに進むことをランダムに選び、公公平に管理する必要があります。 この要件は、アプリケーション内のツール、ロジック、およびイベントに関する後の決定を形作ります。

プレイヤーのランダム順序

ティムは、誰が誰とプレイするかの順序もランダムであるべきであると説明を続けます。 アプリはユーザーが入力された順序に依存しません。 すべてのプレイヤーが追加されると、アプリはリストをランダム化します。

これにより、公平性が確保され、バイアスが避けられます。 ティムは、ランダム性がルールであり、オプションの機能ではないことを明確にします。 それはアプリのコアのルールの一部となり、開発全体で尊重されなければなりません。

柔軟なゲームスケジュール

ティムは、ゲームがシステムによってスケジュールされていないことを説明します。 プレイヤーは好きなときにプレイできるのです。 ただし、アプリは依然としてルールを強制します。 3:04で、ティムは各ラウンドが次のラウンドが表示される前に完了する必要があることを明確にします。

この要件は、アプリがゲームを追跡し、データを管理し、イベントをトリガーする方法に影響を与えます。 アプリはラウンドがいつ終了したかを知り、ユーザーが後のラウンドに早期にアクセスするのを防ぐ必要があります。

スコアリングとデータの柔軟性

ティムは、システムがシンプルな数値スコアを保存するべきだと説明します。 これにより、アプリは異なるタイプのゲームをサポートするのに十分な柔軟性を持ちます。 チェッカー、バスケットボール、他の競技であろうと、同じアプリが得点を管理できます。

この決定は、データの収集、保存、表示の方法に影響を与えます。 スコアリングを簡単に保つことで、開発者はアプリを特定のゲームタイプにロックすることを避けます。

将来を見通したユーザーインターフェースの選択

ティムは、アプリが現在Windows Formsを使用するデスクトップアプリケーションであると説明します。 ただし、彼は利害関係者が後で同じアプリをウェブまたはモバイルプラットフォームに進化させたいと考えるかもしれないと強調します。

そのためには、ティムは開発者がビジネスロジックからユーザーインターフェースを分離する必要があると説明します。 4:41で、彼は、コア機能がクラスライブラリに配置されるべきであり、後でアプリを書き直すことなく異なるユーザーインターフェースを統合できると説明します。

データストレージと統合戦略

ティムは、データは理想的にはMicrosoft SQL Serverに保存されるべきだと説明しますが、アプリがテキストファイルのフォールバックもサポートする必要があると説明します。 これは、特定のツールやサービスが利用できない場合でも、アプリが正常に動作することを確保します。

この決定は、開発者がデータアクセスコードを書く方法に影響します。 ティムは、統合が柔軟でなければならず、同じアプリが異なるソースからデータを保存し取得することができ、機能が壊れることはないと説明します。

参加費、賞品、実世界の曖昧さ

ティムは利害関係者がしばしば曖昧な回答をすることを説明します。 最初、アプリが参加費と賞品を取り扱うかどうかの答えは単に"はい"です。ティムは、それが何を意味するかを理解するために開発者が掘り下げる必要があると説明します。

彼はその後、明確化された要件を概説します:トーナメントは参加費を請求し、複数の場所に賞金を授与し、支出が収入を超えないことを保証します。 彼はまた、パーセンテージベースの支払いと資金調達シナリオを説明します。

このセクションは、アプリ概要計画が開発者がアプリを過度に複雑にすることなく実際のビジネスルールを予測するのに役立つことを示しています。

報告と結果の表示

ティムは報告が簡単であるべきだと説明します。 アプリはラウンド結果と最終結果を表示する必要があり、誰が勝ったか、どれだけ勝ったかを含める必要があります。 報告はフォームに表示されたり、メールで送信されたりすることがあります。

これは複雑な報告システムを構築することを避けつつ、ユーザーの期待を満たすことができます。 焦点は機能性にあり、不要な機能にはありません。

ユーザーアクセスとシンプルさ

ティムは、アプリを使用する誰もがゲーム結果を入力できることを説明します。 アプリケーション内に異なるレベルのアクセスはありません。 これは、アカウント、パスワード、およびセキュリティ階層を避けることで開発を簡素化します。

彼は、実際にはアプリが管理者のデバイスに存在し、他のユーザーはメールを通じてのみ相互作用する可能性があると説明します。

メール通知と自動化

ティムは、メール機能が重要であることを強調しています。 アプリは、ユーザーに今後のゲームやラウンドの結果を自動的に通知しなければなりません。 これには、開発者が設計プロセスの早い段階でメール統合と自動化を理解する必要があります。

ティムは、この要件が複数回現れることを指摘し、その重要性を示しています。

チームとグループユーザーのサポート

ティムは、アプリは個人だけでなく、チームもサポートしなければならないと説明しています。 すべてのチームメンバーは平等に扱われ、同じメールを受け取ります。 チームにも名前が必要です。

これは、ユーザーのグループ化方法、データの構造化方法、通知を引き起こすイベントの方法に影響を与えます。

大局観のデザインを定義する

ティムは、絵画のアナロジーを用いて大局観のデザインの考えを紹介します。 この段階は詳細ではなく、境界線を定義するものだと説明しています。 18:48に、彼は構造を概説します: Windows Forms アプリ、クラスライブラリ、SQLまたはテキストファイルのデータストレージ、一度に一人のアクティブユーザー。

これらの境界は、後に不要な決定をすることを防ぎます。

開発者向けの重要な概念の特定

ティムは、開発者は研究する必要があるかもしれない重要な概念を特定すべきだと説明します。 彼は、メール、SQL、カスタムイベント、エラー処理、インターフェース、ランダムオーダリングを挙げます。

彼は、カスタムイベントがラウンド完了を検出し、メールなどの機能をトリガーするために使用される可能性があると説明します。

要件を崩さないボーナスアイディア

ティムは、将来的な改良として、テキストメッセージを提案します。 彼は、ボーナス機能は核心的な要件を変更したり、納品を遅らせたりしない場合にのみ許容されると説明します。

これは、概要設計時に定義されたルールを尊重することの重要性を強調します。

まとめと次のステップ

ティムは、ビデオの締めくくりでこのプロセスをまとめます: ステークホルダーの質問が要件に繋がり、要件が概要設計に繋がり、概要設計が重要な概念を明らかにします。彼は、次のレッスンがデータ設計に焦点を当て、情報がどのように結びついていくかを図解することを説明します。

このレッスンは、慎重な概要設計が、コードの一行も書かれる前に、開発者が構造化され、柔軟で、メンテナンス可能なアプリを作成するのにどのように役立つかを示します。

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。