2016年3月23日水曜日

初めて一人でWebサービスを作った手順をまとめてみた(2)

自分でゼロから立ち上げたWebサービスの作り方を振り返る投稿の第二夜(公開は昼だけど)。
別に大したものを作ったわけでもないし、自慢したり、ましてや、これが最強のメソッドだ!(ドヤ!)とか言うつもりは一切なく、単に自分はこうやって作ったよ、ってレベルの情報共有記事なのでそのつもりで読んで頂ければ。

前回の記事はこちら。
初めて一人でWebサービスを作った手順をまとめてみた(1)

4. 開発で使う言語やフレームワークを決める


これは自分の場合は全然悩まず決まりました。言語はPython。フレームワークはBottle。どちらも慣れてて使いやすいから。JSのフレームワークはVue.js。世の中ではReact.jsがすごいもてはやされてたけど、個人的にはVue.jsのシンプルな作りが大好きなので譲る気は無かったし、今も後悔していない。ただ、開発に1年もかけてたせいでVue.js自体が1.xにメジャーバージョンアップしたのが心残り。あと、CSSのフレームワークにFoundationを使うことにしたんだけど、これも開発中にFoundation5から6になってた。浦島太郎状態になって何だか悲しかった。
こういうのはいろいろ気になってる新しいやつを片っ端から使いたくなるものだけれど、新しい技術は1つか2つにとどめとくのが良いと思う。理由は簡単で、ハマったときに作りきるのが難しくなるから。一人でやってると投げ出すのも簡単になって、投げ出したら当然のことながら完成しない。それだったら手慣れた技術である程度作れる状態で、技術的なチャレンジをちょこっと織り交ぜる程度が良いと個人的には思います。
ちなみにSeekGeeksに取り組む前、Redisとか未経験のテンプレートエンジンとかモリモリ使ってるオープンソースをいじってWebサービスを作ろうとしたことがあって、あっという間に挫折したことがあります。

5. 開発管理ツールを決める


これもそんなに悩まなかったような気がする。

  • ソースコード管理…Git
  • リモートリポジトリ…Bitbucket
  • ToDo管理…Trello
  • コミュニケーションツール…Slack
  • 開発環境…Vagrant
  • サーバープロビジョニング…Chef (knife-solo)
こんなところかな?
コミュニケーションツールがあるのは、最初はフリーのWebデザイナーの方にデザイン部分を協力して頂く予定だったから。
最終的には先方がご多忙のため一人で作りきったけど、序盤の情報共有にSlackを使って、TrelloとBitbucketを連動させたりしてました。
あと、今回こだわったのはデプロイ。git pushで本番サーバーにアップ!っていうのをどうしてもやりたかったので頑張ってみた。って言っても、ネットで情報あさってPHPを置いただけだけど。
動いたときはそれなりに感動した。今までFTPとかSFTPで手動で置いてたんだもの。。


6. とりあえず静的ページだけでひと通り作ってみる


スケッチの段階で画面イメージと画面遷移図まではできてたので、一旦Vue.jsとFoundationを使ってフロントエンド周りをざっくり作ってみた。本来サーバーから値を受け取る部分はVue.jsで固定値を返すようにした。それが済んだら、今度はAjaxでサーバーサイドと連携させたり、DBも使用したり。
ちなみにOSはCentOS6.5、DBはMySQL5.6、Pythonは2.7.11を使用。
ここも、本当ならもっと他の選択肢があったかもしれないけど、他のものに一気に手を出すとどこでどうハマるか見当もつかなくなるので、今回は慣れてるもので構築することにした。

ここまででだいたい半年くらいだった気がする。
途中、IPAでDBとかNWの試験とか受けてたから試験勉強が挟まったり(落ちたけど)、
静的ページまではすんなり出来て、何かこれイケるんじゃね?って思って油断したりで、ここから少し失速した。
それがいけなかった。

続く。