タグ

golangに関するjuve534のブックマーク (5)

  • Goのテーブル駆動テストではテストケースの定義位置を知りたいのでライブラリを書いた - 詩と創作・思索のひろば

    Go言語でテストを書く際のベストプラクティスとして、テーブル駆動テスト(Table dirven tests) というのが推奨されている。ようはデータとふるまいを分離しましょうという話で、正直わざわざ名前をつけるようなものでもなかろうという気持ちもないではないが、まあ話がはやくていいね。 けどみんなほんとにこれで満足してるの? と疑問に思うところはある。テストが落ちたときに表示される行番号がテストケースによらず一定で、どのテストが落ちたのかを探すのに一手間かかってしまう。 たとえば以下のコードをテストする際、 package eg import "testing" func TestExample(t *testing.T) { testcases := []struct { name string a, b int sum int }{ {"1+1", 1, 1, 99}, {"2+2"

    Goのテーブル駆動テストではテストケースの定義位置を知りたいのでライブラリを書いた - 詩と創作・思索のひろば
    juve534
    juve534 2023/10/12
    "全部同じ行になっちゃうんだよ!!!" わかりみ。これ便利そう。
  • ニコニコ動画のコメントサーバーを引っ越した時の話 - dwango on GitHub

    こんにちは。ニコニコ動画開発の多胡です。 今回は PHPerKaigi2023 向けの記事として、2021年に実施したニコニコ動画のコメントサーバーをお引越しした時のことを書いてみたいと思います。 文中の 5 つのフレーズをチャレンジトークンとしてみました。ぜひ探してみてください! (※ 記事の見出しにの横についている「#」はチャレンジトークンではありません。チャレンジトークンは文中に配置されています。紛らわしくてすみません!) 背景 実はニコニコ動画の #コメントサーバーを引っ越した のはこの時が二度目でした。 一度目は2014年から2016年にかけてのプロジェクトでファイルベースのシステムからの引っ越しでした。このファイルベースのシステムは、ニコニコ動画生誕当時から利用されており、当時のコメント参照や投稿にはすでに耐えられない状態になっていました。 そこで、このファイルベースのシステム

    ニコニコ動画のコメントサーバーを引っ越した時の話 - dwango on GitHub
    juve534
    juve534 2023/03/10
    C++ を脱却するのは C++ のエンジニアが居ないからなのかな?その辺はちょっと気になった。バランスを取りながら選定・実装しているのは素敵だな。Goridge は RoadRunner の人たち製かな。
  • Redis Streamsを活用したイベントドリブンアーキテクチャの構築事例 - DMM inside

    Dagger Go SDK vs Shell in GitHub Actions ~ モノレポのCIの実装をGoで実装するまでの道のり ~

    Redis Streamsを活用したイベントドリブンアーキテクチャの構築事例 - DMM inside
    juve534
    juve534 2023/02/28
    Redis Streams 気になっていたんだよな。"イベントドリブンアーキテクチャとしてはApache KafkaやAmazon Kinesisなどが考えられるが、所属部署として知見をあまり持ち合わせていなかった" 自分が興味を持った理由と被るわー。
  • pprof を使って nodejs アプリケーションのプロファイルを取る - その手の平は尻もつかめるさ

    pprof って go のやつでしょ? node のプロファイルが取れるわけ無いやろ,と僕も思っていたんですが以下のライブラリを使うことで取れることがわかりました. github.com 使い方については Using the Profiler に書いてあるとおりで,アプリケーション側に const profile = await pprof.time.profile({ durationMillis: 10000, // time in milliseconds for which to // collect profile. }); const buf = await pprof.encode(profile); fs.writeFile('wall.pb.gz', buf, (err) => { if (err) throw err; }); という風に書いてあげるとwall time

    pprof を使って nodejs アプリケーションのプロファイルを取る - その手の平は尻もつかめるさ
    juve534
    juve534 2020/10/29
    Goじゃなくても使えたのは驚き
  • Go言語 - 開発支援ツール - 覚えたら書く

    Go言語での開発を行う際にお世話になる開発支援ツールがいくつか存在しています。 そこまで猛烈に意識しなくてもいい気もしますが、自分用のメモとしてコマンドラインでの入手方法等を記載しておきます gofmt gofmt は、Go標準で付属しているコードフォーマッターです。 ソースコードのインデント等を自動的に整形してくれます 好き勝手な独自スタイルが乱立しないように公式の単一のスタイルを強制してくれます。 使い方例(元のファイルを上書きする場合) gofmt -w target.go goimports goimports は gofmt の上位互換のツールでコードフォーマット共に自動でimport文の挿入や削除を実施してくれます 入手方法 go get golang.org/x/tools/cmd/goimports golint Goとして望ましくないコーディングスタイルに対して警告をして

    Go言語 - 開発支援ツール - 覚えたら書く
    juve534
    juve534 2019/10/15
    なんか良さそう
  • 1