この記事は
Go Advent Calendar 2019の4日目の記事になる。
3日目は
@ikawahaさんの「
Goa v3 のテストをシュッとする]」だった。
本記事ではOpen Web Application Security Project(OWASP)が公開しているGo-SCP
リポジトリを紹介する。
Webアプリケーションには
クロスサイトスクリプティング(XSS)や
クロスサイトリクエストフォージェリ(CSRF)など、様々な脆弱性が潜む可能性がある。
脆弱性対策の書籍としては、
体系的に学ぶ 安全なWebアプリケーションの作り方(徳丸本)などが有名だろう。
Go-SCP
リポジトリにはWebアプリケーションを実装する際に必要な脆弱性の知識と、Goを使った脆弱性対策の実装方法が含まれている。
「気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!」を読んでPHPの勉強を始めた。
ECサイトの基本的な機能を実装しながら一通り読み終わったので感想を書く。
公私でGoを書くときはVimを使っている。
ファイル保存時にgolangci-lint
を実行するように設定しているのだが、表題のエラーが出て静的解析が実行されなかったので原因調査・解決した。
メルカリさんで行われたGoリリース10周年パーティに参加したので、遅くなったが参加メモ。
Goは今年でOSS10周年!
先日のgolang.tokyoではswitch
文に関するDevquizが出題された。
私はわかっていたつもりで乾杯の挨拶中に解説を話したが、間違えた解説だったので改めて仕様を確認した。
GitHub Actionsで待望のキャッシュ機能が使えるようになった。
Windowsコンテナでジョブを実行していると少しハマる感じだったが、自分のGoのリポジトリのGitHub Actionsでキャッシュを使えるようになった。
昨年Go1.10時点でのGoのテストについてまとめた。
まとめ記事を書いた後にリリースされたGo1.11からGo1.13に含まれるテスト関連の変更をまとめる。
Goでクリーンアーキテクチャ等のレイヤードアーキテクチャを実装するための静的解析ツールを作った。
「webhandler
パッケージからusecase
パッケージを使わずに直接domain
パッケージを使わないで!」というような、やってほしくないimport
をエラーにできる。
fmt
パッケージにはfmt.Printf
の出力を任意に変更できるインターフェースが定義されている。
各インターフェースを満たす独自型をフィールドに持つ構造体の出力がどうなるのか確認し、任意の型の出力を制御できるか確認してみた。
先日の登壇資料に
ブコメでコメントいただいていたので私の考えを述べたいと思う。
結論から書くと、やはり「単純さや簡潔性を保つため」が動機になるのだと思う。
なお、このブログでは敬体は使わない方針なので、常体なのはご容赦願いたい。
そういや “imported and not used” “declared and not used” でコンパイル通らなくなるのはどういう哲学なんだろうこれ。