ボクココ

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

Ruby on Rails

SaaS における企業毎のデータ管理について

ども、@kimihom です。 SaaS において悩ましいのが、企業毎のデータをどうやって管理していくかという話がある。企業毎にデータは完全に独立しているので、URL やデータそのものも独立している方が望ましいとされる。では SaaS においてデータベースの設計を…

Rails 5.1 アプリを Heroku にデプロイする

ども、@kimihom です。 この記事は Heroku Advent Calendar 8日目の記事です。まだ3枠空きがありますので、Heroku ユーザーの方はぜひご登録を! Rails 5.1 から Yarn のサポートが入り、フロントエンドの JavaScript ライブラリの管理が容易になった。そこ…

Rails 5.1 の First Impression

ども、@kimihom です。 この連休はひたすらプログラミングやってた。そんな中で手をつけ始めた Rails 5.1 について感想を書いてみるとする。こういうちょっとしたことでも記事にできるのがブログのいいところよね。 Yarn マジ便利 JavaScript の パッケージ…

Heroku Addon 「Scout」 の紹介

ども、@kimihom です。 Heroku Addon の1つである Scout はRuby on Rails 専用のメトリクスサービスだ。一般的にこの類の Addon だと NewRelic が一般的だけども、重いしメモリも食うので Scout を使っている。今回はそんな Scout について簡単にご紹介しよ…

Rails 5.1 のフロントエンド周りの所感

ども、@kimihom です。 常に話題に上がってくる Rails のフロントエンド事情だけども、今回 Rails5.1 を色々みた中で自分が感じたことについて書いていく。予め断っておくと、自分もまだそこまでフロントエンドをマスターしている身ではないので間違った考え…

Elasticsearch と Rails のデータ同期方法

ども、@kimihom です。 全文検索の仕組みとして Elasticsearch を使ってサービスを運用している。Elasticsearch と Rails を使っている上で考慮しなきゃいけないデータ同期の方法について、それぞれのメリット/デメリットを紹介した上で最終的な提案まで記す…

Heroku Pipeline にステージング環境を乗せてみた

ども、@kimihom です。 今回はステージング環境と本番環境で Heroku アプリを分けていたものを、 Heroku Pipeline でまとめたのでその手順についてご紹介する。 今まで Heroku Pipeline を勘違いしていたんだけど、ステージング環境の Heroku アプリは Herok…

Heroku x Rails のサービスを本番運用する際に確認したいこと

ども、@kimihom です。 私は Heroku に Rails サーバーを立ててサービスを運用している。これまでの経験を元に、定期的にチェックしておきたい指標とか項目をまとめてみる。今後のサービス開発などで参考になれば幸いだ。 サービス構成 現在の構成はというと…

ライブラリの利用を減らしていくことの重要性

ども、@kimihom です。 最近の運用フェーズでの開発で意識していることの一つ、「Gem ライブラリの利用を減らす」ことについて思うことを書く。 記事の内容は Ruby 周りに最適化されているけど、他の言語でも同様のことが言えると思うので適宜置き換えて読ん…

月額課金モデルの Web サービスの設計方法

ども、@kimihom です。 今回は月額課金モデルの Web サービスを実現したい企業向けに設計の参考になる情報を提供できればと思う。こういう情報は割と自分なりに設計して実装するっていうパターンが多いかと思うが、とても大事なことなので慎重に検討していこ…

Ruby のバージョンを上げてGuard が動かなくなった時の対応

ども、@kimihom です。 Ruby で開発しているのであれば常に新しいバージョンで開発を続けたいもの。その中で今回は guard が動かなくなったのでその対応メモ。 Ruby 2.3.3 guard 2.14.1 エラー内容 こんなエラーが出て開発できなかった。 $ bundle exec guar…

Rails の フロントエンド周りの未来予測

ども、@kimihom です。 Rails の Sprockets や Uglifier などが最新の JavaScript に追従していないという理由で、Rails 標準のやり方から外れて最新のフロントエンドツールを追い求める系の報告が多い。一部では完全に Rails の Asset Pipeline から外れて…

極める技術を絞るという勇気

ども、@kimihom です。 いつの時代も、新しいテクノロジーがどんどん出てくるものだ。「この技術は世界を変える!」だなんて言って、みんなが飛びついて徐々に一般化されていく。「とりあえずなんでも触ってみる」ってのはもちろん大事なことだ。それが自分…

Rails assets 内の JavaScript のメソッドを View 内から呼び出す方法

ども、@kimihom です。 Rails で開発していると、assets/javascripts 内で定義したメソッドを View 内に書かれた <script>タグから呼び出したい時がある。Rails は基本的に assets/javascript 内のコードを全てひとまとめにして一つのapplication.jsってのを作るから…

独学での Web プログラミング学習まとめ

ども、@kimihom です。 自分で何かサービスを出したいという方は多いかと思う。今回はそんな方へ最低限知らなければならないリストを上げようと思う。ターゲットとしては Web アプリケーションということにしたい。 UNIX コマンド 最初は黒い画面に慣れる必…

Heroku on Rails アプリのメモリ増加対策の方法

