コガミツlog

福岡在住エンジニアのブログ

あんまりやったことないGitのコマンドを叩いてみる $ git blame

とある理由で$ git blameを叩くことになったのでついでにメモ。

Git - git-blame Documentation

Show what revision and author last modified each line of a file

ファイルの各行の最後に修正した著者とリビジョンを表示する。ですね。

$ git blame app/models/user.rb
7a4b660d (kogamitsuhiro 2023-10-09 08:20:56 +0900 1) class User < ApplicationRecord
b786cb58 (kogamitsuhiro 2023-10-08 21:35:15 +0900 2)   # Include default devise modules. Others available are:
b786cb58 (kogamitsuhiro 2023-10-08 21:35:15 +0900 3)   # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
b786cb58 (kogamitsuhiro 2023-10-08 21:35:15 +0900 4)   devise :database_authenticatable, :registerable,
b786cb58 (kogamitsuhiro 2023-10-08 21:35:15 +0900 5)          :recoverable, :rememberable, :validatable
b786cb58 (kogamitsuhiro 2023-10-08 21:35:15 +0900 6)   include DeviseTokenAuth::Concerns::User
b786cb58 (kogamitsuhiro 2023-10-08 21:35:15 +0900 7) end

みたいな感じです。

普段私はVSCode使っていて、gitlensという拡張機能を入れるとまさにgit blameと似たような情報が表示されます。 そのため使用頻度は低いですが、そうすると使わなくて完全に忘れそうなのでメモでした✍️

1年間継続開催していたもくもく会を閉じました🥲

1年間継続開催していたもくもく会を閉じました

タイトルの通りで1年間継続開催していたもくもく会を閉じました。

開催していたもくもく会は「仕事終わりにひと勉強」というもので、2022年の12月から会社の同僚、数人で開催していました。

study-after-work.connpass.com

ふりかえり

開催回数は43回でした。

自己学習の時間確保のために始めたものでしたが、会社の同僚と一緒に管理していたので継続できました。

特に同僚のSさんに感謝です。ありがとうございます🙏

管理者になって良かったこと

大きくまとめて以下の4つが良かったことです。

  • 自己学習の時間を強制的に確保できる
  • connpassを使った勉強会の開催方法を経験できた
  • 社内のモチベーションの高い人とコミュニケーションが取れる
  • 外部の人と(わずかではありますが)コミュニケーションを取る機会ができた
  • 社内の評価項目に外部勉強会に関する項目があったので、副作用としてその評価も上がった

おわり

もくもく会という性質上、マンネリ化したり人が集まらなかったりしますがよく1年間継続できたと思います。 自分で管理することはなくなりましたが、興味のある勉強会には参加していきたいと思います。

postgresqlでNULLを0に置換する方法

postgresqlでNULLを0に置換する方法

カラムの値としてはNULLだが、0として扱いたい時の状況で

SELECT COALESCE(NULLのカラム, 0) FROM table_name;

を使ってNULLを0として出力できる。 たぶんSQLの本には載っていると思うのですが、使う機会が全然なくて全然覚えてませんでした。

あるカラムで並び替えを行いたい時に要求仕様にバチっとハマって使用しました。

英語の意味

COALESCE

  • 癒着する
  • 合体する

カタカナ表記だと、「コウアレス」

文節は co・a・lesce

Railsガイドから学ぶマルチDBのコネクションを手動で切り替える方法

Railsガイドに載っている情報ではあるのですが、僕自身がマルチDBの経験少ないのでアウトプットとしてメモ残しておきます。

https://railsguides.jp/active_record_multiple_databases.html#コネクションを手動で切り替える

手動で切り替える方法

ActiveRecord::Base.connected_to(role: :reading) do
  # このブロック内のコードはすべてreadingロールで接続される
end

connected_to メソッドが提供されていて、DBのコネクションを切り替えられる。

role を指定するとコネクション先を指定できる。

確実に読み取り専用にするには prevent_writes: true を指定する。

ActiveRecord::Base.connected_to(role: :reading, prevent_writes: true) do
  # Railsは読み取りクエリであることをクエリごとに確認する
end

preventが防ぐ って意味なのでそのままですね。