kmuto’s blog

はてな社でMackerel CREをやっています。料理と旅行といろんなIT技術

『Software Design』2023年5月号を読んだ

うぉー、積読が溜まってしまった。今週末にリカバリーを試みている。まずは5月号を読む。

gihyo.jp

  • 結城浩の再発見の発想法」結城さん連載が最終回だった。おつかれさまでした。発想と話の広がりが結城さんらしいな〜と思って読んでいました。
  • Python×数学ブートキャンプ」、数学なんもわからん…のでまずいね。紙面は数式フォント合わせるのは難しかったか……。
  • 「WebAssemblyの可能性を探る」。なんでもかんでもWasmではないんだなというのがわかってよかった。
  • 「SBOM今後求められる運用と立ちふさがる課題」、ソフトウェアの依存関係サプライチェーンEUのCRA(Cyber Resilience Act)、医療機器規制のIMDRF(International Medical Device Regurations Forum)あたりで関わってくる。
  • 「メールセキュリティ対策の現場」は新連載、著者はYahooの中村さん。まずはSPFDKIMの紹介。
  • Google Cloudを軸に実践するSREプラクティス」第2回はIaC。
    • IaC化されることで、コードリポジトリで管理してPRの相互レビューにより品質向上できる、チェックツール(tflint、tfsecなど)を導入して自動チェックできる、変更管理してロールバックもしやすくなりアプリケーション/インフラの整合性をとるのが容易、誤って壊したときやディザスタリカバリでも復旧の再現性がある、踏み台サーバーの構築モジュールに見られるように知見共有できる。デメリットとして
    • 初期構築は大変、一度VCSでレビューなどを挟むので変更コストが高め(CI/CDなどで改善はできる)。信頼性とアジリティのバランス。
    • 記事ではTerraformを使用。クラウド上リソースを指定できる、対応しているクラウドサービスが幅広い。
  • 「なるほど納得Go言語」。
    • ゼロ値は数字型では0、boolではfalse、stringでは空文字列。ゼロ値をそのまま使うという意図ならvarで宣言する。ゼロ値以外の特定値を入れるなら:=。
    • map型のゼロ値はnilで空マップではない。初期化しないならvar、空のマップを作るならmake、初期k-vが決まっているならリテラルを使う。
    • スライスもおおむね同じだがnilスライスは要素0の空スライスとしても振る舞うことができる。
    • チャネルのゼロ値はnilチャネル。closeするとpanicする。送受信はブロックされる。
    • 関数のゼロ値はnil。呼び出すとpanic。
    • ポインタのゼロ値はnilデリファレンスするとpanic。デリファレンスしたときに型Tのゼロ値を取り出したいときには、Tがプリミティブ型や構造体ならnewを使える。構造体だと&T{}のようにするほうが好まれる。
    • Make the zero value useful.
  • AWS活用ジャーニー」はRoute 53、ACM、ELBの話。