タグ

goとgolangに関するMonMonMonのブックマーク (74)

  • Big Sky :: 書評「Go言語による並行処理」

    O'Reilly Japan, Inc. 様に献頂きました。ありがとうございます。 そして献頂く際にお声を掛けて頂いた、書の翻訳を担当された ymotongpoo さんにもお礼を申し上げます。ありがとうございます。 書の訳は非常に素晴らしく、とても原文が英文であったとは思えないほど綺麗で、読んでいく中で「原文でどの様に表現されているんだろう」といった引っかかりも無く、とてもスムーズに読み進められました。 Go 言語に関わって随分と長くなってきました。初めて Go を知ってからユーザがどんどん増える様を見る事が出来るのは正直に言って非常に嬉しいです。 ふと Go の魅力は何かと聞かれたら幾つか挙げる事が出来ますが、間違いなく選ぶのが「非同期処理の簡単さ」です。これまで多くの開発者が OS スレッドで実現してきた非同期処理を、Go 言語は少ないイディオムとインテリジェントなランタイムを

    Big Sky :: 書評「Go言語による並行処理」
  • goのgRPCで便利ツールを使う - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    goのgRPCで便利ツールを使う - Qiita
  • 一瞬でGoのコンパイルを3倍速くするコマンドがこちらです - Qiita

    go runやgo build した時のコンパイル時間は、プロジェクトが大きくなるにつれて長くなるもの。コンパイルで待たされると、開発効率だけでなく、やる気も落ちてしまいますよね。 そんなときに、以下のコマンドをGoプロジェクトルートで打ってみてください。 一瞬で3倍ぐらい高速化できるはずです。 DONE! ※ rm 打つ前に、$GOPATH を正しく設定しているかどうかは事前に確認ください ※ なんで速くなるの? Goでは、以前にコンパイルしたときの中間ファイルが $GOPATH/pkg 以下に保存されます。中間ファイルがあれば、コンパイル時にそれが再利用されるので速いわけです。ただし、Go自体のバージョンや、ライブラリのバージョンが異なる場合には、再度中間ファイルを生成します。これはCPUをブンブン回すので重い。しかも、再度作られた中間ファイルはなぜか保存されず、古い中間ファイルは消

    一瞬でGoのコンパイルを3倍速くするコマンドがこちらです - Qiita
  • Big Sky :: gRPC のサービスが簡単に作れるライブラリ「lile」

    gRPC は型の強い RPC を色々な言語を使って実装できる仕組みとライブラリです。 Big Sky :: Protocol Buffers を利用した RPCgRPCgolang から試してみた。 grpc/grpc · GitHub gRPC - An RPC library and framework https://github.com/grpc/grpc gRPCGoogle が開... https://mattn.kaoriya.net/software/lang/go/20150227144125.htm とても便利なのですが幾分手数が多いのが難点で、ちょっとしたサービスを gRPC で実装したいと思っていてもそう簡単に作る事が出来ませんでした。 ところが今回ご紹介する lile を使うと、とても簡単に gRPC を使った golang の実装を作れてしまいます

    Big Sky :: gRPC のサービスが簡単に作れるライブラリ「lile」
  • 【翻訳】goroutine の仕組み - まるまるこふこふ

    訳者による概要 Krishna Sundarram 氏の記事「How Goroutines Work」の翻訳です。 「goroutine とは軽量スレッドである」という説明に対して抱くであろう 「どのようにして並行処理を実現しているのか」「既存のスレッド処理と何が違うのか」「なぜ軽量なのか」という疑問を解消する文章です。 とても良い文章なのですが、現在リンク切れになっており、 とてももったいないことだと思ったので、日語に翻訳しました。 原文: How Goroutines Work (2017/12/02 現在、リンク切れ) golang の紹介 もしあなたが golang 初心者で、並行処理(Concurrency)と並列処理(Parallelism)の違いがわからなければ、Rob Pike 氏のトーク (リンク先は英語)を参照してください。約 30 分のトークですが、30分視聴するだ

    【翻訳】goroutine の仕組み - まるまるこふこふ
  • Go の channel 処理パターン集 | Hori Blog

    Hori Blogフリーランスでバックエンドエンジニアとして活動している Ryota Hori のブログです。 最近はテック系記事より雑記ブログ気味。 この記事は Go Advent Calendar 2017 の 1 日目の記事です。 Go の長所に goroutine による非同期処理がありますが、どうしても channel の取り回しで黒魔術化しがちです。少しでも闇を減らしていきたいので、 channel らへんの取り回しについてパターンをまとめました。チートシート的に使えれば嬉しいです。 Go の channel の基礎 入門資料として使いたいので、題に入る前にざっくり基礎を。 定義のパターン channel には capacity という概念があります。 capacity は channel 内でバッファリングしておける容量のことで、 capacity に空きが無い場合は送信側

    Go の channel 処理パターン集 | Hori Blog
  • Treasure 2017 の研修資料は Go を学ぶのに最高だった - kakakakakku blog

    Go 関連のを読んだり,サンプルコードを写経するだけではなく,もっと実践的に勉強したいなと思って調べていたら,VOYAGE GROUP の Treasure 2017 と言うインターンシップの研修資料GitHub に公開されていることを知って,さっそく挑戦してみた.数日間取り組んでみて,とにかく素晴らしかったので,紹介したいと思う.suzuken 先生,素晴らしすぎます! Go入門 GitHub - voyagegroup/talks 学べるテーマ Go研修資料とは言え,幅広いテーマで Go を学ぶことができる点が素晴らしかった.ザッと挙げるとすると以下のようになる.テーマを見るだけで,もうワクワクしてくるのではないだろうか? アルゴリズム実装とテストコード フィボナッチ数 スタック CLI net/http curl 実装 スクレイピング実装 コンカレンシー goroutine

    Treasure 2017 の研修資料は Go を学ぶのに最高だった - kakakakakku blog
  • Goの実装パターン ~ Webサーバ編 ~

    From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE

    Goの実装パターン ~ Webサーバ編 ~
  • A Tour of Goを終えたあなたにおすすめのGoを勉強するためのリソース - すずけんメモ

    今年も夏のインターンで学生にGoの講義をします。多く寄せられる質問が「A Tour of Goを終えたのですが、その後に何をやるのがおすすめですか?」というものです。学生に限らず、言語を学ぶ方はプログラミングそのものに対する慣れやバックグラウンドも違います。そこでなるべくいろんな方の参考になるように、おすすめななりページなり方法なりをまとめてみます。 わりと多くの人におすすめ 「プログラミング言語Go」(Alan A.A. Donovan, Brian W. Kernighan著)です。通称GOPL。 http://www.gopl.io/ 柴田さんによる日語翻訳もあります。 https://www.amazon.co.jp/dp/4621300253 Go言語のイントロダクションから始まり、型・インタフェース・並列性の説明などが丁寧にかかれています。私がGOPLを良いと思う点は、例示

    A Tour of Goを終えたあなたにおすすめのGoを勉強するためのリソース - すずけんメモ
  • Go1.9から使える Monotonic Clocks を試してみた

    先日Go1.9beta1がリリースされました。 Go 1.9 Beta 1 is released! Announcement:https://t.co/lV5nvXwOoR Get it!https://t.co/2LhlOo2EtX#golang pic.twitter.com/zm09DwX93q — Go (@golang) 2017年6月14日 Go 1.9 Release Notes 型エイリアスのサポート、math/bitsパッケージ、 sync.Map型など、 今回のアップデートでも便利そうな機能が追加されます。 詳しくはtenntennさんのGopher Fest 2017参加レポートをどうぞ。 今回のリリースノートを見て、個人的に注目しているのはMonotonic Clocksのサポートです。 他の機能追加はTwitterとかで見かけるけど、 Monotonic Cl

  • Go言語のメモリ管理

    ソフトウェアにとってメモリは不可欠です。 実行する命令も、メモリにロードしなければ実行できません。 ソースコードに書かれた定数値も、いったんメモリにロードしないと使えません。 関数を呼び出すにも、スタックと呼ばれるメモリ領域が必要です。 スタック以外に、ヒープと呼ばれるメモリ領域が必要なこともあります。 今回は、Go言語のプログラマーが作成するプログラムの下で、どのようにメモリが管理され利用されるかを探ります。 Go言語のメモリ管理というとガベージコレクターの話を思い起こすかもしれませんが、ガベージコレクターについては連載では取り上げません。 メモリ確保の旅 コンピューターに接続されている物理的なメモリチップが、どのような過程を経てプログラムで使われるのか、順番に見ていきましょう。 (1): カーネル 最近のオペレーティングシステムでは複数のプロセスを同時に実行できます。 それらのプロセ

    Go言語のメモリ管理
  • オススメの標準・準標準パッケージ20選

    Takuya UedaSouzoh, Inc. (affiliated by Mercari, Inc.) - Go Engineer

    オススメの標準・準標準パッケージ20選
  • REST is not only (web) API interface

    RESTだけじゃなくて他にもインターフェイスは色々あるという話です。 「そうだGo、京都。」で発表。 参考リンクは https://gist.github.com/lufia/79a17579be449cf4e9aad790b58db284 に置きました。

    REST is not only (web) API interface
  • golangのファイルへの読み書きのまとめ

    golangである動作を実現しようとするとしても、 たくさんの書き方があってどれが一番合ってベストなのかわかりませんでした。 ドキュメントを見ても良い情報が得られず、情報を収集するのが苦しかったです。 まだ、比較的新しい言語であるので、ブログやQiitaなど、情報が少ないのが原因だと思います そこで、情報のまとめを発信することで、自分の情報整理と同時に、これからgolangを学ぶ人、 また、今まさに学ぼうとしている人にとっての助けとなるようにしようと考え、 ここにI/O関連の取り扱いや使い方についてまとめようと思います 目次読み込み書き込みする方法と手順ファイルへの書き込み読み込みos.Create, os.NewFile, os.Open, os.OpenFileの違い標準入力/標準出力/標準エラーへの書き込み読み込みメモリへデータへの書き込み読み込みbytes.Buffer / byt

  • Error handling patterns in Go

    One of the main strengths of the Go programming language is its error model. It’s not my favorite—that would be something like this—but it’s still one of the best on the market. Much has been already written about best practices for error handling in Go (Error handling and Go and Don’t just check errors, handle them gracefully are both good resources). In this post I will talk about some error han

  • 【登壇資料】Go並行処理パターン実践入門について話してきました #cm_osaka | DevelopersIO

    西田@大阪です。 クラスメソッドの開発を知る!大阪勉強会 第4回 Go&Elixirでつくる分散アプリケーションで スピーカーとして登壇しました。多くの方にご参加いただきありがとうございました! Go & Elixirに興味のある方が、関西にこれほどおられると思っておらず嬉しい誤算でした。 発表資料 発表内に収まり切らなかった部分もございます(申し訳ありません><)ので、参加された方も資料を読んでいただけると幸いです。 感想 冒頭でも触れましたが、Go & Elixirに興味を持っておられる方が多いのが印象的でした。 懇談会では実際にGoを業務で使われている方などのお話が聞けてよかったです。 少しづつGoが広がっていってるなと感じました。 今後も関西でGo & Elixirを少しでも盛り上げていければと思います。

    【登壇資料】Go並行処理パターン実践入門について話してきました #cm_osaka | DevelopersIO
    MonMonMon
    MonMonMon 2017/05/16
    goの実装パターン
  • cgoがGoのコンパイル速度に与える影響 - Qiita

    はじめに (タイトルはScala の機能がコンパイル速度に与える影響にインスパイアされました。) Goのコンパイル速度の速さはセールスポイントの一つです。しかし、そんなGocgoを使い始めるとコンパイルが途端に遅くなります。あんまりこのあたりについて言及しているエントリがないので書いてみることにしました。 このエントリではサンプルプログラムがいっぱい出てくるので以下のリポジトリにまとめました。 また、コンパイル速度の比較もmakeで行えるようになっています。

    cgoがGoのコンパイル速度に与える影響 - Qiita
  • Big Sky :: golang では変数の宣言位置が大事

    今日こんなツイートをした。 @mattn_jp よろしければベターな理由をm(_ _)m 名前空間を短くする作法なのはわかるのですがメモリやGCやコンパイラなど、どの辺に優しい感じですか? — Ryuji IWATA (@qt_luigi) April 5, 2017 qt_luigi さんからどうしてかを聞かれたので説明したいと思います。 golang では宣言した位置で初めて自動変数としてメモリが確保され、ゼロクリアされます。 for i := 0; i < b.N; i++ { var foo Foo bar, err := doSomething() if err != nil { continue } foo.v = bar fmt.Fprintln(ioutil.Discard, foo) } なので例えばこの様なコードで doSomething() が err を返した場合、

    Big Sky :: golang では変数の宣言位置が大事
  • net/httpで作るGo APIサーバー #1

    GoにはWebサービスを作るためのフレームワークがそれなりの数存在している。 Awesome Go - Web Frameworks ただ、そこまでデファクトというものがあるわけではなく、他の言語と比べると少々乱立気味なのではないかな、という感想を持っている。この記事ではnet/httpを主軸に据え、取替可能な部品となるライブラリを利用してAPIサーバーを作成する方法を紹介する。 長くなりそうなので記事を分けて紹介する予定だけど、今日はアプリケーショングローバルな値をどのように保持するのが良いのかについて書く。 アプリケーショングローバルな値 APIサーバーにはそのアプリケーションにおいてグローバルな値を保持しておきたいケースが多い。例えばAPIサーバーの設定情報だったり、外部APIにアクセスするクライアントだったり、DBへのコネクションだったり、loggerだったり。そういったものを初期

  • Goでかんたんソースコードの静的解析

    1. Goで かんたん ソースコードの 静的解析 2017/02/10(土) @プロ生勉強会 第46回 The Go gopher was designed by Renee French. The gopher stickers was made by Takuya Ueda. Licensed under the Creative Commons 3.0 Attributions license. 2. 自己紹介 メルカリ/ソウゾウ 上田拓也 twitter: @tenntenn ■ コミュニティ活動 Google Cloud Platform User Group (GCPUG) Tokyo Goビギナーズ golang.tokyo Go Conference ■ 業務 GAE/Goでメルカリアッテを作ってます GoGCPコミュニティを盛り上げる仕事 Gopherを描く仕事(LIN

    Goでかんたんソースコードの静的解析