https://gist.github.com/nwiizo/deb8db98114408e2233fa790dd7e0083
![learn Golang for Infrastructure engineer](https://cdn-ak-scissors.b.st-hatena.com/image/square/095a4df41fbb36050891c27cd9be05d3722392f1/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F62a1a5fe9515455c98dd8d9342be9d03%2Fslide_0.jpg%3F12363215)
最近社内でElixirをひっそり布教しようとしている、瀧川です。 弊社の一部プロダクトでは、gRPCでGolangアプリケーションを呼び出す構成をとっています。 それを説明するためにハンズオンをしたので、その一連の流れをこちらにもつらつら書いていきます! 内容は、以下の画像みたいなのを作っていこうと思います。 必要なコードは記事中に載せるのでコピペで動くはずなので、ぜひ実際にやってみてください! そもそもgRPCって? 実践 事前にインストールしてください リポジトリを作成しましょう さっそくProtocol Buffersで通信を定義しましょう GolangのgRPCサーバ作りましょう 定義からGolangのソースコードを生成 生成したGolangのインタフェースを実装したサーバを作成 動作確認 Railsを実装しましょう gRPC定義からRubyのソースコードを生成 呼び出すコードをC
最近Go Modulesを使っていて、だいたいプラクティスが定まってきたのでまとめてみる。 個人的な結論 Go Modulesは積極的に使っていけばいい 幾つか課題はある $GOPATH から出る必要もない $GO111MODULE を適宜設定すればよい どうせ次のGo 1.13からはどこに置こうが関係なくなる 2つのモード $GOPATH/src にプロジェクトを置いていると、今(Go 1.12)の標準動作はGOPATHモードになる。これは、$GOPATH/src 以下からサードパーティパッケージを読み込むこれまでのGoと同様の動作になるということ。 それ以外の場所では go mod コマンドを使ってGo Modulesを利用することができる。これをmodule-awareモードという。go.mod と go.sum を使って依存ライブラリを管理する方式になる。これらのファイルはgo m
144labの入江田です。 今回TinyGoという素敵なプロダクトを試してみました。 TinyGoとは TinyGoは本家Go言語の組み込み向けのサブセット版。 本家Go言語はPOSIX-OSに対する機能依存が大きく、リッチなランタイムを持っています。その為、本来はOSを持たない組み込み用途には不向きでした。 TinyGoはPOSIX-OSに依存する機能を簡易的な実装で代用しつつLLVM(コンパイラを作る為のフレームワーク)を使って組み込み向けアーキテクチャをサポートするGo言語のコンパイラです。 つまりサポートするCPUアーキテクチャはLLVMがサポートするものを前提にしています。 リポジトリ https://github.com/tinygo-org/tinygo ドキュメント https://tinygo.org/ サポートアーキテクチャ ARMのCortex-M0系 WebAsse
このシリーズ目次 Go言語を学習し始めて、簡単なCRUDアプリをクリーンアーキテクチャで作成するまで①←今ココ Go言語を学習し始めて、簡単なCRUDアプリをクリーンアーキテクチャで作成するまで②|Wano Group Developers Blog Go言語を学習し始めて、簡単なCRUDアプリをクリーンアーキテクチャで作成するまで③|Wano Group Developers Blog はじめに こんにちは。 2019年2月からWanoに入社した成川と申します。 今回はGo言語初学者の私がだいたい2、3週間くらいで ①Goの基本文法を学習 ②簡単なCRUDのWebアプリケーション作成 ③クリーンアーキテクチャで②のアプリ作り変え の3ステップで学習を進めましたので、そのプロセスをまとめておこうと思い、 この記事を書かせてもらっています。 (この記事は①の部分になります) ①Goの基本文法
type Foo struct { Bar string `buz:"qux" iyan:"bakan"` } における `buz:"qux" iyan:"bakan"` を良い感じで buz => "qux", iyan => "bakan" のように取得したいというケースでは以下のようにするとよい: tagKeyValue := reflect.StructTag(`buz:"qux" iyan:"bakan"`) buz := tagKeyValue.Get("buz") // => "qux" iyan := tagKeyValue.Get("iyan") // => "bakan" という具合でreflect.StructTagを使うと良い感じでできます.よかったよかった. ……クソ,なんのためにこんなものを書いてしまったんだ!!!! 良いお年を!!!! github.com
この記事は Go2 Advent Calendar 2018 の 24 日目の記事です。 私は組込ソフトエンジニアで、職場にはレガシーな環境が多く残っています。 そして、ビルドツールが古かったりして 2MB にも満たないバイナリを作るのに数十分かかったりしています。 時間がかかる主な理由は、複数 CPU による分散コンパイルが実現されてない(場合が多い)から、です。 ということで、 Go 言語の goroutine を用いて CPU をなるべく使う形のタスクランナーを書くことが多いわけですが、最近は gRPC 経由で複数のマシンを活用する分散ビルド環境を作っているのでまとめました。 動くサンプルを紹介しつつ、徐々に分散ビルドになるように段階的に進めていきます。 分散処理のイメージ 実際に仕事で使っているプロジェクトの分散 build は以下の画像のようになります。 1 CPU で普通にビル
はじめに こんにちは、Stackdriver担当者です。この記事は Go Advent Calendar 2018 *1の最終日のエントリです。昨日は @yasuo-ozuさんの「Go言語は沼」 でした。 ところで今日はクリスマスですね。自分宛も含めてまだプレゼントを送っていない方はこの本を送るのがおすすめです。 Go言語による並行処理 作者: Katherine Cox-Buday,山口能迪出版社/メーカー: オライリージャパン発売日: 2018/10/26メディア: 単行本(ソフトカバー)この商品を含むブログを見る 年末年始休暇に読んでもらってGo言語による並行処理への理解を深めてもらいましょう! さて、今日は準標準パッケージの "golang.org/x/text/message" の紹介です。本文に出てくる雑なサンプルのリンクを貼っておきます。 golang.org/x/text/
続編 ボイラプレート編 - #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.
« Let's Encrypt を簡単操作できる CLI、Lego が MyDNS に対応した。 | Main | VimConf 2018 に行ってきた。 » gobrain という Golang だけで実装されたニューラルネットワークを見つけたので遊んでみました。 GitHub - goml/gobrain: Neural Networks written in go https://github.com/goml/gobrain 作りもシンプルですし、扱い方も簡単なのでちょっとしたサンプルを書くのには向いてると思います。例えば FizzBuzz であればこんな感じ。 package main import ( "math/rand" "github.com/goml/gobrain" ) type FizzBuzz []float64 func (fizzbuzz FizzBuzz)
こんにちは、Wantedly Visitのサーバーサイドエンジニアの一條(Github: @rerost Twitter: @hazumirr)です。 みなさん、The Go Playgroundを使ってますか? 僕は元々Railsエンジニアだったのですが、ここ最近ずっとGoを書いています。元々Goを書いていていたわけではないので、Goの動作の確認などのために、Playgroundをよく使っています。 これは非常に良くて、Railsではrails c�でコードを試していたように、PlaygroundでGoのコードを試すことができます。 ただ、Playgroundでは外部パッケージが使えず、ちょっとした動作確認などができませんでした。他のGolangエンジニアにざっくり解決策を聞いてみたところ 試すためのレポジトリを作ってしまうそのパッケージ用のテストを書く(書いたテストはすぐ捨てられるよう
Student Go #1
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
個人プロジェクトにて、先日リリースされた Go 1.11 の Modules (vgo) を使ってみました。 移行自体はスムーズにできたのですが、CircleCI でのキャッシュのやり方がそこそこ重要かも?と思ったので記事を書きました。 dep から Modules への移行 まずは dep で管理していた依存パッケージを Modules に移行します。 移行は簡単で、以下のコマンドを実行するだけです。 $ export GO111MODULE=on $ go mod init $ go mod download # go.sum を生成するため これによって go.mod と go.sum が生成されるためこれらを git の管理下に入れれば OK です。 $ ls go.mod go.sum Gopkg.lock Gopkg.toml main.go 後は dep 用のファイルを削除し
« Software Design 2018年7月号「Vim 絶対主義」の執筆に参加しました。 | Main | ボタンを押したら golang の if err... を自動入力 » tensorflow といえば Python と思っておられる方も多いのではないでしょうか。間違いではないのですが、これは初期に作られた Python 向けのバインディングに研究者達が多く食いついた結果に過ぎないと思っています。実際 tensorflow は現在 C言語、C++、Python、Java、Go から利用する事ができ、最近では JavaScript にも移植されています。筆者自身も Go で tensorflow を使ったシステムを構築し、運用保守しています。問題も発生せず機嫌良く動いています。学習の利用部分は GPU のパフォーマンスに依存しますが、それ以外の部分については各言語の実装に依存し
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く