kamiのサービス制作ログスマートフォン用の表示で見るkamiのサービス制作ログひとりでサービスを制作している人の作業ログ的なブログこの広告は、90日以上更新していないブログに表示しています。log」をリリースしました。夜寝る前などに、1日のよかったことを書くことで、すこしだけ前向きになれるサービスです。よかったことだけを書きのこすミニブログサービスPC/スマートフォンで利用することができます。よかったら使ってみてください。logの制作について書いてみます。つくった一時期、モチベーションがまったく上がらない時期がありました。調べてみると、「夜寝る前によかったことだけを書くことで前向きになり、モチベーションが上がる」ことが分かりました。ノートなどに書いても長続きするとは思えませんでした。誰かに見てもらえるサービスにしよう、ということで制作しました。logで使用している技術は以下のとおりです。SoloDocker+Serverspec学んだことDevise+OmniAuth有名すぎて特に書くことのない組み合わせですが、今回OmniAuthを初めて使いました。logではメールアドレス、Facebook、Twitterの3つの認証方法を実装しました。ハマったのは、Facebookのアプリ登録でした。開発環境ローカルのディレクトリ構成は以下のような感じです。Railsアプリケーション開発用Vagrantfile/iinelog/.gitignoreには/appと/infraを登録しています。リポジトリは以下の3つで管理しています。/iinelog/infra/appとVagrant内の/synced_folderをNFSで同期させています。Gitの操作はホスト側から、railsコマンドなどはゲスト側から操作しています。:chef_soloで再利用しています。インフラCI開発方針としては、「Cookbookは変わるがServerspecは変わらない」で、積極的に外部のCookbookを利用しつつ、Serverspecでのテストをしっかり書いています。これによりインフラの開発コストを下げることができます。インフラは上記/infraで開発しています。Chefレシピを実装し、インフラ開発用Vagrantfileに適用、これをServerspecでテストします。テストがパスしたらBitbucketにプッシュします。するとCIサーバ(Jenkins)で勝手に「Dockerを起動→Chefレシピを適用→Serverspecでテスト」を行ないます。テストをパスした場合のみ本番環境に手動トリガーでインフラデプロイできるよう、ビルドパイプラインを構築しています。導入は大変でしたが、一度やるとインフラ開発がものすごく加速します。E2EテストE2Eテストは今までCapybaraだけで書いていましたが、今回Turnipを採用しました。features/stepsの管理しやすい構成を考えるのに時間がかかりましたが、今はCapybara単体よりシンプルに書けています。環境変数管理Railsアプリケーションのdatabase.ymlやsecrets.ymlの環境変数の管理についてです。私は本番環境用の設定のみENV['HOGE']のように環境変数から読むようにして、ファイル自体はリポジトリにコミットしています。Soloを用いています。dotenvを暗号化して管理しています。暗号化用の鍵をリポジトリにコミットしないよう注意が必要です。Chromeには、標準でiPhoneをエミュレーションできる機能があることを知りました。フロント実装の際、これがものすごく便利でした。ガラケーもできたら最高なんですが......。当時は無職だったので、2週間くらいでリリースする計画でした。7月末に都内のスタートアップにリモートで週3でコミットし始めたため、リリースが遅れてしまいました。11月から東京にてフルタイムでコミットすることになったため、サービスをつくるスピードはもっと遅くなると思いますが、引き続きつくっていきたいと思います。今度はRailsをAPIサーバにしたSPAかスマホアプリ、課金機能実装、SwiftでのiPhoneアプリなどをつくってみたいです。ツイートはてなブログをはじめよう!kami30kさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。