ボクココ

サービス開発を成功させるまでの歩み

データベース

プログラマのための SQL を読んで

ども、@kimihom です。 今回は以下の本をざっと読んだので感想を書く。760ページにもなる超大型本だ。 プログラマのためのSQL 第4版作者: ジョー・セルコ,Joe Celko,ミック出版社/メーカー: 翔泳社発売日: 2013/05/24メディア: 大型本この商品を含むブログ (…

CRUD のその先へ。データ分析をはじめよう

ども、@kimihom です。 Rails を使って Web アプリケーションを作ってる分には、ActiveRecord をちゃんと理解すれば十分だ。そして複数テーブルにまたがった join や preload の方法などを理解することで、効果的なクエリの発行を学んでいくことだろう。以下…

PostgreSQL の JSONB 型の紹介とメリット

ども、@kimhom です。 今回は必要に駆られて PostgreSQL で新しく登場した JSONB 型について調べるきっかけがあったので、まとめてみる。 予め断っておくと JSONB 型はいわば PostgreSQL のリレーショナルデータベースからの脱却だ。これは一見魅力的に見え…

データベースの移設をやって感じた大事なこと

ども、@kimihom です。 今回は運用ネタ。API で使っていたデータベース (Compose MongoDB) の無料プランがなくなるという告知が終了の2週間前にメールで届くっていう事態になった。てことで慌てて他のデータベースを探し、移設することになった。もちろん、…

MongoDB のインデックス貼る時の注意

毎回つまずくのでメモ。。 Rails の Mongoid を使っている時は、rakeタスクでインデックスを貼る。 bundle exec rake db:mongoid:create_indexes さて、このインデックスを修正して、貼りなおしたいといったとき。もう一回上記コマンドを打っても変更が反映…

DB の state は State Machine で管理する

最近は毎日プログラミングの日々を過ごしている。 そんな中、とあるテーブル(ドキュメント)で状態を管理しなきゃいけない場面があった。 この問題の一つの手としてはstate をint で保存し、一つ一つの数字を何かしらの状態に紐づけるやり方だ。これを実践し…

ユーザ登録・API 認証の仕組みを Rails で実現する

スマホアプリから会員の新規登録、ログインが両方できるようにAPIを作成中。ようやく自前でアクセストークンを作ってOAuth認証が出来たのでまとめておく。 まず何がしたいか? スマホアプリでAPI認証ができるように、OAuthを自前で作成したい。 -> スマホア…

Hello! MongoDB レプリカセット!

いよいよ来ましたレプリケーション。本番環境のMongoDBでは障害に対応できるよう複数DBサーバ構成にする。これによりデータ損失やサービス停止を防ぐ。そして負荷分散にもつながるレプリケーションについて学んでいこう。 MongoDB では複数のMongoDBをまとめ…

MongoDB のスキーマデザイン

さて、今回はアプリを書くほうのエンジニアにとっては一番大事なスキーマ設計について学んだことをまとめていこう。ここはユーザが増えるにつれて全てのエンジニアが直面する部分なので、予めそれらを予見してスキーマを設計できるようになる必要がある。 正…

MongoDB の Index 入門その2

前回 基本的なIndexの貼り方を紹介したので、引き続きMongoDB関連のエントリー。 今回はドキュメント内に配列や Embed Documentがあった場合。 Embed Document ご存知の通り、MongoDBはドキュメント内にドキュメントをさらに書ける。 { "name" : "hoge", "lo…

MongoDB の Index 入門

最近はひたすらMongoDB について学習中。 日本語の書籍が全くないので、英語で。ちょいと時間がかかるが英語と一緒に勉強できるからいい感じだ。 さて、MongoDBの CRUD 系は割とどこの本でも同じようなことを書いてあるが、今回読んでる本はindex についてわ…

アプリエンジニアがインフラに挑戦その4

どーも。 ホストOS側のChef環境がそろったので、いよいよゲストOS(Virtual Machine) に Rails 環境をインストールしていきます。今回は一つのゲストOS にRailsとMongoDB, Nginx 全て入れていきます。 今回のChef Recipes は Github においてますので適宜参照…

アプリエンジニアがインフラに挑戦

どーも。 普段は Rails アプリをメインに、 AngularJS などのフロントエンドばかりやっている人間が、デプロイについて学んだのでまとめます。 対象読者: アプリしか書いたことなくて、本番公開などやったこと無い人。今までHerokuで本番公開してきたけど、…

本屋で感じた技術本のこと

久々に普通の本屋に行ってきた。 他の分野もざーっと見て、何か自分の興味のそそるものがないかを探りにね。 そこで感じたのが、自分の中で重要だと思っていた技術に関する本が全くなく、逆にそれ学ぶ必要あるか?みたいな本がすごいたくさん置かれていたと…

Rails x MongoDB x RSpec にしたときのScaffoldで作られるファイルたち

$ rails g scaffold article subject:string body:text invoke mongo_mapper create app/models/article.rb invoke rspec create spec/models/article_spec.rb invoke factory_girl create spec/factories/articles.rb route resources :articles invoke sca…

Rails x MongoDB x jQuery x CoffeeScript x RSpec x Autotest な環境構築

Railsといえばこのコンボではないだろうか?とはいえそれぞれ何ナノ?って方の為に簡単に解説。Ruby on Rails言わずと知れたWebアプリケーションフレームワークの一つ。Rubyの柔軟性を存分に活かしたその作りは開発者の無駄なコードを書く時間を最小限にとど…