Rails初心者でもできる1日で作るクソWebサービス

今日は1日でスピーディーにWebサービスを作る方法について紹介します。
本記事の対象読者は

- 時間も技術力もない
- デザインもできない
- が、とりあえず、何かWebサービス作りたい
- お金もできればあまりかけたくない
- フォームとか最低限の機能があって、見た目そこそこならそれでいい
- アクセスも作ってみなきゃわからんがな

といった方です。
とにかく、こういった状況でも、どうやってサービスを作るか書いていきます。

### インフラ整備

あなたは、とにかく時間もお金も技術力もあまりないので、chefなどのプロビジョニングツールは使わず、<b>サーバーに入って直接いろいろインストールしましょう</b>。

お金がないので、Herokuとかは使わず、<b>Sakuraのサーバーを借りましょう。</b>（1年契約とかなら、Sakuraの方が安い。）
（※もっと最安なものがあったら教えてください）
さくらサーバー：http://vps.sakura.ad.jp/specification/

クソサービスなので、スペックは最低で大丈夫です。

とりあえず、
- ruby
- nginx
など、最低限のものをyumとかでインストールすればいいです。
<b>SSLもお金がないので、Let's Encryptとか使って済ませましょう。</b>
Let's Encryptは簡単にできるので、こちらをご参照ください。
http://qiita.com/yamadagenki/items/111185931ef9a59eb054

ドメインは、お名前.comでlinkやsiteなどにすると、安く済みます。
お名前.com：http://xn--t8jx73hngb.com/)

とりあえず、<b>ランニングコストは年間で合計8000円以内</b>で済みます。
飲み会でいうと、2-3回分我慢すればいい話ですね。


### デザインなどの整備
あなたは時間も技術力もないのに加え、<b>デザイン能力もない</b>ので、デザインすることや、CSSを書くこと、javascriptを書くことも諦めましょう。
<b>この辺に凝りだすと、一気に時間を持っていかれます。</b>
素直に、<b>デザインをパクりましょう</b>。
お金もあまりだしたくないので、デザインは<b>商用可のフリーのテンプレート集</b>が大量にあるこの辺のものから拾ってきましょう。
商用利用無料！Bootstrap 3, Bootstrap 4をベースに最近のUIデザインのトレンドを取り入れた新作テーマのまとめ：http://coliss.com/articles/build-websites/.../best-templates-for-bootstrap-2015-autumn.html
Bootstrapで作るランディングページ・小規模サイトに、商用無料でバックリンク不要で利用できるテンプレート集 -Designstub：http://coliss.com/articles/build-websites/operation/work/bootstrap-templates-designstub.html


適当に、cssやjsをファイルにぶっこみましょう。
<b>基本的に、時間がない時は
- デザインしない
- CSS・JSは書かない
というポリシーが大事です。
</b>

大事なことなので繰り返しますが、
<b>デザインに凝りだすと一気に時間を持っていかれます。</b>

### 最低限のRails開発
今回作るのはクソサービスなので、開発は基本的にRuby on Railsで開発していきますが、scaffoldをうまく利用して、開発しましょう。
これでかなり開発を高速化できるはずです。
scaffoldを利用した開発(1):http://www.techscore.com/tech/Ruby/Rails/quick-start/Rails4/4-1/
scaffoldを利用した開発(2)：http://www.techscore.com/tech/Ruby/Rails/quick-start/Rails4/4-2/

これでめんどくさいフォーム処理を一気にやってくれます。
画像投稿とかは最低限できるようにする、ということを考えると以下のようなgemを付け加えれば十分です。
Rails 4.1 で CarrierWave を使う：http://qiita.com/akishin/items/46b2e239cf4190171da8
carrierwave：https://github.com/carrierwaveuploader/carrierwave

そんなに凝ったことをしようと思わないでください。
なぜなら、あなたには<b>時間も技術力もない</b>のに加え、今回作るのは<b>クソサービス</b>だからです。

もし、万が一ログイン機能とか複雑なことをしようと血迷った場合、<b>絶対にdeviseは使わない</b>ことをおすすめします。なぜなら、機能が豊富で複雑だからです。
<b>代わりに、sorceryを使いましょう。</b>こちらのほうが遥かに機能が小さく使いやすいからです。
railsのログイン認証でsorceryを使ってみた（設定編）：http://biboroku.megaya.net/entry/2015/01/06/012750
sorcery：https://github.com/NoamB/sorcery


繰り返しますが、<b>難しいことをやろうとは思わないでください。</b>

### わがままなあなたは
それでも、あなたはわがままなので、<b>パンクズやサイトマップ、メタタグ等の最低限のSEO対策</b>をしたいと考えるのはもちろんのこと、<b>あわよくば広告収入</b>がほしいと思ったりするでしょう。

そんな時下記のgemをうまく使ってください。
gretel：https://github.com/lassebunk/gretel
meta-tags：https://github.com/kpumuk/meta-tags
sitemap_generator：https://github.com/kjvarga/sitemap_generator

だいたいこの辺を入れれば、そこそこのSEO対策は出来るはずです。


広告は、Google Adsenseをクソサイトに突っ込むと怒られることもあるので、この辺のサービスを使いましょう。
アイモバイル(i-mobile)：http://www.i-mobile.co.jp/
ネンド(nend)：http://nend.net/
わりかし審査も簡単なので、お手軽です。

<b>さらに、一応は、分析とかもしたいのでGoogle Analyticsとかも突っ込みます。</b>
Google Analytics：https://www.google.com/intl/ja_jp/analytics/

やりかたは難しくないので、ググってください。
ここまでできれば、最低限のわがままはかなったと思います。

### 管理画面なんて作ってられるか
とにかく、時間がないので、使いやすい管理画面なんて作るのは諦めましょう。
とりあえず、下記のようなgemを使い、さくっと管理画面を作りましょう。
activeadmin：https://github.com/activeadmin/activeadmin

クソサービスなので、管理画面なんてあなたしか触らないので、管理画面への認証はBasic認証で良いでしょう。
テキトーにBasic認証をかけて終わりましょう。
ActiveAdmin with http authentication：http://www.railszilla.com/activeadmin-http-authentication/rails

### あとはデプロイするだけ
ここまでくればあとはデプロイするだけです。
サーバーのnginxの設定を見直して、
unicornとcapistranoの設定をして、デプロイするだけです。
Capistrano3でUnicorn+Nginxな環境にRailsをデプロイする:初心者向け：http://qiita.com/zaru/items/9e02706b27094ce36902

余力があるかたは、CircleCIを設定しましょう。
この辺の話です。
個人開発を支えるRailsにおけるCI環境：http://qiita.com/yamadagenki/items/f2f294aa3e4cb9c19c03

最低限、デプロイの設定だけでもしておくと改修からのデプロイが楽です。
おすすめします。


### まとめ
今回は、直ぐに簡単なWebサービスを開発する方法について書きました。
1日というのは実際にちょっと初心者にはきついかもですが、

- デザインしない
- CSS・JS書かない
- REST Full以外の動作をあまり考えない
- とにかくデプロイして動くところまでを早く

ということだけ考えて開発すれば、3日以内には動くサービスができると思います。
サービスはリリースしないと、始まらないし、個人開発なんてやる気があるうちにやらないと何も始まりません。
凝って凝って凝った挙句に結局お蔵入りした企画はありませんか？

<b>こだわるならとりあえずリリースしてから</b>ということを意識して開発すれば、アイディアは直ぐに形にできます。

最後まで読んでいただきありがとうございました。
これを参考にくだらない、クソサービス大量生産してください！