ナガモト の blog

Full Cycle Developerを目指すエンジニアが有用そうな技術記事や、ポエムのようなよしなしごとを投稿するブログです。

Ruby

Ruby on Rails でDB構造を扱うRidgepole gemにコントリビュートしました

業務でよくお世話になっているRidgepoleというgemにPRを出してマージされたので、その経緯を書き残しておきます。 コントリビュータの証 Distinguish same foreign key constraint on multiple columns by nagamoto · Pull Request #278 · winebarrel/ridgep…

Railsアプリのマスターデータ管理 Seed Fu ベタープラクティス

Railsアプリ開発におけるマスターデータの扱い方は大きく次の3つです。 標準機能のseedを利用する migrationを利用する その他 選択肢で言うとその他になりますが、私は複数の現場で導入してきたのSeed FuというGemをおすすめしています。この記事ではSeed F…

Railsアプリ開発におけるテスト戦略 〜オレオレベタープラクティス〜

いきなりですが、戦術・戦略という言葉を正しく理解していますか?大雑把でもいいのでどう違うのか、どちらがより抽象度が高く・具体性が低いのか理解しておきましょう。 ざっくり言うと、戦略は大局的な目的や方策のことであり、戦術は戦略を実現するための…

RSpecでテストを書くときの参考資料神7

RSpecをどう書くかは著名な方々が既に語り尽くしている印象です。そのため非常に参考となる7つの資料、通称神7*1の紹介をします。 私はこれまでレビュやエンジニアインターンに教える際に何度となく神7のお世話になりました。そん経験を踏まえてどの資料にど…

Rails Developers Meetup 2019 Day2 参加レポート

Rails Developers Meetup 2019 Day2の参加レポートです。 Day1の参加レポートはこちら。 ngmt83.hatenablog.com 投稿が遅れましたが、聴講したセッションの感想を軽く述べる程度のレポートです。資料は各URLの先にリンクがあるのでそちらを参照してください…

Rails Developers Meetup 2019 Day1 参加レポート

Rails Developers Meetup 2019が始まりました。楽しみすぎて事前にブログを投稿してしまっていた*1のですが、期待通りいや期待以上にいいカンファレンスだというのが正直な感想です。 2日間開催されますが、ボリュームが半端なく、2日終わってから参加レポー…

Rails Developers Meetup 2019が楽しみすぎる話

タイトルの通りです。楽しみすぎて深夜3時までこんな記事を書いてしまうくらいです。 railsdm.github.io ここがすごいよRails Developers Meetup 2019 国内最大のRailsのMeetupです。2日間3トラック並行での開催です。大規模で単純にすごいですね。儲かるわ…

最も汎用的なパターン「完全コンストラクタ(Complete Constructor)パターン」の紹介

好きなパターンはなんですか?と聞かれたら私が真っ先に答えるのは「完全コンストラクタ(Complete Constructor)パターン」です。汎用的かつ効果的なパターンなので、多くの人に知ってもらいたくて記事を書きました。 「完全コンストラクタ(Complete Construc…

Ruby on Railsで状態を扱うStatefulEnum gem

Railsでステータス管理したいなら https://t.co/uP5W7eFsU4 がシンプルで、コードも読める量でおすすめです #omotesandorb— 神速 (@sinsoku_listy) 2019年2月7日 StatefulEnumというgemを紹介されたので使ってみました。他のgemと比較して違いや使い心地も伝…

「Railsでモデルのステータスを扱うベタープラクティス」というLTしてきました

omotesandorb.connpass.com こちらでLTしてきました。資料は↓こちら↓ speakerdeck.com LTに至る経緯など書いていきたいと思います。 LTに至る経緯 非常に単純な理由です。ステータス管理で何度も困ってきたからです! また、ブログで取り上げていたものがLT…

Ruby on Railsで状態を扱うAASM gem

github.com 上記のAASMというgemを使用して状態遷移を扱う方法を紹介します。 gem導入 Gemfileに下記の通り記述し、 gem 'aasm' bundlerでインストールしましょう。 bundle install 使い方 例 下記のようなSNSのUserモデルを例に実装します。 リポジトリはこ…