イナコーシステム新章としてモダンな技術のオンパレードを今までまったく触ったことない状態から一つのWebアプリを作るまでのレポート記事を作りたいと思います。このジャンルは開発ログ的な意味合いが強いので後々それぞれの技術の内容が理解できたら「技術情報」の方に情報を簡潔にまとめていきたいと思います。自作Webアプリのセクションは作る上でどういった課題があったとかそういう細部に渡った記事にしていく予定ですのでよろしくお願いします。
目次
チョイスした開発環境はなに?
- コード管理ツールとしてGitHubを運用する。
- 優秀な環境構築ツールであるDockerを導入する。
- サーバサイドはRuby on Railsを採用する。(Dockerを使ってインストールできる)
- DBはPostgreSQLを使う。
- フロントエンドはVue.jsを採用する。(Dockerを使ってインストールできる)
- デプロイ(作ったものを展開して全体に公開)するサーバはHeroku
GitHubを運用する。
まずこれからの活動をしていく上でGitHubの個人運用は必須なので使います。採用担当者に対してソースコードで対話していくためです。
そもそも実務未経験の技術を現場で使いたい場合は技術アピール方法として避けて通れない道でしょう。
Dockerを導入する
転職ドラフト参加ユーザで使用した技術として圧倒的に多かった。環境構築を楽にしてくれるコンテナツールなのでこの機会に導入しない手はない。
サーバサイドはRuby on Rails
これは直前までLaravel(PHPのフレームワーク)とどっちを使おうか迷いましたが実際問題、転職ドラフトでは圧倒的にRubyが多く、Laravelは海外ではRubyにとって代わられている途中の段階。おそらく5年後くらいには日本でもLaravelがRubyを上回る日も来るかもしれない。しかしRubyは日本で開発された言語。愛国心で日本でのRubyの息は長く続きそうな気がするw
将来的にLaravelにも手を出すかもしれないが、現状Rubyも普通に需要が高い傾向にあるのでとりあえず採用。
DBはPostgreSQL
RubyのデフォルトDBはSQLiteらしいのですが業務ではSQLiteは使わない。MySQLにしなかった理由は私の過去実務経験ではPostgreSQLの方が多いため、更に盤石のものにしたい。WordPressはMySQLですけどね。
フロントエンドはVue.js
こちらもモダンな技術では React / Vue / Angular の中で選択になるのですが、解説を見た所、VueはHTML/CSS/JavaScriptベースで書けるフレームワークなのでJavaScriptも一緒に勉強するならこっちかなと選択した。現場でスキル持っていると強いTypeScriptとの合わせ技もできるみたいですし。
後は最近になってVue.jsを採用する企業が増えているのも理由となります。Angularは転職ドラフトを見る限り、あまり多くなかった気がする。。。あと、フリーランス案件の条件スキルもReact かVueならどちらでもよい。といった感じだったがAngularは入ってなかったです。
デプロイするサーバはHeroku
この理由はシンプルで個人で利用する分には無料だから。です。
クラウドサーバなら過去記事【サーバ】イナコーシステムが選ぶレンタルサーバーでも紹介したPaizaCloudでも行けますが常時公開となると月額1,980円もかかってしまいます。
かといってAWS等のクラウドインフラを個人で契約するには無料期間もあるとはいえ、敷居が高い。なので基本的なアプリ公開する場はHerokuでいいと思いますね。
定番の組み合わせ?
これらの技術で検索すると結構、まったく同じ環境でインストールしたという記事が多かったです。やはり他にもモダンな技術を組み合わせた環境で開発やる人は多いという事ですね。
こちらとしてはたくさんの情報が仕入れられるのでありがたいです。ただWordPressもそうですが、公開された記事が古いせいでバージョンアップしたものには対応してない・・・という罠も実際経験しているので全てを鵜呑みにはできないですが。
とはいえ、XAMLのxceedのDataGridとかETLツールとか技術情報がWebにまったく上がってこないものよりは全然いいと思います。
GitとGitHubを使えるようにしよう
こちらもモダンなバージョン管理ツールなので導入解説サイトはいっぱいあります。私は以下のサイトを参照しました。
今日からはじめるGitHub 〜 初心者がGitをインストールして、プルリクできるようになるまでを解説
これを参照したら確かに最後まで行けたのですが詰まった所もありました。以下の二つです。
”生成された秘密鍵のパーミッションを600
に変更します。”
$ chmod 600 ~/.ssh/id_rsa_github -rw-------
変えたけど変わっていませんでしたね。まぁ動いたのでいいのですが問題はその次ですね。
git cloneでパーミッションエラー
$ git clone git@github.com:usrname/test.git Cloning into 'test'… git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.
ちゃんと秘密鍵との整合が合ってないっぽいエラー。これも同様のエラーを検索したら同じように詰まっている人がいましたが、私の場合
- Keyを作った場所が最初.sshだったが作業フォルダを.sshフォルダ以外でやろうとして上記エラーが出たから場所を.sshフォルダにもどした。
- どうも鍵を作る時にデフォルトのid_rsaの名前を変えた場合はssh-addをやらないといけないっぽい
$ ssh-add id_rsa_github
Could not open a connection to your authentication agent.
それで解決しました。元々SVNは使ってましたが以下が感想です。慣れれば使いやすそう。
- コミット時に責任者がコードをチェックしてから確定できるのは良い。SVNだとコミット時に監修は入れられない。
- ローカルフォルダへの反映方法コマンドを使わなきゃいけない所が慣れるまでは面倒。SVNはsvn updateだけなので感覚的に使える。
まぁソース管理は何回も使っていくので絶対慣れていくと思うのでいいんじゃないでしょうか?SVNもある程度は聞かないとよくわからない機能多いし・・・
まとめ
今日は環境を決めて、GitHubを使えるようになるまでをやりました。次回はDockerを入れて環境諸々をインストールする所までやれたらいいなぁと思います。