Small Changes

週刊ニュース Lv7(2022年12月31日~2023年1月6日)


Metadata


あけましておめでとうございます。今年もいい1年にしていきましょう。

さっそく振り返っていきます。

12月31日(土)

デスクトップPCのリストアをしました

  • 年末大掃除ということでPCまわりもスッキリさせるためにリストアをしました。

  • 手順や設定ファイルに関してはgit管理しています。

  • リストアを行う度に手順や設定ファイルが充実していくため、今回はかなりスムーズに進めることができました。

  • だいぶ安定して行えるようになってくるといつPCが壊れても復帰できるという安心感がありとても心理的に良いです。

1月1日(日)

やりたいことがどんどん出てくる

  • 業務改善やGo言語を深めたり、インフラの知識を深めたりとやりたいことがどんどん出てきて時間が足りないなーと改めて思いました。こういうときはすごく焦りますが、着実にひとつずつやっていくしかないのでコツコツやっていきます。

NotionのSlack連携の強化2はまだきていなさそう

  • こちらのツイートを見て、Slack連携の強化2がきていたらNotionからSlackへの通知周りがはかどると思い、色々調べたり試してみたのですが、Notionの新着情報を見るとまだきていなさそうでした。

  • サブタスクと依存関係はすでにきているのでSlack通知する際にNotionイベントの種類を選択できる機能も早くきてほしいです。

1月2日(月)

Amazon Web Services 基礎からのネットワーク&サーバー構築 をチャプター3まで進めた

  • 年末年始でなにかやろうと思っていてAWS周りナニモワカラナイ状態だったのでやってみました。

  • チャプター3までの感想です。

    • ところどころ操作UIが変わっていて苦労するものの設定の本質は変わっていないのでなんとか進める

    • 画面ポチポチで設定していくのが辛いのを実際に体験できた(自社ではTerraformを使っている)

    • 2章はネットワーク部分で辛いけど大事な章。CIDER表記がわかるだけでもだいぶ違った

    • 3章でインスタンス作成したがペアキーを紐づけ忘れると作り直すしかないのは辛い

1月3日(火)

Amazon Web Services 基礎からのネットワーク&サーバー構築 をチャプター8まで進めた

  • 2日目はチャプター4からでした。ネットワークを構築してインスタンスを作成したあとの話でインスタンスにインストールする系が多かったのでどんどん進めることができました。

  • 4章ではWEBサーバにアクセスするときにアクセスできずにハマっていたのですが、httpsで接続していたからでした。httpにすると接続できました…

  • 6章でプライベートサブネットを作るのですがサブネットの作成はパブリックサブネットを作る時と何も変わらなかったので何が違うのだろうと思ったのですが、インスタンスにパブリックIPアドレスを割り当てないという点が大きく違いました。あくまでもサブネット側でパブリックかどうか設定するのではないんだなという感想でした。

  • また、WEBサーバを踏み台にしてDBサーバにSSHするということもやり、これが踏み台サーバなのかと理解できました。

  • 細かいところは結構無視したものの8章まで進めて、自分が知りたかったネットワークの全体像を短期間でキャッチアップすることができたのでかなり良かったです。

  • [自分の理解を整理してまとめた図]

1月4日(水)

Reactで「Invalid Hook Call Warning」というエラーが出た

  • ApolloCientのonErrorの中でuseNavigateを使い、navigateで遷移させるということをやろうとしていたのですが、「Invalid Hook Call Warning」というエラーが出ました

    • const errorLink = onError(({ graphQLErrors, networkError}) => {
        const navigate = useNavigate() // NG
      
        if (graphQLErrors){
          const {code} = graphQLErrors[0].extensions
      
          if (code === 'NOT_FOUND') {
            navigate('/not_found') //NG
          }
        }
      });
      

  • https://ja.reactjs.org/warnings/invalid-hook-call-warning.html

  • このエラーが出るときの大まかなケースは次の3つのときのようです。

    • 1. React と React DOM のバージョン不整合

    • 2. フックのルールへの違反

    • 3. 重複した React のコピー

  • 色々調べた結果、2のフックを「イベントハンドラ内で呼び出さないでください。」というルールに違反していたようです。

  • イベントハンドラ内で呼び出さずに独自のuse関数で該当のコードを囲み、独自のuse関数の最初の行でconst navigate = useNavigate()を呼び出すようにすると解消できました。

1月5日(木)

NotionからSlack通知をするのにmakeを使ってみた

  • こちらの記事を参考にmakeを使ってみました。

  • https://news.mynavi.jp/techplus/article/howtonotion-18/

  • 使ってみた感想としてはかなり良かったです。

    • 無料プランでもフィルタ機能が使える

    • 無料プランではアクティブなシナリオ数が2個まで

      • makeの場合は次のプランにあげれば無制限になり、料金もかなり良心的

    • シナリオを作るのは慣れるまでちょっと設定がむずかしい

    • ポーリングが最短で15分感覚で設定可能

1月6日(金)

Apollo ClientでErrorLinkを使って高度なエラー処理ができますが、ErrorLinkの中でthrowした例外が捕捉できずにドはまりしました

  • サーバ側からエラーを返す時に共通のCODEを返すようにしており、そのCODEをもとにApollo Clientから例外をthrowして、react-routerで例外を捕捉してコンポーネントをエラー内容に合わせて動的に出し分けるということがやりたかったのですがそれができずにドはまりしました。

  • 色々試したもののちゃんとした原因がわかっていないのですが、Apollo Clientの仕組みをしっかり理解できていないことがボトルネックになったなと感じたので、次に活かしていこうと思います。

References