コード日進月歩

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

GoogleTagManager(GTM)を介してGoogleAnalytics(GA)のイベントを直接記述するときは気をつける

GTMを使いながら、GTMを利用せずイベント発火をさせずに手動でGAのイベントを発火させようとするとおかしなことになるので気をつける。 TL;DR GoogleAnalyticsのタグをGTMでセットし、純粋に ga('send') でイベントを送ろうとしてもうまく行かない場合がある…

ActiveRecord::Type::Boolean.new.cast はかなり揺らいだ変換になるので気をつける

昔のPHPを彷彿とさせる変換だったので書き留める 環境 $ bin/rails --version Rails 6.0.3.6 どういうことか ActiveRecord::Type::Boolean.new.cast は引数をtrueあるいはfalseに変換してくれるのだが、変換の基準は以下のものに引っかかるものがfalseになる…

Rubyの生成されたインスタンスのクラスを調べるときはinstance_of?とkind_of?(is_a?)を使い分ける

エイリアスかと思ったら違うのでちゃんと記述する 環境 $ ruby -v ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-darwin19] 概要 生成されたインスタンスのクラスを調べたいときは instance_of? を使う。継承元のクラスも含めて調べたいときは ki…

ActiveSupportにはモジュール名の一部やクラス名の部分だけを取り出すためのメソッドがある

モジュールの部分はいらないんだけどな…というときに文字列処理をしなくても用意してくれている。 環境 $ bin/rails -v Rails 6.0.3.1 利用例 今回サンプルとして扱うのは以下のようなクラス module Hoge module Piyo class Test def initialize(test: nil) …

テストダブルの種類をざっくりまとめる

自身の記憶整理の文脈でまとめる 出典 テストダブルについては書籍 xUnit Test Patterns にて取り上げられたテストに依存するコンポーネントを置き換えるためのパターンのこと。 Test Double at XUnitPatterns.com なおダブルは2倍のほうの意味ではなく、「…

CSSのロードが遅くてHTMLがちらつくFOUC(Flash of unstyled content)についてざっくりまとめる

日本語情報が無いのでざっくり書いてみる 出典元 Flash of unstyled content - Wikipedia 上記のWikipedia曰く CSS @importルールを使用している一部のページでは、MS Internet ExplorerのWindows版で、スタイル化されていないページのコンテンツが一瞬フラ…

伏せ字表現にはxxxではなく、アスタリスク(*)を使うとよさそう

xxxはスラングとしての意味合いが強いので他の用語を使おうという話 今回考えるケース 個人情報保護の観点で文字列を書き換える場合の話 例えば suzuki.hideo@example.com のようなメアドは個人情報になってしまうので、差し障りのないデータとして扱うとき…

GoogleのSEOを鑑みたときにJavaScriptをどう使うべきかはガイドラインがある

SEO

SEOとか考えるとレンダリングちゃんとやらないと不利じゃないですか…みたいな話に対して、現状どうなっているのか調べてみた 出典 明確にGoogleがドキュメントを用意してくれている JavaScript SEO の基本を理解する | Google 検索セントラル | Google Devel…

劇場版SHIROBAKOの瀬川さんから正論を言ってしまう人との付き合いかたを考える

この記事は SHIROBAKO Advent Calendar 2020 20日目の記事です。 (リアルタイム更新失敗したのでクリスマスまでにかきあげました。。大変失礼しました。。) adventar.org 2018年に関しては高梨太郎のダメっぷり反面教師の話をしましたが、今回は劇場版の瀬…

Rails6かつMySQLを使う場合に任意の順番でレコードを取得する

いろんなことの合せ技のためご利用は計画的に、という感じであるが知見まで。 環境 $ bin/rails -v Rails 6.0.3.1 今回の想定ケース 例えばUserクラスがあり、Viewにはidが2,3,1の順で並べたいのでActiveRecordの取得自体も2,3,1の順番で取得したい場合。 Us…

Railsのbefore_actionで通常のインスタンス変数をセットするのは、本当にそれが最適解か考えてからやってほしい

before_actionでインスタンス変数を設定するとミスリードが多くなりがちなのでそれに対する話。 (記事製作時)の環境 # bin/rails -v Rails 6.0.3.1 (前提として)before_actionとは ActionControllerが提供するフィルタの機能の一種。 before_action は ind…

早期returnにおける使い方のパターン(防御的プログラミング、あるいは分岐処理)をざっくりまとめる

自身の書き方を言語化するシリーズ この文章内での早期returnとは メソッドなどで処理の終端に到達する前に return をして戻り値を先行して返すこと。 早期returnを利用できるパターン 早期returnが有用なケースをパターン分けすると以下の2つになると考えて…

変数代入を複数回行うと何が良くないのか、どうするといいのか

変数の代入を複数回行う、すなわち変数の再代入をすることは何が辛いか、また変数の代入を1回にすると何が嬉しいかを書く。 今回の題材 例えばRubyで以下のようなメソッドがあるとする def make_aisatsu_text(people_name: "Suzuki", is_san: false) text = …

X-UA-Compatible メタタグの意味と使い方に関して調べる

今や不要と言われているので調べる 出典 Internet Explorerにはドキュメントモードというものが存在し、下位バージョンのIEと同等の動きをさせるために指定することができた。 Internet Explorer ドキュメントモードに関する FAQ - Browsers | Microsoft Doc…

Rails6において、rails newしたあとに標準機能を間引いていくときにみるべきところ

個別に実装を剥がして行く場合のアプローチ 環境 # bin/rails -v Rails 6.0.3.1 今回想定するシチュエーション rails new したときにオプションで間引きたかったが間引き忘れたときにどうやって対応をしていくべきかというアプローチ 見るべきところ config/…

