タグ

Golangに関するprogrhymeのブックマーク (20)

  • GitHub - dariubs/GoBooks: List of Golang books

    Awesome Go Books Awesome Go Books Starter Books 2018 - Learning Go Free 2018 - Get Programming with Go 2019 - API Foundations in Go 2019 - Go for Javascript Developers Free 2019 - The Go Workshop 2019 - Head First Go 2020 - How to Code in Go 2021 - Learning Go: An Idiomatic Approach to Real-World Go Programming 2022 - Go, from the beginning Free 2022 - Practical Go Lessons Free 2022 - Pro Go 2022

    GitHub - dariubs/GoBooks: List of Golang books
  • Go言語でプラグイン機構をつくる

    dullgiulio/pingo Go言語でのプラグイン機構の提供方法は実装者の好みによると思う(cf. fluentd の go 実装におけるプラグイン構想).Go言語はクロスコンパイルも含めビルドは楽なのでプラグインを含めて再ビルドでも良いと思う.が,使う人がみなGo言語の環境を準備しているとも限らないし,使い始めてもらう障壁はなるべく下げたい.プラグインのバイナリだけを持ってこればすぐに使えるという機構は魅力的だと思う. Go言語によるプラグイン機構はHashicorpの一連のプロダクトやCloudFoundryのCLIなどが既に提供していてかっこいい.net/rpcを使っているのは見ていてこれを自分で1から実装するのは面倒だなと思っていた. dullgiulio/pingoを使うと実装の面倒な部分を受け持ってくれて気軽にプラグイン機構を作れる. 使い方 サンプルに従ってプラグインを

  • Introducing A Cross-Platform Debugger For Go | Mailgun

    We use Go for a lot of our server development here at Mailgun, and it’s great. Coming from Python, though, there is one thing I really missed:

    Introducing A Cross-Platform Debugger For Go | Mailgun
    progrhyme
    progrhyme 2015/04/21
    めっちゃ捗りそう。/ Introducing a cross-platform debugger for Go :
  • Go言語のCLIツールのpanicをラップしてクラッシュレポートをつくる

    mitchellh/panicwrap Go言語でpanicが発生したらどうしようもない.普通はちゃんとテストをしてそもそもpanicが発生しないようにする(もしくはトップレベルでrecoverする).しかし,クロスコンパイルして様々な環境に配布することを,もしくはユーザが作者が思ってもいない使いかたをすることを考慮すると,すべてを作者の想像力の範疇のテストでカバーし,panicをゼロにできるとは限らない. panicが発生した場合,ユーザからすると何が起こったか分からない(Go言語を使ったことがあるユーザなら「あの表示」を見て,panicが起こったことがわかるかもしれない).適切なエラーメッセージを表示できると良い.開発者からすると,そのpanicの詳しい発生状況を基に修正を行い,新たなテストケースを追加して二度とそのバグが発生しないようにしておきたい. mitchellh/panicw

    progrhyme
    progrhyme 2015/04/17
    mitchellh/panicwrap というライブラリでできる / Go言語のCLIツールのpanicをラップしてクラッシュレポートをつくる | SOTA :
  • go-cli: ドキュメントとともにコマンドラインツールを作る - 詩と創作・思索のひろば

    hub-pr を作るとき、(ghq などで使っていた)codegangsta/cli ではなく新しいライブラリを試してみようと思って mitchellh/cli を使ってみたけど、何かしっくりこないものがあったので、せっかくだし、と自作してみた。今回の要件は以下のとおり。 (go や git のように)サブコマンドがある コマンドラインオプションの解析には標準の flag パッケージをつかう コマンドを追加するのが面倒でない で、go-cli(ドキュメント)。 コマンドの実装 hub-pr のソースコードが一番のサンプルだけど、コマンドは以下のような関数で表現される。 func doCheckout(flags *flag.FlagSet, args []string) error { 各コマンドの実装は初期化された *flag.FlagSet とコマンドの引数(プログラムの第1引数がコマ

    go-cli: ドキュメントとともにコマンドラインツールを作る - 詩と創作・思索のひろば
    progrhyme
    progrhyme 2015/04/16
    CLI作成用ライブラリ / go-cli: ドキュメントとともにコマンドラインツールを作る - 詩と創作・思索のひろば /
  • 0xdabbad00 - Looking for security trouble spots in Go code

    Different languages have certain areas where mistakes are commonly made, and which code auditors focus on. With C, you might grep for strcpy and memcpy. With ruby, you might look for regex that use ^ and $ instead of \A and \z. The use of those functions or idioms are not always vulnerabilities, but are good places to check first. I decided to look for such trouble spots for Go (golang). I did not

    progrhyme
    progrhyme 2015/04/16
    はめっちゃセキュリティ問題が少ない(少なかった)という話のようだ。/ 0xdabbad00 - Looking for security trouble spots in Go code /
  • go-timeoutの話

    mackerel-agent 監視対象サーバーにインストールされるメトリクス投稿用のGo製のプログラム 1分毎にMackerel体のAPIサーバーにメトリクスをPOST デフォルトで各種メトリクスを自動投稿。pluginによる拡張も OSS https://github.com/mackerelio/mackerel-agent mackerel-agentがやっていること 大きく2つのgoroutine metricsのHTTP投稿のためのgoroutine キューの管理、エラー処理等 毎分メトリックを収集管理をするgoroutine 複数のgoroutineを立ち上げてメトリックを取得 チャンネルをキューのようにして通信 Goで書くのに大分向いてる プラグインによる拡張 公式プラグインによるメトリック追加 こちらもGo製 & OSS(p-rお待ちしています) https://gith

  • Big Sky :: Re: Go で channel が close してるかどうか知りたい というアンチパターン

    « golang のパッケージが Google Code に依存しているか調べるコマンド作った。 | Main | C++ 向けの扱いやすい json ライブラリ μjson » Goでchannelがcloseしてるかどうか知りたい というアンチパターン - beatsync.net そもそもGoのchannelがcloseしてるかどうかを知りたいっていう理由は、だいたい「Goのchannelはナイーブだから」というところに起因するのはないかと思います。 https://beatsync.net/main/log20150325.html golang には元々 closed() という、channel が閉じられているかどうかを返す組み込み関数がありました。しかし廃止されました。 closed は API としては目的を達成出来ているのですが、builtin が1つ増える、channe

    Big Sky :: Re: Go で channel が close してるかどうか知りたい というアンチパターン
  • Go用のGoogle製のGUIツールキットgxuiのインストール - Qiita

    GoogleGo用の新しいGUIライブラリのgxuiをリリースしました。 ソースコードを見て分かる特徴 ボタン、テキスト入力、ツリーコンポーネントとかがありそう ツリーアダプタ的なクラスがある。直接ツリーコンポーネントに要素を追加するんじゃなくて、MVC的な作り? テーマが切り替えられる。darkというのが最初から組み込まれている。色を変えるぐらいならすぐできそう。ちなみに、テーマといいつつ画像データはなくてフルソースコード。 ベースはOpenGL。 C拡張を使っているのでクロスコンパイルは簡単ではなさそう。 Macへのインストール MacOSX 10.9+Golang 1.4.2(公式バイナリ)で試しています。 glewというライブラリが必要そうなので、Sourceforgeからtarballをダウンロードしてきてインストールします。

    Go用のGoogle製のGUIツールキットgxuiのインストール - Qiita
    progrhyme
    progrhyme 2015/03/17
    早速試している人がいた。/ Go用のGoogle製のGUIツールキットgxuiのインストール - Qiita :
  • key-amb/gake · GitHub

    README.md Gake - Make by Go This is a GNU make alternative written by Golang. TOC Concept Key Features Milestones Contributors are welcome! Concept In many cases, we do not have to write a Makefile in golang. However we need building systems in other programming languages. Gradle is a great building tool for software, but is somewhat heavy because it is based on Java technology and especially on

    key-amb/gake · GitHub
    progrhyme
    progrhyme 2015/03/15
    とりあえず勢いで #Golang によるビルドツールのリポジトリ作ってみたぞ。Go + Make で Gake。何も実装してないけど / "key-amb/gake"
  • Google グループ

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

    progrhyme
    progrhyme 2015/03/15
    によるビルドツールの議論、golang-nuts の Googleグループにあった。全部は読めないけど、Make があるのに別の使う理由ないでしょってのはまあわかる / Build Systems -
  • Big Sky :: THE GO TOOL

    先日、Go言語開発チームはリポジトリ内にあった殆どのMakefileを削除した。私(訳者)は混乱したし不安にもなった。しかしそれは私がこれまでの習慣と異なる場面に遭遇した事による物だと気付いた。その事を色濃く書かれたいる記事があったので紹介したい。Go言語を知らない人でも面白く読めると思います。 Are You Fuckign Coding Me!? - The go tool http://areyoufuckingcoding.me/2012/02/14/the-go-tool/ 訳を許諾してくれたnu7hatchに感謝したい。(Thanks to nu7hatch) THE GO TOOL 毎週リリースされる最新版に新しいgoコマンドが導入され話題になっていたので、ちょっとこれについて書くことにした。 私は初め、このgo toolを統一しようというアイデアを聞いた時、少し懐疑的にな

    Big Sky :: THE GO TOOL
    progrhyme
    progrhyme 2015/03/15
    Why most of Makefiles disappeared in Golang? 面白かった。 / "Big Sky :: THE GO TOOL"
  • GitHub - gizak/termui: Golang terminal dashboard

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - gizak/termui: Golang terminal dashboard
    progrhyme
    progrhyme 2015/03/12
    このデモすごいな - gizak/termui :
  • 神に近づくx/net/context (Finding God with x/net/context)

    This document discusses different approaches to building an authentication middleware in Go web applications. It begins with using the standard library, then explores Goji and its request context. It settles on using the x/net/context package and kami router, which allow sharing database connections and authentication objects across requests and tests through the request context. Middleware is def

    神に近づくx/net/context (Finding God with x/net/context)
    progrhyme
    progrhyme 2015/03/12
    Gunosyの #golang WAFの話し。 - 神に近づくx/net/context (Finding God with x/net/context)
  • 実例で学ぶGoプログラム開発

    Handling a tremendous amount of images with Fastly / Yamagoya Traverse 2020

    実例で学ぶGoプログラム開発
    progrhyme
    progrhyme 2015/03/11
    よかった。- 実例で学ぶGoプログラム開発 // Speaker Deck :
  • Dependencies & vendoring - Google グループ

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

    progrhyme
    progrhyme 2015/03/11
    Dependencies & vendoring - Google グループ :
  • Go でコードを書く時のかゆいところに手が届く goquickfix というのを書いた - 詩と創作・思索のひろば

    go run や go test でコードを試しながら書きながら……というフェーズでは、以下のような状況によく遭遇することと思います: デバッグプリント用のコードを削除したら、"log" や "fmt" パッケージが不要になって imported and not used: "log" と言われた。まだ使うかもしれないのでいちいち消したくない。 同様に、コードを整理したところ使っていない変数がでてきて i declared and not used と言われた。まだ使うかも(ry 出来上がりのコードの品質を高く保つには便利な機能ですが、試行錯誤をしている段階ではけっこうな障害になります。そこで goquickfix。 go build が通らないコードに goquickfix をかければ、コードを書き換えて go build 可能にしてくれます: goquickfix -w hoge.go

    Go でコードを書く時のかゆいところに手が届く goquickfix というのを書いた - 詩と創作・思索のひろば
    progrhyme
    progrhyme 2015/03/10
    Goは未使用のパッケージや変数を許してくれないので、こういうのが便利みたい。 - Go でコードを書く時のかゆいところに手が届く goquickfix というのを書いた - 詩と創作・思索のひろば /
  • Goでアロケーションに気をつけたコードを書く方法 : DSAS開発者の部屋

    GoPythonのようなLLと比べると実行速度は速いのですが、GCは特別速いわけではないので、相対的にGCがパフォーマンスに与える影響は大きくなります。 また、Java に比べると、一時オブジェクトなどのために頻繁にヒープアロケーションを行うとGCの停止時間が長くなりがちですが、一方でヒープアロケーションを避けたプログラミングがしやすい言語でもあります。 MySQL ドライバのような低レイヤーのライブラリを作る場合、アプリケーション側の性能要件を勝手に決めることができないので、現実的な範囲でアロケーションを減らす努力をするべきです。 ということで、前回の記事 で紹介したプレースホルダ置換を実装するにあたって経験した、アロケーションに気を使ったプログラミングについて、チューニングする手順やコード上のテクニックを紹介したいと思います。 1. まずは正しく動くものを作る go-sql-driv

    Goでアロケーションに気をつけたコードを書く方法 : DSAS開発者の部屋
    progrhyme
    progrhyme 2015/03/09
    チューニング例 "Goでアロケーションに気をつけたコードを書く方法"
  • Go言語での構造体実装パターン

    Go言語での構造体実装は、埋込や独自コンセプトのインターフェースといったGo言語独自の機能を理解して行う必要があります。 今年からGo言語を始めましたが理解が曖昧なままだと実装に迷うことが何度かありました。今回よい機会なので、Go言語での構造体実装パターンとしてまとめてみることにしました。 構造体実装パターン 実装パターンの洗い出しとして、GoFデザインパターンをGo言語で実装する手法をとりました。 その中で繰り返し現れる実装をGo言語での構造体実装パターンとしてまとめてみました。 コンストラクタ関数 エクスポートによるアクセス許可 インターフェースによるポリモフィズム 構造体によるポリモフィズム 構造体によるサブクラス・レスポンシビリティ 構造体による移譲 関数による移譲 以下、それぞれのパターンを解説していきます。 コンストラクタ関数 Go言語には構造体のコンストラクタがないため、構造

    Go言語での構造体実装パターン
    progrhyme
    progrhyme 2015/03/08
    Go言語でのOOP実装パターンを考えようかと思ったけど、どうも既に網羅されてそう。 "Go言語での構造体実装パターン - Thinking-megane"
  • 1