タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

goに関するmotemenのブックマーク (14)

  • Goでモンキーパッチするライブラリを作った - Plan 9とGo言語のブログ

    Goで単体テストを実装する場合、動的な言語のように「テスト実行中に外部への依存を置き換える」といったことはできません。代わりに、 外部への依存を引数で渡す 外部への依存をインターフェイスで渡す のように、テスト対象をテスト可能な実装に変更しておき、テストの時は外部への依存をモック等に置き換えて実行する場合が多いのではないかと思います。 個人的な体験でいえば、テスト可能な実装に置き換えていく過程で設計が洗練されていく*1ことは度々あるので、面倒を強制されているというよりは設計を整理するための道具といった捉え方をしているのですが、そうは言っても動的な言語に比べると面倒だなと感じるときは少なからずあります。既存の実装がテスト可能になっておらず、変更するコストが高い場合は特にそうですね。 そんなとき、気軽にモンキーパッチできると嬉しいんじゃないかと思って、テストの時だけ関数を置き換えられるようなラ

    Goでモンキーパッチするライブラリを作った - Plan 9とGo言語のブログ
    motemen
    motemen 2024/05/28
  • GolangのGCを追う

    Go1.5とGo1.6でGoのGCのレイテンシが大きく改善された.この変更について「ちゃんと」理解するため,アルゴリズムレベルでGoのGCについて追ってみた. まずGoのGCの現状をパフォーマンス(レイテンシ)の観点からまとめる.次に具体的なアルゴリズムについて,そして最後に実際の現場でのチューニングはどうすれば良いのかについて解説する. GoのGCの今 最初にGoのGCの最近の流れ(2016年5月まで)をまとめる. Go1.4までは単純なStop The World(STW)GCが実装されていたがGo1.5からは新たなGCアルゴリズムが導入された.導入の際に設定された数値目標は大きなヒープサイズにおいてもレイテンシを10ms以下に抑えることであった.Go1.5で新たなアルゴリムが実装されGo1.6で最適化が行われた. 以下は公開されているベンチマーク.まずはGo1.5を見る. Gophe

    motemen
    motemen 2016/05/18
  • Golangのエラー処理とpkg/errors

    GoConでは毎回エラー処理について面白い知見が得られる.Go Conference 2014 autumn においては(実際のトークではないが)居酒屋にて@JxckさんがRob Pike氏から以下のようなテクニックを紹介してもらっていた. Errors are values - The Go Blog Golang Error Handling lesson by Rob Pike これはWrite(やRead)のエラー処理が複数続く場合にerrWriter を定義して複数のエラー処理を一箇所にまとめてコードをすっきりとさせるテクニックであった. そして今回の Go Conference 2016 spring のkeynoteにおいてもDave Cheney氏から(僕にとっては)新たなエラー処理テクニックが紹介された. Gocon Spring 2016 実際に使ってみて/コードを読ん

    motemen
    motemen 2016/04/25
  • GoCon 2016.04 MO Game Server

    Building high performance MO Game server 2016.04 GoCon By @methane

    GoCon 2016.04 MO Game Server
    motemen
    motemen 2016/04/23
  • Glide | Package Management For Go

    The domain name glide.sh is being parked on Park.io. Contact the domain owner to make an offer right now...

    motemen
    motemen 2016/03/25
  • 2016 Kickoff - Hashicorp & Go Plugin Architecture

    Mitchell Hashimoto from Hashicorp discusses how the team has gone about evolving their plugin architecture throughout the years. Links: https://github.com/hashicorp/go-plugin

    2016 Kickoff - Hashicorp & Go Plugin Architecture
    motemen
    motemen 2016/03/06
  • Go Report Card | Go project code quality report cards

    Enter the go get path to the project below: Generate Report Sponsored Report Cards github.com/mergestat/mergestat github.com/photoprism/photoprism [Your Repo Here!] Recently Generated github.com/USA-RedDragon/connect-server concord.hectabit.org/HectaBit/captcha github.com/rilldata/rill github.com/devxp-tech/test-daniel github.com/yassinebenaid/godump

    motemen
    motemen 2016/02/14
  • Go言語でファジング

    この記事はGo Advent Calendar 2015の21日目の記事です. 今年もGoコミュニティーから多くのツールが登場した.その中でも異彩を放っていたのがGoogleのDynamic testing toolsチームの@dvyukov氏によるgo-fuzzである. go-fuzzはGo関数のファジングを行うツールである.このツールはとても強力で標準パッケージで100以上,golang.org/x/パッケージで40以上,その他を含めると300以上のバグを発見するという実績を残している(cf. Trophies). 記事ではこのgo-fuzzの紹介を行う. ファジングとは? Fuzz testing - Wikipedia, the free encyclopedia ソフトウェアの脆弱性検出におけるファジングの活用 「ファジング」とはソフトウェアのテスト手法である.テスト対象となる

    motemen
    motemen 2015/12/21
  • A whirlwind tour of Go’s runtime environment variables | Dave Cheney

    Introduction The Go runtime, in addition to providing the usual services of garbage collection, goroutine scheduling, timers, network polling and so forth, contains facilities to enable extra debugging output and even alter the behaviour of the runtime itself. These facilities are controlled by environment variables passed to the Go program. This post describes the function of the major environmen

    motemen
    motemen 2015/12/08
  • Google グループ

    Google グループでは、オンライン フォーラムやメール ベースのグループを作成したり、こうしたフォーラムやグループに参加したりすることで、大勢のユーザーと情報の共有やディスカッションを行うことができます。

    motemen
    motemen 2015/09/03
    へー
  • Go の []byte がわからない - @kyanny's blog

    JSON のパースとかをやってみようと思ってドキュメントを読むと byte とか出てきて、 byte ってなんだよ文字列とどう違うんだよ C も Java もやったことないから意味わかんねえよ、と思って go string byte difference とかでぐぐって出てきた記事を少し読んだ。 Strings, bytes, runes and characters in Go - The Go Blog こっちは、文字列と文字を扱うのは難しいんだよ、的なことを言っているのだな、ということはわかったが、 string と byte がどう違うのかという知りたかったことはイマイチ解決できなかった。 Arrays, slices (and strings): The mechanics of 'append' - The Go Blog こっちは長くて半分も読めなかった。そもそも slice

    Go の []byte がわからない - @kyanny's blog
    motemen
    motemen 2015/07/01
  • Go言語のDependency/Vendoringの問題と今後.gbあるいはGo1.5

    Go言語のDependency/Vendoringは長く批判の的になってきた(cf. “0x74696d | go get considered harmful”, HN).Go1.5からは実験的にVendoringの機能が入り,サードパーティからはDave Chaney氏を中心としてgbというプロジェクベースのビルドツールが登場している.なぜこれらのリリースやツールが登場したのか?それらはどのように問題を解決しようとしているのか?をつらつらと書いてみる. Dependencyの問題 最初にGo言語におけるDependecy(依存解決)の問題についてまとめる.Go言語のDependencyで問題なのはビルドの再現性が保証できないこと.この原因はimport文にある. Go言語で外部パッケージを利用したいときはimport文を使ってソースコード内にそれを記述する.このimport文は2通りの

    motemen
    motemen 2015/06/29
  • Google グループ

    Google グループでは、オンライン フォーラムやメール ベースのグループを作成したり、こうしたフォーラムやグループに参加したりすることで、大勢のユーザーと情報の共有やディスカッションを行うことができます。

    motemen
    motemen 2015/06/15
  • Peter Bourgon · Go: Best Practices for Production Environments

    (This was originally a talk at GopherCon 2014. Find the slides here, and the video here.) (This article has been updated for 2016.) At SoundCloud, we structure our product as an API with many clients. That is, our main website, mobile client, and mobile apps are all first-order clients of a single main API. Behind that API is a universe of services: SoundCloud operates basically as a Service-Orien

    motemen
    motemen 2014/05/05
  • 1