Rails Webook

自社のECを開発している会社で働いています。Rails情報やサービスを成長させる方法を書いていきます

RailsでElasticsearch: ページネーションと1ページの表示件数を実装

f:id:nipe880324:20151017170217p:plain:w420

前回の記事で、「RailsでElasticsearchを使って簡単な全文検索」を実装しました。
今回は、「ページネーション・1ページあたりの表示件数」について実装していきます。
ページネーションの実装は、Railsのページネーションを実装する有名なgemのkaminariを使って実装します。

続きを読む

RailsでElasticsearch: 全文検索を実装

f:id:nipe880324:20151017170217p:plain:w420
RailsでElasticsearchを使ってレストラン検索アプリを作成、店名、住所、カテゴリなどからレストランを全文検索できるようにします。また、フィルタ(filter)も使って検索条件を指定することで、閉店している店舗も含めて検索できるようにします。

今後、Elasticsearchのページネーション・ページあたりの表示件数、ソート、ファセット・post_filter、ハイライト、サジェスト機能などをより実践的な機能を実装していきます。

続きを読む

Phoenix入門3 - WebSocketのチャット機能

f:id:nipe880324:20151011193641p:plain:w420

前々回の記事は「Phoenix環境のセットアップから、静的ページを作成し、表示」させました。
前回の記事では、「Phoenixで認証機能を実装」しました。
今回の記事では、入門最後として「Phoenixでチャット機能を実装」します。
Phoenixでソケット、チャネル、トークン、API作成、モデルのアソシエーションなどを行っていきます。

続きを読む

Phoenix入門2 - Phonixで認証機能

f:id:nipe880324:20151011193641p:plain:w420

前回の記事は「Phonix環境のセットアップから、静的ページを作成し、表示」させました。
今回の記事では、「Phoneixで認証機能を実装」します。
それを通して、マイグレーション、モデル、外部ライブラリ利用などのWebアプリケーションを作るための基本的な箇所を説明します。
次回は「チャット機能を実装」します。

続きを読む

Phoenix入門1 - Hello Phoenix

f:id:nipe880324:20151011193641p:plain:w420


Phoneixとは、elixer(※1)という言語で書かれたWebフレームワークです。
最近のiOSAndroidアプリやSPI(シングルページアプリケーショん)が普及してきたため、サーバーサイドはAPIやリアルタイムストリーミングの機能を提供することが増えてきました。
Phonixは一般的なWebのMVCに加え、デフォルトでAPIやソケットによるリアルタイムストリーミング機能を提供していて、このようなニーズに対応しやすくなっています。

レイテンシーがとても低く、Phoenixのレスポンスタイムはミリセカンドの代わりにマイクロセカンドで表示されるぐらい早さが段違いと言われています。
また、Railsのコントリビュータが作っているだけありかなりRailsの仕組みに似ているので、RailsなどのMVCフレームワークに触れている方には、かなり理解しやすいと思います。
若干、elixirの独特な文法があるため、必要に応じてElixir 基礎文法最速マスターelixier - 公式を参考にしてください。

続きを読む

リファクタリング: デメテルの法則(Law of Demeter, LoD)

f:id:nipe880324:20150922205235j:plain:w320
Photo by Wonderlane | Flickr - Photo Sharing!

デメテルの法則について勉強したのでまとめてみました。間違っているかもしれませんのでコメントいただけると助かります。

続きを読む

Rubyテクニック: Rubyの通常の引数とキーワード引数の違い

f:id:nipe880324:20150921215037p:plain:w240

Ruby2.0からキーワード引数が導入され、Ruby2.1からRequiredキーワード引数が導入されました。

Rubyの通常の引数とキーワード引数のメリット、デメリット、どういうときにキーワード引数を使ったほうが良さそうかということをまとめました。

キーワード引数の通常の引数に比べたメリット

Rubyの通常の引数に比べ、キーワード引数には次のようなメリットがあります。

1. 引数の意味がわかりやすくなる
2. 引数の順番を気にしなくてもよくなる

それぞれソースコードを交えながら説明します。

続きを読む