ども、@kimihom です。 今うちが運用しているサービスの Heroku メトリクスを眺めていたら、いつの間にかメモリが90%近くまで届く瞬間が来てしまって、いよいよこれは R14(Out of Memory) が発生してしまいそうな感じが出てきたのでいろいろ対策を練った。 …

Startup Rails で知っておいた方がいいかもしれない6つのこと

ども、@kimihom です。掲題のタイトルで以下のミートアップで発表した。 第一回スタートアップRails勉強会 - connpass 発表資料はこれ。 Startup Rails ってテーマなので、てっきり 0を1にする人たち向けかな、と思ったらそういう視点での発表は2つしかなく…

Rails の render で部分的に動的な HTML を生成する

ども、@kimihom です。 Rails で CSS フレームワークとかを使っていると、例えばモーダルウィンドウを出すためにヘッダやフッタで共通の HTML を使うことになるだろう。これらは大抵の場合、共通の UI となる。それでも当然、モーダル内の body の部分はそれ…

Increments ++ Tech Talk に参加してきた

ども、@kimihom です。 今日は今をときめく Tech 系スタートアップ Qiita さんにて開催されたIncrements ++ Tech Talkに参加した。個人的に最近 Rals 5 でアプリを作り始めていたのでちょうどいいタイミングでちょうどいいテーマだった。 connpass.com 個人…

Rails5 でフロントエンドを綺麗に扱う方法を考えてみた

ども、@kimihom です。 SMAP解散騒動が騒がれる中、新規プロジェクトとして Rails 5 のプロジェクトで色々と遊んでみている。その中でフロントエンドの部分の書き方で自分なりに答えを出しながらやっているので、そこの方法をシェアしようと思う。 JavaScrip…

Rails5 が示したサービス開発の新しい指針についての考察。

ども、@kimihom です。 Rails5.0 の正式版がついにリリースされた。 Riding Rails: Rails 5.0: Action Cable, API mode, and so much more Rails 5といえば、 ActionCable での WebSocket によるサーバープッシュのリアルタイム処理が注目されがちだが、個人…

Rails を学んだ後に学びたいオススメ技術

ども、@kimihom です。 たまには Rails 初心者向けのコンテンツでも書こうと思い立った。 Rails を本なりなんなりで勉強した後、どういった技術を学ぶべきなのか。私のオススメする順番でご紹介していこう。 対象者 主にWeb アプリを作りたいと思っている Ra…

JavaScript SPA 周りの議論で出た私なりの答え

ども、@kimihom です。 ここ最近、ずっと React.js か jQuery かみたいな話題が定期的に持ち上がってきている。事実、私も最近の JS ライブラリの人気に疑問を呈した人物の一人である。この記事を書いたのも1年前か。 なんだかんだで SPA から jQuery に戻っ…

とある Web エンジニアがいま興味のあるテクノロジーを挙げてみる

ども、@kimihom です。 テクノロジーってのは次から次へと出てくるもので、全部やることなんて到底できない。てことでその中から自分に何が必要かを常に見極めて学習を継続していく必要がある。 私は Web やスマホのアプリそのものを作るエンジニアだ。業界…

Rails で複数モデルに関連したパラメータを検証する方法

ども、@kimihom です。 今回は Ruby on Rails における パラメーターの処理について。 よくある Rails の Scaffold では、送られてくるパラメーターとモデルが 1対1 で対応しているため、 Strong Parameter を使って綺麗に CRUD(Create, Read, Update, Delet…

Elasticsearch Rails で 全文検索とサジェスト機能を実現

ども、@kimihom です。 前回の記事で、Elasticsearch Rails の導入周りの調査内容をレポートした。 今回は調査内容をもとに、Elasticsearch と Rails を組み合わせて実装したので実践編としてまとめてみる。 Elasticsearch と Rails 間のデータ同期に関して …

Elasticsearch Rails の調査レポート ~実運用へ向けて~

ども、@kimihom です。 今回は Ruby on Rails で Elasticsearch を使う方法について調査したので報告しよう。 特に ActiveRecord と Elasticsearch をどう連携させるのか、そこら辺を詳しく書こうと思う。 elasticsearch-rails の利用 さて、 Rails で Elasi…

Rails のコードをきれいに保つために気をつけたい、たった一つのこと

ども、@kimihom です。今回は Rails のお話。 割と初心者が Rails を使ってサービスを作ると、 Fat Controller (コントローラーにコードを大量に書く) ということをしがち。んじゃあ どうやったらそうならないように済むかを簡単に説明しようと思う。 Fat Co…

Google People API が出たらしいので使ってみた

ども、@kimihom です。 先日、Google People API がリリースというニュースが流れた。記事を読むと、どうやら従来の Contacts API をよりシンプルにしてくれたAPIだそうだ。てことで好奇心の赴くままに、この People API を触ってみたのでレポートする。 そ…

RailsのActionCable と同時に IP メッセージングも知るべき理由

ども、@kimihomです。 巷の Rails 界隈では 新しいバージョン 5 で登場した、ActionCable が話題になっている。いろいろな勉強会が開催され、Qiitaではこれから ActionCable を使ってみた 的なエントリーが大量に出現することだろう。 ActionCable を使えば…