コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

2023-01-01から1年間の記事一覧

Railsプロダクトを考古学するときに見ると良いポイントを雑に書き出す

最初から自分が関わっていないプロダクトコードを探索する記事を書いたのですが、そこからRails特有のTipsを書き留めておきます。 考古学するときに見るといいポイント routesを常に見れる状態にする Webサービスをやっているので、大概の要望は「◯◯というペ…

factory bot の trait内に引数のように値を渡したい場合はtransientを使う

N:Nの関連性のレコードをサッとつくるためのtraitを作りたい場合のtips 環境 Gemfile.lockは以下のような環境 factory_bot (6.4.4) activesupport (>= 5.0.0) factory_bot_rails (6.4.2) factory_bot (~> 6.4) railties (>= 5.0.0) 使い方 factory_botでは一…

リモートワークのMTG・ファシリテーションに悩んだときに読みたい『リモートワークにおけるファシリテーションの方法論』

書き留めたつもりが書き留めてなかったので改めて書き留めます。 資料スライド speakerdeck.com https://blog.copilot.jp/entry/remote-facilitation みどころ リモートワークでのミーティング・ファシリテーションのやり方に関して、具体的なノウハウに関し…

Rubyで例外のキャッチをワンライナーで書くこともできる

あんまり書く機会がないのでメモ 環境 ruby -v ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin22] 構文 公式ドキュメント曰く {{式1}} rescue {{式2}} の形式で書くことができ、以下と同義になる begin {{式1}} resuce {{式2}} end 公式ドキ…

競合があるWebサービスがあるときに振り返りたい資料『なぜレッドオーシャン化する前にサービスを グロースできなかったのか? - フリマアプリ編』

この資料が有用になるシーンは限られるのですが、学びが大変多いので振りかえることができるようにメモとして。 資料スライド 先日開催されたCTO Night & Day2023での登壇資料を公開しました。当日はフリマアプリ開発時の失敗と、そこから得た教訓を発表させ…

2023年11月時点でよく聞くPodcastをまとめる

Podcastのトレンドよく変わるので、現時点でランニングしながら聴くPodcastを書き留めておく fukabori.fm fukabori.fm iwashiさんが主催するPodcast、扱うネタは技術的なものから組織の話などバラエティ豊か。 最近100回を迎えて、とにかく主催のiwashiさん…

Slack用の「済」emojiアイコンを作った

印鑑スタンプ風にdone!って押すアイコンが欲しくて作りました 実際のemoji用アイコン 大きいバージョンはこちら This work is marked with CC0 1.0 参考サイト スタンプ風のかすれの作り方 スタンプをつくろう – かすれ編 -!Illustratorのアピアランスで印…

After Kaigi on Rails LT Nightで『無用な認知負荷を減らしてお手入れしやすいコードを書こう』という内容で登壇してきました

After Kaigi on Rails LT NightでLTしたのでその登壇後記です。 発表したスライド speakerdeck.com 伝えたかったこと 認知負荷という言葉が独り歩きしがちなので、基礎的な概念を抑えてほしかった その上で自分たちの身の回りの「課題外在性負荷」を探しても…

『Kaigi on Rails 2023』の二日目に行ってきたよメモ

『Kaigi on Rails 2023』の2日目に参加してきたので見たセッションメモ ちなみに1日目はこちら 各発表の感想 ※資料スライドは見つけたら貼ります。 Railsの型ファイル自動生成における課題と解決 speakerdeck.com 感想 Railsアプリケーションに段階的にRBSを…

『Kaigi on Rails 2023』の一日目に行ってきたよメモ

『Kaigi on Rails 2023』の1日目に参加してきたので発表見たよメモ 見た各発表の感想 ※資料スライドは見つけたら貼ります。 スケーラブルActive Jobs with Sidekiq Enterprise さきほどの Sidekiq に関するLTのスライド、こちらに掲載しましたhttps://t.co/7…

rbenvでのバージョンを決めるのは環境変数RBENV_VERSIONが最優先、次点が.ruby-version

表題の通り。ドキュメントにわかりやすく記載がないので、各記述をよりあつめた話をドキュメントをもとにまとめる。 調査したバージョン $ rbenv -v rbenv 1.2.0-59-g0704e65 rbenvが利用するRubyのバージョンを決めるのはどの情報をもって決めるのか まずは…

オンボーディングするとき/されるときにに毎度見返していきたい資料『サポートを明らかにすることを通して、助け合い上手なチームに爆速でなるぞ』

資料スライド speakerdeck.com みどころ 「助ける」ということと「助けてもらう」ということについてサポートというフレーズでよりよいサポートを行うためにはどうしたらいいかという話の資料。 何事においても助ける/助けてもらうということは行われるが、…

Railsで最上位までExceptionが抜けた場合にRails側でハンドリングしてくれるエラーを追加したい場合はconfigに設定を追記する

「ActiveRecord::RecordNotFoundをraiseしたときに404になるときに静的な404ページ出しているのでそれをそのまま真似て他のエラーでもキャッチしてくれないかな」という悩みを持つ人向け 検証したバージョン $ bin/rails -v Rails 7.0.6 前提としての動きの…

『DESIGNING CONNECTED CONTENT』を読み終わったよメモ

読んだ本 DESIGNING CONNECTED CONTENT | ボーンデジタル DESIGNING CONNECTED CONTENT作者:マイク・アザートン,キャリー・ヘイン,石橋秀仁ボーンデジタルAmazon 読むきっかけ 弁護士ドットコムさんが読書会をやっているということで気になり購入しました。 …

Railsのschema.rbを手動で更新するときは db:schema:dump で生成される

