タグ

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

  • Go 言語で API サーバーの開発をはじめるためのライブラリ選定|maco

    こんにちは、まちいろの工藤です。 まちいろでは開発フレームワークに Rails を採用していますが、最近の新規案件では Go 言語を採用してみています。この記事では、Go で開発を始めるにあたって行ったライブラリ選定の中身を紹介したいと思います。 選定にあたっては、awesome-go や Qiita などの記事を参考にしました。 ModulesGo 1.11 から Go modules が導入されたとのことで、素直に Go modules を利用することにしました。特にハマることもなく利用ができています。 Web Application FrameworkgRPC + grpc-gateway or grpc-web ・https://github.com/grpc/grpc-go ・🙆proto でスキーマ駆動開発が可能 ・🙅‍♂️REST API を提供する場合は grpc-ga

    Go 言語で API サーバーの開発をはじめるためのライブラリ選定|maco
    nabetama
    nabetama 2020/01/21
    ]
  • 技術選択編 - #golang で CLI 作るときにいつもつかうやつ - Qiita

    続編 ボイラプレート編 - #golang で CLI 作るときにいつもつかうやつ - Qiita grapi・gex・ery など,今年に CLI を作りまくって見えてきたベストプラクティス集(技術選択編). 基便利パッケージ Cobra - spf13/cobra フラグ処理やサブコマンド・ヘルプメッセージ・補完など,CLI ツールに必要なことはだいたいいい感じにやってくれるライブラリ.有名どころだと docker や kubectl, hugo の実装に利用されている. 使い方イメージ: // cmd/foobar/main.go //---------------------------------------------------------------- func main() { if err := run(); err != nil { fmt.Fprintln(os.

    技術選択編 - #golang で CLI 作るときにいつもつかうやつ - Qiita
  • はじめてのGo言語 - はじめてのGo言語

    目次 序章 まずは触ってみよう インストール ビルド・実行する IDEの紹介 第一章 Go言語の基的な文法 キーワード 基的な型 型の宣言と変換 変数・定数・リテラル 演算子 条件分岐 繰り返し ポインタ ゼロ値 ラベル 第二章 中級者向け パッケージ GOPATHについて go installコマンド 構造体 関数・メソッド 遅延実行 インタフェース 配列 スライス(前編) スライス(後編) マップ init関数による初期化処理 第三章 エラーハンドリング 戻り値によるハンドリング パニック リカバリ 第四章 並列処理 ゴルーチン ゴルーチン間の通信 select文 syncパッケージを利用した同期処理 第五章 テスティング 基的なユニットテスト カバレッジ測定 テクニック集 第六章 通信 ソケット通信 HTTP通信 第七章 便利な標準ライブラリ ファイル入出力 日時に関する

  • The Ultimate Guide to Writing Dockerfiles for Go Web-apps

    You probably want to use Docker with Go, because: Packaging as a container is required if you’re running it on Kubernetes (like me!)You have to work with different versions of Go on the same machine.You need exact, reproducible, shareable and deterministic environments for development as well as production.You need a quick and easy way of building and deploying a final compiled binary.You might wa

    The Ultimate Guide to Writing Dockerfiles for Go Web-apps
  • Go Mockでインタフェースのモックを作ってテストする #golang - Qiita

    Go Mockとは? https://github.com/golang を漁っていたら,Go Mockというものを見つけました。 github上での最初のコミットが2011年なので,かなり昔からあるようです。 名前からして何かのモックを作るライブラリだということは分かります。 READMEを見ると以下のように説明されています。 GoMock is a mocking framework for the Go programming language. It integrates well with Go's built-in testing package, but can be used in other contexts too. どうやらtestingパッケージと一緒に使うようです。 インストール READMEに書いてある通り,インストールしてみましょう。 どうやら,gomockと

    Go Mockでインタフェースのモックを作ってテストする #golang - Qiita
  • Goのパッケージ構成の失敗遍歴と現状確認

    この記事は Gunosy Advent Calendar 2017の5日目の記事です。前回の記事はGunosyのパーソナライズを支える技術 -ワークフロー編-でした。 GoAPIを書くときの問題僕の在籍するGunosyはGoを昔(?)から番採用しておりまして、ノウハウも潤沢に溜まっている企業だと言えます。 しかし、contextの扱いやベストなパッケージ構成、テスト、net/httpでAPIを書くノウハウなどなど、迷うことは多々あります。 これは弊社特有の事情ではなく、Goのサーバーサイドエンジニア全員にとっての問題です。中でも、パッケージ構成をどうすればいいのか(相互参照せずに快適に開発を進められるパッケージ構成とは)を見つけるのは結構難しく、各々のチームにお任せ、という状況です。 今回は上記の問題のうち、パッケージ構成に踏みこんで見たいとおもいます。会社でもよくパッケージ構成をどう

    Goのパッケージ構成の失敗遍歴と現状確認
    nabetama
    nabetama 2017/12/05
  • 稼働中のバッチを監視したくなったら Mackerel Custom Metrics が便利 - Qiita

    この記事は Mackerel Advent Calendar 2016 の 12/13 日の記事です。 はじめに 皆さんは golang で書かれたプロセスの監視はどの様に行われているでしょうか。builderscon 2016 でも登壇された Dave Cheney 御大の gcvis をお使いでしょうか。 確かに gcvis は便利なのですが一つ悩ましい点があり、gcvis 自信がプロセスを起動しないといけないという点にあります。作り上致しかたないのですが、コマンド引数にて起動するプロセスを指定する仕様になっています。つまり起動には gcvis が必要になるのです。監視の際にアプリケーションを止められるのならばいいのですが、そうでないときは使えない事もあります。 ところで昨日 golang で書かれたプロセスを監視/操作するためのツール「gops」をご紹介しました。 この gops で

    稼働中のバッチを監視したくなったら Mackerel Custom Metrics が便利 - Qiita
  • [Deprecated] Go CodeReviewComments 日本語翻訳 #golang - Qiita

    注意 記事は以降更新されません。 https://knsh14.github.io/translations/go-codereview-comments/ こちらに移動しました。 以前にGoを書く機会があったときにレビュアーに「俺に持ってくる前にこれを読んで直してからこい!」 と言われたので、読んだ証拠に翻訳しました。 Go Code Review Comments 原文 go fmt あなたのコードに gofmt を走らせると、自動的に機械的に直すことのできるスタイルの大部分を修正してくれます。 世にあるGoのコードのほとんどすべてが gofmt を使っています。 この文章の残りは機械的に直すことのできないポイントについて解説します。 代わりに goimports を使う手段もあります。 gofmt に加えて必要に応じてimport内に空行をつけたり消したりする機能があります。 Co

    [Deprecated] Go CodeReviewComments 日本語翻訳 #golang - Qiita
    nabetama
    nabetama 2016/08/20
  • Big Sky :: golang の channel を使ったテクニックあれこれ

    golang の channel は他の言語に見ない独特のパラダイムを開発者に提供します。 単純にスレッド間でメッセージングをするだけでもC言語で書けばそこそこの量になったり、慣れていない人であればどう実装すればいいか分からないなんて事もあったと思います。しかし golanggoroutine/channel は、やっている内容の割にとても容易にスレッド間通信やキューイング、処理の受け待ち等を実装できる様になっています。尚、channel をどの様に適用したら良いかについては以下を参照下さい。 Big Sky :: Golang の channel の使い所 golang の特徴と言えば goroutine と channel ですが、その使いどころに悩む人もおられる様です。 goroutine は非同期に実行される処理、channel はその grout... http://mat

    Big Sky :: golang の channel を使ったテクニックあれこれ
    nabetama
    nabetama 2016/07/12
  • Medium

    You can find (just about) anything on Medium — apparently even a page that doesn’t exist. Maybe these stories will take you somewhere new?

  • Ten Useful Techniques in Go - Fatih Arslan

    Here are my own best practices that I've gathered from my personal experiences with dealing lots of Go code for the past years. I believe they all scale well. With scaling I mean: Your applications requirements are changing in an agile environment. You don't want to refactor every piece of it after 3-4 months just because you need to. New features should be added easily. Your application is devel

    Ten Useful Techniques in Go - Fatih Arslan
    nabetama
    nabetama 2016/03/15
  • GoのChannelを使いこなせるようになるための手引 - Qiita

    Go使いたくなる理由の一つに、マルチスレッドプログラミング的なものを高速な言語で安全に実装したいというのがある。Goにおいてそれを支えるのが、自前で実装した軽量スレッドといえるgoルーチンと、mutexなどのロックの代わりに使えるChannelという概念だ。 実際に実装するときに、Goルーチンは難しくないが、Channelを使うのは割と知識と経験が必要なのでここでは、Channelについてすこし詳しく書いてみる。 Message Passing まずは理論から。 Goのチャネルなどのロックを使わない方法の並行処理はMessage Passingと呼ばれている。 以下の英語Wikipediaにあるように数学的な理論にもなっているしっかりした枠組み。 ErlangのActor Modelなどもこの仲間。GoのチャネルとActor Modelは、実は、同等の概念で表現方法が違うだけらしい。 (

    GoのChannelを使いこなせるようになるための手引 - Qiita
  • goからiOSまで一人でアプリ開発をしてたらいつの間にかマインクラフトエンジニアになった話 - Qiita

    by @mixiappwchr おしゃべりマルチとは 今回UUUM株式会社様からアプリ開発の受託をうけ おしゃべりマルチ という音声チャットをやりながら、マインクラフトPE など、ゲームのマルチプレイができるというアプリをリリースさせていただきました。 マインクラフトだけではなく、モンストや、白プロジェクト、その他マルチゲームで使ってもらえると楽しいアプリとなっています。 主な設計 今回 複数のサーバーをくみあわせて、音声チャットマルチプレイを実現しています。 3つのサーバーとアプリが連携 APIサーバー 音声サーバー マイクラプロキシ兼リアルタイムイベントサーバー の3つが協調して動きアプリにサービスを提供します。 来マイクラマルチは同一内WiFIだと気軽にできるのですが、インターネット越しとなると、ルーターのポートを解放したり、なんだかんだ面倒な点が多いのですが、このアプリをいれる

    goからiOSまで一人でアプリ開発をしてたらいつの間にかマインクラフトエンジニアになった話 - Qiita
    nabetama
    nabetama 2015/09/17
  • Vim as Go language IDE

    Shallow musings about computer science and applied mathematics :fire: UPD: JetBrains has an amazing Golang IDE now! 0. Why?There are plugins for Sublime, IntelliJ IDEA, Komodo etc so why do we need to do this for Vim? Honestly, those plugins suck big time - they are hard to install, they are limited, they are not developed at fast enough pace. Don’t get me wrong, I will gladly switch to full-fledg

  • 1