issueを料理に例えると

## はじめに
アプリ制作でissueの課題に取り組んでいるわーちゃんです。issueを全く知らない状態からユーチューブ動画や先輩方のGithubのissueをみにいったりして手探り状態で進めています。今回は途中経過の状態を少しお伝えできればと思います。

## issueとは
ここで改めてissueについて、どういうものなのかサラッと解説

- ISSUE（イシュー）は、プロジェクト管理やバグトラッキングシステムで使われるタスクや問題のこと
- GitHubやJIRAなどで一般的に使われている
- ISSUEにはバグ修正、新機能の追加、改善提案などが含まれる

## issueを料理に例えると
![料理.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3777936/9720dd5c-cdcf-6cb2-e6ab-57dd26d85c3b.jpeg)

まずは大まかにしたものを表の形式でまとめてみます
| Issue | 	説明 | コース料理での例え |
| - | - | - |
| 要件定義 | サイトの目的や機能を明確にする。 | メニューの決定：どの料理を提供するか決める |
| デザイン | 	サイトの外観やレイアウトを決める。 | 料理の盛り付けを考える |
| フロントエンド開発 | ユーザーインターフェースの実装。 | 前菜の調理：食事の始まりを整える |
| バックエンド開発	 | サーバーサイドのロジックやデータベースの構築。	 | メインディッシュの調理：中心的な料理を作る<br> |
| データベース設計	 | データの構造を設計し、保存する。	 | 食材の選定と準備：品質の良い材料を選ぶ<br> |
| API設計	 | フロントエンドとバックエンド間のデータ通信を設計する。	 | ソース作り：料理に深みを与える<br> |
| テスト	 | 各機能が正しく動作するか確認する。	 | 試食：提供前に味を確認する<br> |
| デプロイ | サイトを本番環境に公開する。	 | 提供：完成した料理をテーブルに出す<br> |
| ユーザーフィードバック	 | サイトの使用後にユーザーからの意見を収集し、改善する。	 | 食後のレビュー：ゲストのフィードバックを聞く<br> |
| メンテナンス	 | サイトが安定して動作し続けるように保守・管理する。	 | キッチンの清掃と管理：次のサービスに備える<br> |


#### さらに細かくしたissueを表にまとめてみる
![フレンチ？.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3777936/a45a9108-3fcd-8e02-6911-d882d324c501.jpeg)

| Issue                    | 説明                                                           | コース料理でのたとえ                           | 
| ------------------------ | -------------------------------------------------------------- | ---------------------------------------------- | 
| 要件定義                 |                                                                |                                                | 
| ・目的設定               | サイトの目的を明確にする。                                     | レストランのコンセプトを決める<br>             | 
| ・機能要件の決定         | 必要な機能をリストアップする。                                 | メニューに含める料理を決める<br>               | 
| ・非機能要件の決定       | パフォーマンス、セキュリティ、ユーザビリティ等の要件を決める。 | 食材の質や提供速度、雰囲気を決める<br>         | 
| デザイン                 |                                                                |                                                | 
| ・ワイヤーフレーム作成   | レイアウトの基本構造を決定する。                               | 料理の盛り付けプランを決める<br>               | 
| ・モックアップ作成       | カラースキームやフォントを決め、視覚的なデザインを具体化する。 | 料理のサンプルを作る<br>                       | 
| フロントエンド開発       |                                                                |                                                | 
| ・HTML/CSSのコーディング | 基本的なページ構造とスタイルを実装する。                       | 前菜の下ごしらえをする<br>                     | 
| ・JavaScriptの実装       | インタラクティブな機能を追加する。                             | 前菜にソースや飾り付けを加える<br>             | 
| バックエンド開発         |                                                                |                                                | 
| ・サーバー設定           | サーバー環境を構築する。                                       | キッチンの準備を整える<br>                     | 
| ・ロジックの実装         | サイトの機能を実装するロジックを書く。                         | メインディッシュの調理を始める<br>             | 
| ・データベース接続       | データベースとサーバーを接続する。                             | 食材を料理に使うための準備をする<br>           | 
| データベース設計         |                                                                |                                                | 
| ・エンティティの設計     | データの各要素（テーブル、カラムなど）を決める。               | 各料理の材料を決める<br>                       | 
| ・リレーション設計       | データ間の関係を設計する。                                     | 食材の組み合わせを考える<br>                   | 
| ・インデックス設計       | パフォーマンスを向上させるためのインデックスを設計する。       | 調理の順序や手順を最適化する<br>               | 
| API設計                  |                                                                |                                                | 
| ・エンドポイント設計     | 各機能のエンドポイントを決める。                               | ソースの種類や味付けを決める<br>               | 
| ・データ形式の決定       | データの送受信形式（JSON、XMLなど）を決める。                  | ソースの材料とその分量を決める<br>             | 
| テスト                   |                                                                |                                                | 
| ・単体テスト             | 各機能の動作確認を行う。                                       | 料理の各パーツを味見する<br>                   | 
| ・結合テスト             | 複数機能が正しく連携するか確認する。                           | 料理全体を通しての味見をする<br>               | 
| ・ユーザビリティテスト   | 実際のユーザーが使いやすいか確認する。                         | ゲストに試食してもらいフィードバックを得る<br> | 
| デプロイ                 |                                                                |                                                | 
| ・サーバー配置           | 本番サーバーにサイトを配置する。                               | 完成した料理をテーブルに出す<br>               | 
| ・ドメイン設定           | サイトのドメインを設定し、公開する。                           | 料理の名前をメニューに記載する<br>             | 
| ユーザーフィードバック   |                                                                |                                                | 
| ・フィードバック収集     | ユーザーからの意見を収集する。                                 | 食後にゲストの意見を聞く<br>                   | 
| ・改善点の洗い出し       | 改善が必要な点をリストアップする。                             | ゲストの意見を基に次の料理を改良する<br>       | 
| メンテナンス             |                                                                |                                                | 
| ・バグ修正               | 発見されたバグを修正する。                                     | 調理器具のメンテナンスを行う<br>               | 
| ・機能追加               | 新しい機能を追加する。                                         | 新メニューの開発を行う<br>                     | 
| ・サーバー管理           | サーバーのパフォーマンスやセキュリティを維持する。             | キッチンの環境を整え、次のサービスに備える<br> | 


## 料理に例えてみて
今までの人生の中で、料理を作る機会が多かったので、issueを料理で例えてみました。料理を完成させる工程と似ているんだなぁと感じることができ、なんとなくissueについて理解が深まった、はず。
普通に食べるのではなく、何が入っているのか考えながら食べれば、ある程度入っている食材、調味料がわかるように、自分はある一つの機能をどのように構成するのか。誰が見てもわかるようなissueを作成していきたい