2019年10月16日お題が決まりました!何かしらの投稿サービス期間一ヶ月と言うわけで作っていくんですが、いきなりプログラムを書き出すと漂流してしまうので道しるべを書きます。開発の前段階の設計と呼ばれるフェーズですね。やってみるとわかりますが頭の中が整理され、何を作るのかが明確になります。この工程をやらずにプログラムを書き出すと、途中で挫折する可能性が増えるので、きちんとやっておきましょう。僕はWebサービスを一人でリリースする。いうのは初なので制作工程から全て実験です。ツッコミ大歓迎なのでよろしくお願いします。まとめアイデア出しまずここですね。何を作るかわかっていないのに作れるわけありません。いう決まりごとがあります。今回は期間優先なので、自分の実力を鑑みて無理のない範囲のものを作ります。いえ、面白くないもの作ってもしかたないので、ちょっとだけひねりました。いろんな案が浮かんでは消えますw自分の中で出た案は画像投稿サイト音声投稿サイト動画投稿サイトゲーマーだけのSNSTwitterクローンあんまりひねりありませんが色々考えた結果、Twitterクローンを作ることにしました。作るものが決まったら設計します。設計なんて難しそう!!って僕も思ってましたがそんなこともなく、これから作るものはこんな感じだよね。一人で作ってるんだし、完璧求めてても仕方ないのでゆる〜くいきましょう。画面一覧どんな画面構成なのか頭の中で簡単に考えます。慣れてくればその状態で実装できるかもしれません・・・が!頭の整理もかねて一回アウトプットした方がいいです。こんな感じで必要となる画面と、画面の遷移を起こします。仕事なら何かしらのツールで電子化した方がいいんでしょうが、一人でやる分には手書きだけでいいと思います。大きなもの、変更が大きくかかるようなものであれば、一人で作るにしても清書した方がいいとは思います。本来はここでのアウトプットがワイヤーフレームだったりするんでしょうね。画面と同時に必要となる機能を洗い出します。つぶやきつぶやきへのコメントコメントへのコメントつぶやき、コメントに画像添付いいね今回作らない機能Eメールアドレスは使わない(今は管理できない。今後使用したい)つぶやきの削除(整合性大変そう)コメントの削除(整合性大変そう)つぶやき、コメントの編集(サービス的に不要)Twitter、Facebook認証(そのうち)検索(仕様考えるの大変そう。作る機能と同じぐらい、作らない機能を明確化するのは大事です。設計全般に言えることですが、慣れれば精度は上がります。これはどんなことにでも言えますね。必要な画面・機能が出揃ったら、必要となるデータベースの設計をします。いえ、画面が出揃っていると結構簡単に作れると思います。プロフィール画面を見ると、ユーザーが持つべき情報がわかります。ユーザー名ユーザーIDパスワード画像プロフィールこれらを元にデータベースを考えていきましょう。いうツールを使わせてもらい作成しました。デモ各テーブルの説明ありがちなデータベースになりました。ログインID、ログイン時に必要。usersのid、どのユーザーか。usersのid、どのユーザーか。投稿のid、どの投稿か。コメントのid、どのコメントか。usersのid、どのユーザーか。投稿のid、どの投稿か。コメントのid、どのコメントか。データの編集日時なんとなーく頭の中でプログラムを考えながら、色々と想像して作ってみました。commentsテーブルのcomment_idなんてアンチパターンな気がしますが、考えすぎても仕方ないので、とりあえずこれで作っていこうと思います。