読者のために書く
このコースでは、読者を定義することの重要性を繰り返し強調します。このセクションでは、文書を構成する手段としての読者の定義に焦点を当てます
読者のニーズを明確にする
以下の質問に答えることで、文書の内容を決めることができる:
○対象読者は誰か?
○対象読者の目標は何か?なぜこの文書を読むのか?
○読者は、あなたの文書を読む前に、すでに何を知っていますか?
○あなたの文書を読んだ後、読者は何を知るべきか、何ができるようになるべきか?
例えば、あなたがクイックソートに似た新しいソートアルゴリズムを発明したとします。次のリストには、前述の質問に対する答えの候補がいくつか含まれています:
○ターゲットとする読者は誰ですか?
対象者は、私の組織内のすべてのソフトウェア・エンジニアです。
○対象者の目標は何ですか?
私のターゲットオーディエンスは、データをより効率的に分類する方法を見つけたいと思っています。彼らは、この新しいアルゴリズムが実装する価値があるかどうかを判断するために、この文書を読んでいます。
○読者はあなたのドキュメントを読む前に、すでに何を知っていますか?
私の対象読者はコードの書き方を知っており、クイックソートを含むソートアルゴリズムを以前に勉強したことがあります。しかし、私の対象読者のほとんどの人は、ここ数年間ソートアルゴリズムを実装したり評価したりしたことがありません。
○読者は、あなたの文書を読んだ後、何を知るべきか、何ができるようになるべきか?
私の対象読者は、以下のことがすべてできるようになるでしょう:
★このアルゴリズムとクイックソートとの比較対照を理解する。
★このアルゴリズムがクイックソートよりも優れている2種類のデータセットを特定する.
★選択したプログラミング言語でアルゴリズムを実装できる.
★アルゴリズムの性能が劣る2つのエッジケースを特定する.
読者のニーズに合わせて文書を構成する
読者のニーズを定義したら、読者が必要な情報を得られるように文書を構成します。例えば、前のセクションの答えに基づくと、文書のアウトラインは次のようになります:
1.アルゴリズムの概要
- ビッグオーとの比較を含むクイックソートとの比較対照
- クイックソートのウィキペディア記事へのリンク
- アルゴリズムに最適なデータセット
2.アルゴリズムの実装
- 擬似コードによる実装
- よくある間違いを含む実装のヒント
3.アルゴリズムの深い分析
- エッジケース
- 既知の未知数
ここで、エッジケースと出てくるので、エッジケースについて示します。
エッジケースとは
**エッジケース(edge case)**とは、ソフトウェアやシステム、機械などの開発・運用において、「極端な条件」や「特殊な環境下」で発生する稀な状況や問題を指します
主な特徴
通常の利用や一般的な条件ではほとんど発生しないが、入力値や環境、パラメータが「限界値」や「境界値」など極端な状態になった時に現れる。
例としては、「入力可能な最大値や最小値を超えた時」や「想定外のデータ形式が入力された時」などが挙げられます。
こうしたケースは、通常のテストや設計では見落とされがちですが、発生した場合は重大な不具合やセキュリティリスクにつながることもあるため、特に安全性・信頼性が求められる分野では重視されます
具体例
ソフトウェアで「0除算」や「最大値+1」の入力によるクラッシュ。
入力フォームで「空文字列」や「極端に長い文字列」を送信した場合の挙動。
Webサービスで、ごく少数しか使われていないOSやブラウザでのみ発生する表示崩れ
コーナーケースとの違い
- エッジケースは「単一の極端な条件」で発生する稀なケース。
- これに対し「コーナーケース」は「複数の極端な条件が同時に重なった場合」に発生する、さらに稀で複雑なケースを指します
なぜ重要か
エッジケースを考慮しないと、通常のユーザーには影響が少なくても、特定の状況下で深刻なバグや障害が発生する恐れがあります。
特に金融システムや医療機器、自動運転など「安全性」が重視される分野では、エッジケースを洗い出してテストすることが不可欠です
まとめ
エッジケースとは、「極端な条件下でのみ発生する稀な問題や状況」を指し、システムの信頼性や安全性を高めるためには、こうしたケースも十分に考慮して設計・テストを行うことが重要
最後に
今回もテクニカルテクニカルライティングの話でしたが、テストについても少し考えましたね。なんかわかりやすい文章が書きたくなりますね。それでは次回もお楽しみに。
コメント