タグ

golangに関するgam-22のブックマーク (7)

  • Go が for ループをやめるために足りないもの - methaneのブログ

    ジェネリクスの話題になると常に出てくるのが、 for ループの代わりに関数型スタイルで書きたいという要望です。 for ループで書くのは、可読性が悪く、筋力がいるとまで言う人もいます。 しかし、ジェネリクスが追加されても、このスタイルのプログラミングは実用的にはなりません。ジェネリクス以外にも足りない部分がたくさんあるのです。 例えば、次のようなコードを考えてみましょう。 type PointLog struct { ID int64 UserID int64 Point int32 } // 今の書き方 func UserTotalScore(log []PointLog, userID int64) int64 { var t int64 = 0 for _, p := range log { if p.UserID == userID { t += int64(p.Point) }

    Go が for ループをやめるために足りないもの - methaneのブログ
    gam-22
    gam-22 2017/09/24
    関数型スタイルの書き方を実現するために、コンパイル時間やバイナリサイズなど犠牲にするものが多いというのは、その通りだなぁという気がする
  • golangにgoto文が存在する理由 - Qiita

    goto文といえばどこにでも飛べるという圧倒的自由度を誇る分、 文の流れを追いづらくなるといった可読性の問題等から基的に使うべきでなく、 使った方が見やすい場合でも代替の方法があるならそちらを使うべきといったイメージがありました。 おそらく大半のプログラマもそんな感じだと思います。 しかしモダンでイケイケなことで定評のあるgolangにおいてもgoto文がサポートされています。 統一しただけとはいえ、while文すら捨てた新進気鋭のgolangが、 30未満という洗練された予約語の中にgoto文を残したわけです。 もちろん言語界隈はgo繋がりというだけで採用されるコネ社会ではありません。 goto文=悪というプロパガンダを刷り込まれた我々雛鳥世代が黙っているはずはありません。 ピーチクパーチク騒ぐに違いないことは歴史が証明しています。 Effective Go的なドキュメントにgoto文

    golangにgoto文が存在する理由 - Qiita
    gam-22
    gam-22 2017/07/31
    Go例外処理できないのか。それだとgoto必要だなぁ...
  • Go 1.6 is released - The Go Programming Language

    Andrew Gerrand 17 February 2016 Today we release Go version 1.6, the seventh major stable release of Go. You can grab it right now from the download page. Although the release of Go 1.5 six months ago contained dramatic implementation changes, this release is more incremental. The most significant change is support for HTTP/2 in the net/http package. HTTP/2 is a new protocol, a follow-on to HTTP t

    Go 1.6 is released - The Go Programming Language
  • Go pprof 入門編 (CPU Profile とコマンドラインツール)

    このエントリーは、 KLab Advent Calendar 2015 の17日目の記事です。 pprof は Go の標準ライブラリにあるプロファイラです。 CPUを使用している部分を見つけるだけでなく、CPUを使ってないのにレイテンシが悪化するケースやメモリリークを発見したり、長時間安定して動くサーバープログラムを開発するのにとても便利です。 今日から3日間の連載でこの pprof の使い方や仕組みについて見て行きます。最初は一番基となる CPU プロファイルの取得方法と、 go tool pprof の使い方を説明します。 Note: Macでの注意点 Mac OS X の Mavericks 以前は、 GoCPUProfiler が利用している SIGPROF シグナルに問題があり、 CPU プロファイルを取るためにカーネルにパッチを当てる必要がありました。 この問題は E

    Go pprof 入門編 (CPU Profile とコマンドラインツール)
    gam-22
    gam-22 2015/12/24
    良記事
  • Big Sky :: golang の sync パッケージの使い方

    golang と言えば非同期に特化した言語ですが、慣れない内は簡単な非同期しか使えません。しかし sync パッケージを知る事でもっとカジュアルに、かつ確実な非同期処理を行う事が出来る様になります。 今日はそんな sync パッケージについて説明してみたいと思います。 sync.Mutex ご存じ sync.Mutex です。皆さんが一番使う排他制御だと思います。 package main import ( "fmt" "runtime" "sync" "time" ) func parallel(wg *sync.WaitGroup) { fmt.Println("博") time.Sleep(100 * time.Millisecond) fmt.Println("多") time.Sleep(100 * time.Millisecond) fmt.Println("の") time.

    Big Sky :: golang の sync パッケージの使い方
    gam-22
    gam-22 2015/09/20
    とりあえず sync.Mutex を使えればなんとかなる…かな…??
  • #C88 Golangのマスコット「Gopher」のコスプレした人がいた件の詳細まとめ #gopher - id:bash0C7の進捗 過去アーカイブ[〜2019-02-23]

    この夏のコミックマーケット88で、Golangのマスコット「Gopher」のコスプレした人がいたらしく写真が数枚あがっていました。 #golang #gopher pic.twitter.com/GLXDTDPVGB— イクシル (@ixl_jp) 2015年8月16日 . @mattn_jp すごいのいたwww pic.twitter.com/3MWYHHhCor— MURAOKA Taro (@kaoriya) 2015年8月16日 それはわたしです。 今回のテーマ 昨冬はこういう感じでしたが、まったく同じのはどうかなーと思って一工夫加えました。 今回のテーマは「夏」として、先のGo Conference 2015 summerでの麦わら帽子Gopherをイメージしました。 gocon.connpass.com なので、麦わら帽子を被っております。 他の工夫点 麦わら帽子だけではありま

    #C88 Golangのマスコット「Gopher」のコスプレした人がいた件の詳細まとめ #gopher - id:bash0C7の進捗 過去アーカイブ[〜2019-02-23]
  • ISUCON4 予選で workload=5 で 88000点出す方法 (lily white 参戦記) : DSAS開発者の部屋

    ISUCON4 予選1日目に、 lily white というチームで参戦してきました。 試合中に 62000 点は出していたのですが、最終的に提出したスコアは 60344 点でした。 以降、予選終了までと、その後に気づいたさらにスコアを上げる方法について書いていきます。 実際の提出時のコードは methane/isucon4q-go リポジトリの "final" タグを見てください。 準備 (~前日) 予選方式が発表された時点で、 isucon3 予選と同じ方式だったので、有効な作戦もほぼ同じになる事が予測できました。 具体的には以下のとおりです。 PIOPS な EBS を使わないので、性能が不安定なディスクがネックになる問題は無いでしょう。 1インスタンスのみを使うということから、ネットワーク帯域がネックになる可能性も無いはずです。 ほぼ確実に CPU ネックな問題が出るはずです。 ア

    ISUCON4 予選で workload=5 で 88000点出す方法 (lily white 参戦記) : DSAS開発者の部屋
  • 1