週刊ニュース Lv12(2023年2月4日~2023年2月10日)
Metadata
Date: February 11th, 2023
Category: 週刊ニュース
2月4日(土)
特になし
2月5日(日)
TLS 経由でページをホストしているか調査
Stripe関連でページをTLS経由でホストしているか調べる必要があったので調査しました。
クライアント側から確認する
Chromeから調べることができました。
TLS checkerでも調べました。
サーバー側から確認する
ELBを使ってロードバランシングしていたので、ELBのセキュリティポリシーを確認しました。
ELBSecurityPolicy-2016-08
を使っており、こちらは互換性のために tls1.0 tls1.1 tls1.2 をサポートしているようでした。🔗https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies
結論としてTLSに対応しているようでした。
2月6日(月)
Go言語で対戦シューティングゲームを作る4
new WebSocketの直後にsendすると、WebSocket接続が確立する前にsendしてしまいエラーになるという事象が発生しました。setIntervalを使ってWebSocket接続が確立されるまで試行して、sendに成功したらsetIntervalを停止することで回避しました。
このとき初めてGoでdlbを使ってデバッグしてみたのですが、結構手順が多くて慣れるまで大変そうです。
前回、TSを使えるようにしたのですがGo言語も慣れておらず、TSも慣れていないので実装するために学習するコストが高くつくなーと今更思いましたがせっかくの機会なのでゆっくりやっていこうと思います。
ログイン時にログイン情報をSlackに通知する
Webアプリで特定のアカウントでログイン時にできるだけログイン時の情報をIPアドレスなどを含めて通知するということをやったのですが、引き出しが少なくあまり情報を出せませんでした。
後からこのサイトを見つけてこういう情報も出せたら良かったなと思ったので似たような要件のときに参考にしようと思いました。
2月7日(火)
Railsで特定のディレクトリにコントローラーを自動生成する
たまにしか使わないので忘れてしまいますが、generateコマンドは便利です。下記はコントローラーとコントローラーのテスト以外の不要なファイルは生成しないというオプションをつけてます。
rails g controller api/v1/posts index create --no-assets --no-helper --skip-routes --no-decorator --skip-template-engine
Railsで特定のコントローラーのルーティングを確認する
いつもは
rails routes | grep xxx
みたいなことをしていたけどコントローラー名で絞り込めるのは知らなかった。rails routes -c 【確認したいコントローラー名】
https://www.tairaengineer-note.com/ruby-on-rails-rails-routes-specific-controller/
Go言語で対戦シューティングゲームを作る5
フロントから取得したjsonをGoの構造体に紐づけるのにjsonパッケージが便利。
melodyで接続したクライアントにメッセージを送信するときは
s.Write([]byte(message))
が使えた。参考: https://pkg.go.dev/github.com/olahol/melodySession.Write
2月8日(水)
composablesディレクトリにuseなんちゃらを配置する
フロントエンドディレクトリにcomposablesというディレクトリがあり、その中にuse○○というファイルが配置されているのですが、改めて何故だっけ?となったので調べてみました。
composables
おそらく自社の場合のcomposablesはVueからきていそうです。「状態を持つ関数を配置するディレクトリ」という意味合いな気がしました。
use○○
自社で使っているのはReactなのでReactの文脈だと思いReactのドキュメントを調べてみました。
おそらくここらへんかなと。useObjectiveのような内部で他のuseState、useQueryなどのフックを呼び出している独自カスタムフックなのでuse○○という感じなのかと思いました。
カスタムフックとは、名前が ”use” で始まり、ほかのフックを呼び出せる JavaScript の関数のことです。 https://ja.reactjs.org/docs/hooks-custom.htmlextracting-a-custom-hook
結論
composablesには状態を持つ関数が含まれる。
use○○は内部でフックを呼び出している。また、composablesに配置されているuse○○は状態も持っているからcomposablesに配置している。
2月9日(木)
Sidekiq7.xからconfig.log_formatter
はエラーになる
Sidekiq7.xへのバージョンアップをやっています。
そのときに
undefined method log_formatter=
というエラーが出るようになりました。config.logger.formatter
を使うようになったみたいです。参考:https://github.com/mperham/sidekiq/issues/4218issuecomment-1420433857
調査したときのメモ
7.xからはconfig周りのメソッド等が新クラスの
Sidekiq::Config
に移されている6.5.x
Sidekiq.configure_server
を呼ぶと Sidekiq クラス自身が持っている設定系のメソッドで設定されていたconfig.log_formatter
のconfig
は Sidekiq クラス自身
7.x
Sidekiq.configure_server
を呼ぶとdefault_configuration
が呼ばれるようになって、default_configuration
では、Sidekiq::Config
を生成するので、Sidekiq::Config
のメソッドが呼ばれるようになるconfig.log_formatter
のconfig
はSidekiq::Config
になったSidekiq::Config
は#log_formatter
を持っていないのでエラーになるようになった。7.xからは
Sidekiq::Config
が RubyのLoggerを継承しているので、最終的には、 RubyのLogger#formatter=
が呼ばれていそう(未検証)
2月10日(金)
RailsのminitestのControllerテストで2種類の親クラスが使われていた
ActionController::TestCase
とActionDispatch::IntegrationTest
が2つ使われていて、自動生成ではActionDispatch::IntegrationTest
を継承したクラスが生成されていました。調べてみると
ActionController::TestCase
は非推奨で今はActionDispatch::IntegrationTest
を使うみたいです。参考:https://api.rubyonrails.org/classes/ActionController/TestCase.html