Notionには、無料で使えるAPIがあります。 今回は、Notion APIのセットアップから、Rubyのfaraday gemを使ってリクエストを投げ、ページの本文やテーブルビューの一覧を取得するまで、を記事にしてみました。 使用したバージョン Ruby: 4.0.3 faraday: 2.14.…
先日、『Googleのソフトウェアエンジニアリング』を読みました。 www.oreilly.co.jp 各章ごとに、気になったトピックなど踏まえながらつらつら感想を書いていきます。 1章「ソフトウェアエンジニアリングとは何か」 「プログラミング」と「ソフトウェアエン…
問題の概要 先日、開発・検証環境でデプロイするたびにユーザーが強制的にログアウトする問題に当たりました。 関連して使っていたgemは以下です。 seed-do devise 原因を調査すると、以下のことがわかりました。 この現象が起きるユーザーはseedで作成した…
www.shoeisha.co.jp 先日、上記の本を読んだので読書メモを残します。 (知識のまとめに若干AIの力を借りています) 書籍の感想 「ドメイン駆動設計」というものについて言葉だけ知っているが意味はよく知らない、という状態だったので読んでみました。 「ボ…
年末年始に、そのボリュームの多さになかなか手がつけられていなかった『ソフトウェアアーキテクチャの基礎 -エンジニアリングに基づく体系的アプローチ』を読みましたので、自分なりのまとめと感想を記事にしました。 www.oreilly.co.jp どんな本? 現代の…
積読していた『リファクタリング 第2版』を読みました。 www.ohmsha.co.jp どんな本? リファクタリングとは、リファクタリングの意義を前半で解説した上で、後半(6章〜)はリファクタリングのサンプルカタログのようになっています。 私は、1-5章は丁寧に…
先日、CSVファイルを使ったデータの一括インポート機能を作成する機会がありました。 一連の実装を振り返ると、気にすることや決めるべきことが色々あるなーと思ったので、メモしておきます。 異常系への対応 ✅ ファイルの形式が間違っているケースの対応を…
先日、Railsのtransactionのrequires_newオプションを知りました。 techracho.bpsinc.jp tech.smarthr.jp 記事などを見れば理解できるのですが、(非推奨の):joinableと混同して「どっちだっけ?」となるので自分なりに表にまとめて整理しました。 まとめ N…
前回に引き続き、better_errors gemによって想定とは違う挙動をしていた体験をしたので、記事にしました。 ↓参考: 前回の記事 blog.m-ito27.com ↓better_errors github.com 背景: Rails7.1から例外のデフォルトログレベルがWARNになった 先日、とあるWebアプ…
better_errorsは、Railsのデフォルトエラーページよりもエラーを詳細に表示し、デバッグを助けてくれるgemです。 github.com READMEにある通り、基本的にはdevelopment環境での使用が想定されています。 しかしながら、今回、test環境で有効にしていたことに…
cr.hyuki.net 少し前に『暗号技術入門』(第1部、第2部)を読んだので読書メモを残しておきます。 第2章 シーザー暗号 文字ずらしで暗号化する方法 シーザー暗号をRubyで書くと、、を考えてみた。 自分で考えた方法(nextを使う) class String def encrypt_…
先日、自社システムで新しく外部APIの連携を行いました。 その過程で、外部APIを使うときに気をつけることがいくつかあるなーと思ったので記事にします。 1. 外部API側のエラーが起きる前提の実装をし、リカバリーの手段を用意しておくこと 外部APIは、いつ…
tatsu-zine.com 自分なりに整理したもの、理解しづらかったので追加で調べて理解したものなどメモです。 forkとCoW(Copy on Write) fork: とあるプロセスから子プロセスを作ること。親プロセスがメモリに持つ情報をすべて持つ。 コピーをするためのオーバ…
rails-settings-cached gemについて、設定の読み出し方、値の更新の仕方などが興味があったので読んでみました。 github.com なお、rails-settings-cachedのバージョンは2.9.4です。 簡単なgemの使い方 ユーザーが以下のように設定ファイルを書くとSetting.a…
はじめに bankenというgemを使って権限管理をしたことがあるのですが、どのように実現しているのか興味があったため、一番主要なauthorize!メソッドを読んでみました。 github.com bankenのバージョンは1.0.3です まとめ 全体的に非常にシンプルなコードで特…
RailsのActive Supportには便利なメソッドがたくさんあります。 ふと思いつきで、その便利メソッドを自分で実装して、Railsの実装と見比べたら何か気づきがありそうと思ってやってみました。 対象は、truncateメソッドです。(オプションはomissionだけ対応…
はじめに 先日、Railsガイドを読んでいたら、sandbox_by_defaultという設定がRails7.1から追加されたことを知りました。 本番環境での操作ミスを低減できるので良いなと感じ、早速業務で使っているアプリでもこの設定を有効にしました。 この設定ってどうい…
以前こんなブログを書きました。 blog.m-ito27.com 「勉強にはなった部分がたくさんあるが、意味が分からない点も多かったのでもう少し力をつけてまた読みたい」といったことを書きました。 ということで、約1年半経ったのでリベンジで読んでみました。 する…
paranoiaを使っているモデルでユニーク制約のバリデーションを設定すると、論理削除済みのレコードは制約の対象から外れます。(論理削除済みのアイテムとは重複が許される) その仕組みを理解するために少しgemのコードを読んで気づきがあったので記載しま…
雑記です。 最近、「やってしまったなー」という出来事がありました。 違和感に目を瞑ってしまった とあるPull Request(PR)について、「あれ?あの部分考慮されていないかも?」と違和感を感じたことがありました。 ですが、そのPRは既にマージされていて…
はじめに リリース時にのみmasterにpushすることがあるんですが、これをリリース時以外にやってしまうとrevert操作などが必要になって結構面倒なことになります。 そこで、git hooksのpre-pushフックを使って特定のブランチへのpushの際に確認メッセージを表…
ドキュメントを読み込むのは大事、ということでRailsガイドを頭から読んでいく取り組みをしています。 各章ごとに、(Railsガイドにちゃんと書いてあるのに)知らなかった機能を雑にまとめていきます。 今回は、Rails のスレッドとコード実行の章です。 rail…
ドキュメントを読み込むのは大事、ということでRailsガイドを頭から読んでいく取り組みをしています。 各章ごとに、(Railsガイドにちゃんと書いてあるのに)知らなかった機能を雑にまとめていきます。 今回は、Rails のキャッシュ機構の章です。 railsguide…
ドキュメントを読み込むのは大事、ということでRailsガイドを頭から読んでいく取り組みをしています。 各章ごとに、(Railsガイドにちゃんと書いてあるのに)知らなかった機能を雑にまとめていきます。 今回は、Rails の自動読み込みと再読み込みの章です。 …
ドキュメントを読み込むのは大事、ということでRailsガイドを頭から読んでいく取り組みをしています。 各章ごとに、(Railsガイドにちゃんと書いてあるのに)知らなかった機能を雑にまとめていきます。 今回は、アセットパイプラインの章です。 railsguides.…
ドキュメントを読み込むのは大事、ということでRailsガイドを頭から読んでいく取り組みをしています。 各章ごとに、(Railsガイドにちゃんと書いてあるのに)知らなかった機能を雑にまとめていきます。 今回は、Rails アプリケーションの設定項目の章です。 …
ドキュメントを読み込むのは大事、ということでRailsガイドを頭から読んでいく取り組みをしています。 各章ごとに、(Railsガイドにちゃんと書いてあるのに)知らなかった機能を雑にまとめていきます。 今回は、Rails アプリケーションのデバッグの章です。 …
ドキュメントを読み込むのは大事、ということでRailsガイドを頭から読んでいく取り組みをしています。 各章ごとに、(Railsガイドにちゃんと書いてあるのに)知らなかった機能を雑にまとめていきます。 今回は、Rails アプリケーションのエラー通知の章です…
ドキュメントを読み込むのは大事、ということでRailsガイドを頭から読んでいく取り組みをしています。 各章ごとに、(Railsガイドにちゃんと書いてあるのに)知らなかった機能を雑にまとめていきます。 今回は、Rails セキュリティガイドの章です。今回はセ…
先日子供が産まれたのですが、予防接種の問診票等で何週目か?や何ヶ月何日か?といった情報が頻繁に必要になります。 毎回計算するのが面倒だったのでLINEで毎日通知させることにしました。 定期実行はGitHub Actionsにやってもらうことにしました。 その方…