週刊ニュース Lv13(2023年2月11日~2023年2月17日)
Metadata
Date: February 18th, 2023
Category: 週刊ニュース
2月11日(土)
特になし
2月12日(日)
Gitコマンドの結果を視覚的に見れる「git-slim」
git-slim log
のように使うことができる便利そうだけど、python、ffmpeg、manim、miktexと依存関係が多すぎる…
Chrome拡張機能 履歴全文検索「Falcon」
アクセスしたページの本文を自動保存してくれる。
便利そうだけど、機密情報なども自動保存されていたりすると気にすることも増えるから見送り。
Go言語で対戦シューティングゲームを作る6
コードを移植してくるときに中途半端に関数に切り分けていたけど、期間が空くと思い出すのに時間がかかり辛くなってきた。
GoやJSの可読性の高い書き方をまだ理解できていないのでいろんな人のコードを参考にしながら一からキレイにしようと思った。
2月13日(月)
親知らずの炎症がつらい
親知らず周りに口内炎ができていて長引いているなと思って調べるとただの口内炎じゃなかったみたいです
唾を飲み込むだけでも痛いのでかなり辛いのですが、今はだいぶ収まってきました。
親知らずは今まで悪さをしたことがなかったのですが、こういう炎症も起きたりするんですね。
何度も再発するようなら親知らずの抜歯も検討しよう。
Go言語で対戦シューティングゲームを作る7
この日は実装よりも開発環境周りが気になってしまいそちらの成果の方が多かったです;;でも、改善するのはやっぱり楽しいです。
vimのfoldを使ったzc、zoで開閉するとコードの見通しがよくなる
lazygitのアップデートが来ていて作業コンテナのbuildし直し
フォントサイズを小さくすると見える範囲のコードが増えて移動が減っていい感じ
LspHoverのポップアップのスクロールがvimでもできるように設定した
2月14日(火)
Sidekiqのことを少しだけ理解できた
開発環境でappコンテナとsidekiqコンテナは別々と構成のときに、perform_asyncしたときに一切appコンテナ側にログが残らないなと思っていたのですが、必要な引数をRedisに保存してsidekiqコンテナ側で実行しているんですね(ちゃんと調べていないので間違っているかも)
Go言語で対戦シューティングゲームを作る8
この日は他の人のコードを色々見ながら勉強しました
GoのRouterについて
Go言語で別のファイルに関数を定義する方法
他の人のコードを見ながら、どこからもimportしていないけど呼び出せる関数があるなとおもったら、同じpackage内の関数であれば別ファイルで定義した関数をimportせずに使うことができるみたいでした。
個人的には明示的にimportするほうが好みなので別ファイルに別パッケージで切り出して明示的にimportする方法を使おうと思いました。
Goのmelodyについて
2月15日(水)
before_destroyは最後にthorw :abort
する必要がある
before_destroyで削除するときに特定の条件を満たしてなかったらエラーにしたいときに、最後に
thorw :abort
をつけないと後続の処理も行われ削除されてしまうようです。そのため、before_destroyで実行するメソッドの最後にthorw :abort
を書く必要がありました。
2月16日(木)
研鑽Rubyが全17章読めるようになった!
途中までしか読めなかった研鑽Rubyがついに全部読めるようになったみたいです!
購入しただけで積んでいるのでいつか読む(きっと…)
mattnさん著のGo本が出るみたいです!速攻ポチりました!
関連で呼ばれるときには自動で関連モデルを設定したい & 明示的に呼ぶときは指定した値を設定したいを両立させる
結論からいうと、transientを使うと両立させることができました。
FactoryBot.define do factory :training_program_environment_week do uuid { SecureRandom.uuid } start_at { '18:00' } end_at { '20:00' } training_program_environment transient do _week_id { Week.ids.sample } end before(:create) do |training_program_environment_week, evaluator| training_program_environment_week.week_id = evaluator._week_id end trait :with_week do before(:create) do |training_program_environment_week, evaluator| training_program_environment_week.week_id = evaluator._week_id end end end end
下記のように何も指定しないときは、
before(:create)
でランダムな曜日が設定され、traitを指定して、_week_idを渡したときは曜日を設定できました。transientで指定するのは仮想的な属性らしいのでモデルに存在する属性名と被らないように_week_id
としました。$ FactoryBot.create(:training_program_environment_week) #=> デフォルトでweekがランダムで設定される $ FactoryBot.create(:training_program_environment_week, :with_week) #=> デフォルトでweekがランダムで設定される(上記と同じ) $ FactoryBot.create(:training_program_environment_week, :with_week, _week_id: 5) #=> _week_idで指定した曜日で設定できる
2月17日(金)
コードレビューをもっと楽にしたい
今はGitHub上で
.
でVisual Studio Codeを起動することができますが、そのVisual Studio Code上でレビューができるようでした。また、ローカルでも同じことができその場合は拡張機能「GitHub Pull Requests and Issues」を導入すれば同じことができました。
ただ、間違った操作をしそう間が否めないのでやはりGitHub上で見るのが自分はよさそうです。
そのときに差分が多かったりすると、GitHubはファイル単位でのViewedしかないため、ファイルの差分が大きすぎるとどこまで見たかがわからなくなってしまいます。
そのときに便利なのがChrome拡張の「Super Simple Highlighter」です。見た箇所にハイライトをつけられます。おすすめはちょっとopacityを下げたgrayがおすすめです。間違って画面を再リロードしてもハイライト箇所は残ってくれるので誤操作でどこまで見たっけという不幸をなくすことができます。
さらに便利だと思ったのがChrome拡張の「どこでもメモ」です。PRにコメントするまではないけど自分用で一旦コメントを残したいときに重宝します。こちらも自分で消さない限りは画面を再リロードしてもメモは残るというのが良いです。
GitHubが行単位で見た箇所をハイライトできるといいのですが、その機能はないので一旦はChrome拡張を使うと良さそうでした。