HTMLのaタグで別ウィンドウまたは別タブを開くtarget=“_blank”の記述をする際は合わせてrelの記述も確認する

いろいろなところで語られているのでまとめる 問題となるポイント 昔から別ウィンドウや別タブを開くときに書くHTMLは以下の通り <a href="https://example.com" target="_blank">ここを押すと新しいウィンドウが開きます</a> この target="_blank" だが、開かれたページ(上記で言うところの https://example.c…

Railsのfind***by系のメソッドを軽くまとめる

以下のツイートが気になったの調べた。 「create_or_find_by のコメントを読もう」で済む世界は最高— Takafumi ONAKA (@onk) 2020年10月27日 環境 $ bin/rails -v Rails 6.0.3.1 一覧 メソッド名 説明 find_or_create_by 対象を検索して、ない場合はCREATE(I…

『銀座Rails #26』をみたよメモ

【オンライン開催】銀座Rails#26@リンクアンドモチベーション - connpass をZoomで視聴したのでそのメモ 各発表の感想 ※資料スライドは見つけたら貼ります。 大量データでもサクサク動くRailsになるために スライドはなさそうなので、発表のメモだけ 発表メ…

混乱した代理(使節)問題をざっくりまとめる

普通に日本語情報がないし、大体AWSの話になるので噛み砕いて書く。 元ネタ 1988年の論文 The Confused Deputy: (or why capabilities might have been invented) より 考え方 登場人物は大きく3人 クライアント 代理(Deputy/使節)サービス 機能提供者 クラ…

リチャードソン成熟度モデルに関してざっくり調べる

書籍マイクロサービスアーキテクチャに出てくるワード。 出典 ベースの出典は以下 JWTUMOIM: Act 3 マーティンファウラー氏のブログにまとめ記事がある。 Richardson Maturity Model どういうものか WebAPIに関してRESTfulな形になっているかの判断を行うた…

『Kaigi on Rails』をみたよメモ

Kaigi on Rails はリモート開催でしたので、それの見ましたよメモです。 各発表の感想 ※資料スライドは見つけたら貼ります。 Viewがレンダリングされるまでの技術とその理解 動画をどうぞ 初日となる本日の動画は、Aaron Patterson(@tenderlove)さんの「View…

Railsの raw は <%== と同じ

小ネタ そもそもrawとは 通常、erbにて変数出力をするときは以下のような構文を用いる <%= @hoge_var %> この @hoge_var にHTMLが含まれる場合はRails側でよしなにエスケープ処理がかかり、文字列として表現されるようになる。 ただし、ただのまま変数の文字…

インプットとアウトプットのバランスを鑑みた運用変更

雑記です。 近況 ほぼ毎日ペースで更新をしてきたのですが、最近のワタシの状況としては 基本的に案件マネジメントと内部調整がメインでインプットする事柄がない 現職が長くなってきたので、古参ならではの取り回しが増加 業務ドメインに向き合ったり、チー…

スイスチーズモデルに関してざっくりまとめる

いろんな文脈で出てくるのでざっくり 意味 スイスチーズの内部に多数の穴が空いているが、穴の空き方が異なる薄切りにしたスイスチーズを何枚も重ねると、貫通する可能性は低くなる。同様に、リスク管理においても、視点の異なる防護策を何重にも組み合わせ…

テレコとはどういう意味かまとめる

作業会話で使われるのでざっくり書き留める 意味 交互、互い違い、逆、あべこべなどの意。 - テレコ - Wikipedia もともとは歌舞伎の用語から。 使われる場面 「テレコになる」という現象だがあべこべになっているという状況。 『2重ループの外と中の処理を…

パスワードスプレーに関してざっくりまとめる

トレンドの用語をざっくりまとめる 言葉の意味 同じパスワードを用いて、複数のアカウントへのログインを実行して侵入を試みる方法 どのような考え方なのか 特定の一つのアカウントに対して侵入するのではなく、どのアカウントでもいいから、侵入したい場合…

CNAMEトラッキングとは何かざっくりまとめる

どのようなことを行うのかというのと理由をざっくり そもそもどういう場面で使われるのか 広告媒体においては、どのユーザーがどのサイトを閲覧したか?という情報は非常に有用で、行動したデータを蓄積することでそのデータからユーザーの興味がありそうな…

GitHubのMarkdown上でアコーディオンっぽい挙動をさせたい場合は details / summary のHTMLタグを使うことで実現できる

GitHub小ネタ 利用するHTMLタグ < details >: 詳細折りたたみ要素 - HTML: HyperText Markup Language | MDN 使い方 通常のHTMLと同じ使い方をする 例 以下のように折りたたみUIが作れる。HTMLで囲んだ中身は自動的にマークアップはしてくれなくなるので注意…

BigQueryを無料で試したい場合はサンドボックスというものが存在するので活用する

仕事ではなく私事で試したい人への小ネタ 出典 クレジットカードは不要 : クエリを無料で試せる BigQuery サンドボックス | Google Cloud Blog やり方 ヘルプに書いてある BigQuery サンドボックスの使用 | Google Cloud いままでGCPを扱っていないアカウン…

GitHubでのPullRequestでマージしたブランチ名から該当PRを検索する方法

小ネタTips 出典元 Issue およびプルリクエストを検索する - GitHub Docs 今回の想定場面 マージするときに使ったブランチ名はわかる そのブランチをマージした際のPRを知りたい やりかた PullRequestの検索窓で head:{{マージしたブランチ名}} で検索をかけ…