ボクココ

個人開発に関するテックブログ

Ruby on Rails

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 を使えば…

Amazon API Gateway Importer を使って Rails x Grape から API を生成する

ども、@kimihom です。割とマニアックな記事。 以前書いた Grape Swagger で Amazon API Gateway 連携 の記事では、 grape-swagger から Amazon API Gateway に乗せるまでの手順を書いた。 しかし、このままだと 結局 Amazon API Gateway 側で Integration R…

Grape Swagger で Amazon API Gateway 連携

ども、 @kimihomです。 前回は、Grape on Rails での開発初めまでを紹介した。 API のお話もこれで最後。Grape Swagger で作った Swagger ドキュメントを Amazon API Gateway 上で動くように動作させる。 swagger.json の取得 まず、今回は作成した Swagger …

Grape on Rails で API 開発

ども、@kimihom です。2016年になりました。今年もよろしくお願いします。 前回は、API の周辺技術の選定と設計について書いた。 さて、昨年から書き続けている API 関連の話題だが、実際にコード書くところを細かく見ていきたいと思う。スタートさえうまく…

Rails における API 開発 (設計とGem選定編)

ども、@kimihom です。 すっかり年末感漂う感じになってきた。本ブログではそんなこと関係なく、引き続き API の話題。 前回のAPI 開発において認証以外で気をつけるべきこと で API 開発における検討事項を列挙した。その前の API 認証の設計も踏まえて、今…

普通のクラスをRailsのモデル化する

ども、@kimihomです。 Railsのコアを学習中。新しく知ったことをメモメモ。 Rails Pluginの作成 rails plugin new my_awesome_plugin create create README.rdoc create Rakefile create my_awesome_plugin.gemspec create MIT-LICENSE create .gitignore cr…

deviseのlockableを後で追加する方法

ども、@kimihomです。最近アップデートしたMacが文字を打っている途中から変換されるのが全く慣れません。 さて今回は Railsの認証ライブラリの定番、deviseについて。これを利用すると、Userモデルにあらゆる機能をプラグインっぽく追加することができる。 …

Heroku on Rails で asset_sync ではなく Cloudfront を利用する方法

ども、@kimohomです。 先日、以下のHeroku高速化において、asset_syncを利用する方法を紹介した。 Heroku x Rails 使うならオススメの環境構築方法 - ボクココ ただ、この方法は最近 Heroku 公式から使うのを止めるよう指示が出ている。 Please Do Not Use A…