カクカクしかじか

技術的なアレコレ

アンチパターン

Elasticsearchのngram_analyzerを使った際の検索メカニズムを理解出来てなかったのでハマった話

経緯 現在関わっているサービスでユーザーから「商品のキーワード検索で想定以上の件数がヒットしてしまうので調べて欲しい」という問い合わせがありました。 問い合わせがあった箇所の検索にはElasticsearchを使っていたので、ユーザーからヒアリングした検…

gem内部のクラス名とアプリケーション内のクラス名が衝突した際の名前付けの教訓

経緯 とある機能の改修で連携先のシステムが公式に提供しているgemを使わねばならず、そのgemを追加したところ変なところでテストが落ちるようになりました そのgemを追加したことが原因であることは明白だったのですが、どこが悪さをしているかの全くわから…

mongoidのModel.where(field: { '$exists' => true }はフィールドが存在したら無条件で値を取ってきてしまうのでnilチェックされないという落とし穴

前提 BlogモデルとUserモデルがある BlogはUserにbelogs_toの関係 Blogのデータに対してUserが存在するデータだけを検索したい場合 落とし穴 mongoidの Blog.where(user: { '$exists' => true } は フィールドが存在したら無条件で値を取ってきてしまうので…

Railsで作られるファイルのデフォルトコメントを何も考えずに削除する習慣はやめとけ!

今回の結論 Railsのgemに用意されたコマンドからジェネレートされるファイルのデフォルトで書かれている英文のコメントは何も考えずに削除しない方が幸せになれますよ!という話です。 もっと詳しく 例えば、RSpecの初期ファイルにはRSpecの仕様に関する重要…