どうサービスを作ればいいか

 
今まで新しくサービスを作っていくときにどうやって作っていけばいいのかわからなかった。
プログラミングは大事と言われているけど、プログラミングの基礎以外の教材はあんまりネット上には転がっていなかったし。
 
今月はプログラミングだけでなく、サービスを作る上で必要な知識を学んだので、
 
プログラミングをするまでのwebサービス作成の流れをさらっとまとめてみた。
 
 
サービスを作り上げる上で、まず大きく分けて4つの段階がある。
 
要件定義、設計、開発、テストの4つ。
 
 
要件定義ですることは、
簡単にいうと新しいwebサービスを作りたいなーって思ってそれをもうちょっと大人っぽく書き起こしたもの。
 
どんな機能をつけますか?とか
なぜ作るのですか?とか
どうやって作業は進めていくのですか?
 
といったサービスと作業の概要をまとめたもの。
だからここでは僕たちがwebサービスで学ぶプログラミングは登場しなく、紙の上でできる段階。
 
 
設計に関しても紙の上でできる。
どのAPI使うか決めたり、モックアップを作ってUI設計したり、データベースの設計をしたりする段階。
 
ここで重要なのがデータベース設計。
なぜなら僕たちが使っているwebサービスのほとんどがデータベースを持っているから。
なのでデータベース中心のDOA(Database oriented approach)という考え方が主流。
 
プログラミングを勉強したばかりだととりあえずプログラムしちゃってデータベースは後回しというようなPOA(process oriented approach)という取り組み方をするけど、こうしちゃうと後から結局データベースをもう一回考え直さなくなっちゃうから賢いとはいえない。
 
だからDOAで設計していく。
DOAの流れとしてはどういう情報がデータベースに入るか(情報=エンティティ)、を洗い出して、エンティティはどういう属性かを考えて、それらの情報を整理する(正規化)。ER図を用いてエンティティ同士の関係を可視化すると今後の作業もわかりやすくなっていい。
 
 
この要件定義、設計を考える段階が上流工程と呼ばれる。
 
 
ここからいよいよプログラミングをしていくことになる。プログラムも大事だけどそれ以上にどうやって作っていくかといった計画がとても大事。
 
プログラミング!自分でwebサービス作って世の中にインパクトを与えたい!って思っていても、最初の計画があいまいだったら形になる前に空中分解してしまうな。
 
計画性はやっぱり磨くべき。