2022年8月27日のブックマーク (3件)

  • Go Secure Coding Practice の日本語翻訳を公開します - Techtouch Developers Blog

    はじめに Go Secure Coding Practice とは コンテンツ一覧 良かったところ 注意すべきところ 最後に はじめに こんにちは。SRE の izzii です。 テックタッチのエンジニア規模もそれなりに拡大し、若手の採用も進んできたため、セキュアコーディングを徹底していきたいという思いがあり、まずは意識改革ということで勉強会を実施しました。セキュアコーディングを目的とした場合には教育だけでなく Static application security testing (SAST) の導入といった方法もあるのですが、まずは自分を含めた開発メンバーにノウハウをインストールすることにしました。セキュアコーディングへの意識が高まれば、いづれ SAST の導入の際に抵抗感も少ないだろうと考えています。いきなり SAST を導入しても、誤検知が煩くて浸透しないリスクもありうると考えてい

    Go Secure Coding Practice の日本語翻訳を公開します - Techtouch Developers Blog
  • Golangのインターフェースは拡張していいものなのか? - NullPointer's

    早速Golangで頭を抱えている Goには「このインターフェースを実装するぞ!」という明示的な宣言がない。errorインターフェースがいい例だが、Error() stringというシグニチャのメソッドがある構造体は何でもerrorとして扱うことできるようになる。ダックタイピングのような挙動を示す そんなインターフェースの型によって分岐する単純なコードを考える type Animal interface { Bark() string } // animalを実装したCat type Cat struct {} func (cat *Cat) Bark() string { return "Nyan" } // animalを実装してないApple type Apple struct{} func whatIs(x any) { switch x.(type) { case Animal:

    Golangのインターフェースは拡張していいものなのか? - NullPointer's
  • Goにおける複数エラーのハンドリング

    はじめに Goにはgoroutineにより並行処理を簡便に記述できるという特徴があります(簡便に正しく動かせるとは限らないですが)。 この時問題になるのがエラーハンドリングで実際のアプリケーション実装では大きく いずれかのgoroutineでエラーが発生したら他のgoroutineを中断したい 各goroutineの処理が終わるまで待機し、発生したエラーは個別に処理したい という要件がよく発生するかと思います。 これらを充足する処理を自前で実装することも勿論可能ですが、それぞれに適したライブラリがあるため記法のサンプルと共に紹介したいと思います。 errgroupが適したケース・使い方 Go公式の実験パッケージとして提供されているgolang.org/x/sync/errgroupでは主に単一のエラーをハンドリングすることに焦点を当てており標準のsyncパッケージに近い使い方、もしくはエラ

    Goにおける複数エラーのハンドリング