ここ1ヶ月ほどWebアプリケーション開発の環境構築から最終デプロイまでどうしたらいいか色々と検討を重ねてきました。その結果、最終的に私が選んだものをその理由とともにまとめてみます。
前提
まず、前提として「カンタンPro」というこのサイトで配布しているFileMakerProのカスタムAPPをWebアプリケーションとして開発することが目的です。
その目的を達成するためならプログラミング言語は何でもよく、できるだけ最短でかつ高品質なアプリケーションを開発したい、ということです。
いずれにしても、私自身プログラミングはほとんど素人ですので、何を選択するにしろ一から学習しますので。
プログラミング言語はPHP
当初は、WordPressのプラグインとしてリリースする予定だったのでPHPを選びました。PHPは利用者も多く参考書も豊富で学習コストも低いので。
WordPressをやめた理由
WordPressはCMSですが、プラグインを追加することで様々な機能を実現することが出来いる可能性を秘めています。セキュリ−ティやログイン機能を自前で実装する必要がなく本体のWordPressに依存する形で実現できるので開発が楽かなと考えました。
しかし、ある程度触っているとわかるのですが、やはりブログを前提としているCMSであるため、高度にカスタマイズされたWebアプリケーション開発には不向きだと感じました。
それにライセンスがGPLなので私のケースには向きません。
フレームワークはLaravel
自由度は高いけれどすべての機能を自前で作るのは大変です。それを劇的に助けてくれるのがフレームワークです。
Laravelは今もっとも人気のあるPHPのフレームワークです。MVCという枠組みで整理されたアプリケーション開発ができます。PHPの基本をある程度理解しているならLaravelで開発するほうがPHPだけで開発するよりも簡単でより高品質なアプリケーション開発ができます。
エディターと開発環境
当初はAmazonが提供するAWS Cloud9(IDE)を利用しようと考えましたが、エディター機能がイマイチでコード補完などもありません。ただ、クラウドなのでブラウザさえあれば端末を選ばずどこからでも開発できるというメリットはあります。
エディターはVisual Studio Code(VScode)
しかし、やはりプログラミングにはエディターの性能は非常に重要です。Atomも試しましたが動作が重く私の環境では使えませんでした。
VScodeはAtomをベースにMicrosoft社が開発している高機能なエディターで、Extensionを追加することで使いやすくカスタマイズできます。
ローカルサーバーはVirtualBox+Homestead+Vagrant
XAMPPでも良いと思いますが、私の場合XAMPPではうまく行かず、結局VirtualBoxでうまくいきました。HomesteadはLaravelに最適化されたBoxを作るための設定群です。Vagrant(ベイグラント)はコマンドラインからVirtualBoxを操作できるものです。
バージョン管理はGitHub
GitHubはとても便利で、アプリケーション開発には必須のサービスです。コードの管理ができるし、後述するHerokuやAWSとも連携できます。
リモートサーバーはHeroku
当初はAWS EC2で考えていましたが、HerokuはPaaS(必要な機能がすでに用意されたアプリケーションプラットフォーム)であり、Webアプリケーションを駆動させるには簡単かつ十分であることを知りました。Webアプリケーションに必要な機能が豊富に用意されていて簡単に組み込めます。しかも基本は無料です。
ローカル環境でVScodeでコーデング〜デバックしてOKなコードをGithubにプッシュしてそのままHerokuでデプロイして公開すると言う流れです。
最終的に出来上がったWebアプリケーションを独自ドメインで公開することもできます。
まとめのまとめ
他にも色々な方法があると思いますが、とりあえず私はこのような環境でスタートします。というわけで、これからお楽しみのプログラミングはじめます。
[temp id=3]