migrateして更新されずあれこれ探していたので備忘として 環境 $ bin/rails -v Rails 7.0.6 実行コマンド $ bin/rails db:schema:dump rakeとしてはこのあたりで、実装としては このあたり 動きとしての補足 通常、Railsガイドでも言及されている通りdb:migr…

制約理論を振り返るときに見たいスライド『制約理論(TOC)入門』

頭を整理したいときにスッと出せるように記録として 資料スライド speakerdeck.com みどころ かなり端的に制約理論がまとまっており、このスライドを順に追うことで理解ができます。また復習としても使えるもので、誰かにレクチャーする際の資料としても使い…

Railsのconfigのgemでは、環境ごとのymlに分けた値はdeep mergeされている

当たり前なんですけど、部分的に切り取ると違和感があるので言葉でまとめる 環境 config (4.2.1) gemそのもののリポジトリは以下 rubyconfig/config: Easiest way to add multi-environment yaml settings to Rails, Sinatra, Pandrino and other Ruby proje…

Mac上で録画した動画をDockerとffmpeg組み合わせてgifにする

GitHubのissueとかにサッと貼りたいけど、よくわからない画像編集ソフトはインストールしたくない人向けのコードスニペット。 利用したdockerの環境 $ docker -v Docker version 20.10.22, build 3a2c30b コマンドの基本と例 $ docker run --rm -v {{ホスト…

Railsでsymbol表記のhttp status codeを数値に変換するときにはRack::Utils.status_codeを使うと変換できる

Rails上で render status: :not_found とかやっているが、この :not_found と 404 はどこなのか、という小ネタ。 確認した環境 $ bin/rails -v Rails 7.0.6 Railsのステータスコードのシンボル 一覧はRailsガイドにある。 レイアウトとレンダリング-2.2.13.4…

Rubyのnilではto_*** で変換できるのをざっとまとめる

Railsでparamsの値を処理するときによく使われるので、どういうものがあるかを一覧で整理する 参考元 class NilClass (Ruby 3.2 リファレンスマニュアル) 一覧 メソッド名 変換されるクラス 変換後の値 to_i Integer 0 to_s String "" (空文字) to_a Array […

D-U-N-Sナンバーについてざっくりまとめる

法人でApple Developer Programに登録するときに必要らしいのでざっくり調べる D-U-N-Sナンバーとは D-U-N-SはData Universal Numbering Systemの頭文字を取ったもので、企業コードの管理システムのことを指し、D-U-N-Sナンバーはそのシステムから振り出され…

2023夏時点のGitHubとSlackを連携方法をざっくりまとめる

2023年夏時点での連携方法をまとめる 前提:GitHubアプリをSlackにインストールする 現時点だと簡単にAppを登録することができるので、Slack連携をする。イメージは以下。 Appの選択 なお、App連携はワークスペース全体に関係する部分なので、会社で管理して…

なりすましメールに関連する仕組み、SPF・DKIM・DMARCをざっくりまとめる

フレーズは聞くがどういうことかはわかっていないのでざっくりまとめる 前提としてメールがなりすませる仕組み Emailは実際のプロトコル上で取り扱われる宛先情報とメール本文に書かれる宛先情報があり、前者のプロトコル上で取り扱われる宛先を封筒に記載さ…

2023年7月時点のプライバシーサンドボックスを構成するAPIに関してざっくり調べる

名前は聞くがどういうものか把握していないので、ざっくりサマリとして理解する。 そもそもプライバシーサンドボックス(Privacy Sandbox)とは Googleが提唱する仕組みで、今現在Cookieを利用してトラッキングや個人情報が容易に取得できてしまう状況を改善…

Docker、Docker Composeのexecでroot実行したい場合はuserオプションを使う

「bash で rootログインしたい」などのときのための小ネタです。 環境情報 $ docker -v Docker version 20.10.22, build 3a2c30b 実現方法 -user オプションを使い、rootのUIDである0を指定して実行することでrootになる 具体例 以下はdocker-composeでappと…

Rubyのhashのメソッドmergeはキーがシンボルと文字列では別物として取り扱われるので気をつける

当たり前といえば当たり前の小ネタ 環境 $ rails -v Rails 7.0.6 $ ruby -v ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c5) [arm64-darwin22] そもそもmergeとは hashのmergeメソッドは2つのハッシュを1つにまとめ、同じキー名のものをマージする。例えば…

権威勾配(Authority Gradient) についてざっくりまとめる

使われ方が諸説あるっぽいので自分なりにまとめる 言葉の意味 ここで表される「権威」とは、肩書や社会的地位など他者がもつ社会的かつ主観的な影響力のようなものを指します。そして特定の二者間で起きる「権威」の差の緩急を角度でたとえて「権威勾配」と…

RailsでViewのErrorを減らす場合にはぼっち演算子を活用する

日頃のコードレビューの言語化です。 前提 Ruby on Railsのバージョンとしては6ぐらいを想定しています viewの記述にはerbを想定しております。 よくあるケース 例えば下記のようなテーブル構成をしているModelがあるとする create_table "users", force: :c…

Rails ConsoleにはSandboxというオプションがある

知らなかったので備忘まで。ただし万能ではないので用法用量を守って正しくお使いください。 環境 $ rails -v Rails 7.0.6 $ ruby -v ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c5) [arm64-darwin22] どういうものか Railsコンソールには --sandbox とい…

コミットメッセージのフォーマットの1つである「Conventional Commits」についてざっくりまとめる

知らなかったのでメモとして残しておきます。 取り扱うサイト Conventional Commits どういうものなのか commitメッセージに関して軽量かつ明快な内容を表現するためのガイドライン。 aboutページに記載があるが、Angularのガイドラインが着想のスタートとし…