はじめに
現在、計算機の個人開発を進めていてわからない単語があったのでアウトプットするためにブログを書いています
アジェンダ
- 要件定義
- モノレポ
- モジュール
今回、アウトプットする内容はこんな感じです
自分の中でも聞いたことはあるし使ったこともあるんだけど
そういった曖昧にしているのが腑に落ちなかったので整理します。
要件定義とは何か?
要件定義ってなんとなく使っていません?
要件定義、設計、実装、テストみたいな全体の流れの中の最初のあれねって解像度低いまま僕は使っていました。
誰にでものこの単語をわかりやすく解説しようと思います。
要件定義とは?
- 簡単にいうと作りたいモノに対して具体的に何ができればいい?を洗い出しして整理することを指します!
- ここが曖昧なまま作り始めるとあとで思っていたのと違う、あの機能なかったとなって再度考える時間をとってしまうなど認識の齟齬をなくすために定義を行うこと
- 大きく分けて2つ
- 機能要件:何ができるか 例えば、ユーザー登録できる、投稿を検索できるなどの動きそのものに関してのこと
- 非機能要件:どう動くか、 例えば、3秒以内に表示、同時に1000人使える、パスワードは暗号化など、性能やセキリュティの条件のこと
- 大きく分けて2つ
- ここが曖昧なまま作り始めるとあとで思っていたのと違う、あの機能なかったとなって再度考える時間をとってしまうなど認識の齟齬をなくすために定義を行うこと
機能要件 =「できること」:非機能要件 =「できることの質」
これくらいがわかりやすくていいですかね?w
これらを確認し意見を交わし合い、要件定義がきまるって感じですね!
モノレポとは?
モノレポ構成は、複数のプロジェクトを1つのリポジトリ(Gitの保管場所)にまとめて管理するやり方です。モノレポ = mono(単一の)+ repo(リポジトリ)。
マルチレポ:フロントとバックエンドのリポジトリを分ける構成
モノレポ:この2つを1つのリポジトリの中にフォルダで分けて入れる構成
モジュールとは?
モジュールは、関連するコードをひとまとめにした「部品」のことを指す!
プログラムを1個の巨大なファイルに全部書くと、どこに何があるか分からなくなります。そこで、機能ごとにコードを分けて「部品」にしておく。この部品1つ1つがモジュール!
myapp/
├── auth(ログイン担当の部品)
├── user(ユーザー管理の部品)
└── payment(決済担当の部品)
終わりに
意外と調べて見ると曖昧な言葉もただの英単語なだけであって自分が英単語の意味を知らないだけだったんだなとわかりました
引き続き、アウトプットを行いながら個人開発をしていきたいと思います✨
