kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Go

Gophercises: 実践的な20種類のエクササイズで Go を学ぼう

Go

もっと Go を学びたくて学習コンテンツを探しているぞーという人におすすめできる「Gophercises」を紹介する❗️計20種類あるエクササイズ(どれも楽しい)をほぼ全て動画を観ながら写経して,とにかく楽しかったのでまとめることにした 動画を観ながらコード…

blank-go: Go で動く AWS Lambda 関数に入門しよう

AWS Lambda 関数を Go ランタイムで動かす Hello World レベルの初学者コンテンツを探していて,ドキュメントにも載っている blank-go プロジェクトがお手軽に使えて良かったので紹介したいと思う❗️初学者に教えるときに使えるぞ〜 \( 'ω')/ github.com ち…

Air: Go アプリケーションでホットリロードをする

Go

Air は Go で実装されたアプリケーションで「ホットリロード」をするツールで,Go コードなど関連するファイルの変更を監視して,変更があったら自動的にビルドをしてアプリケーションを再起動できる.例えば Go で API を開発しているときに,コードを修正…

testing/fstest: Go でファイルシステムに依存したテストを書く

Go

Go で testing/fstest を使うと,ファイルシステムに依存したテストコードを書くときに実際のファイルシステムへの依存度を減らせる.テストコードを書こうとすると,テスト項目(バリエーション)ごとにファイルを用意する必要があるため,ファイルの管理が…

go test -short で長時間実行されるテストをスキップする

Go

go test でテストを実行するときに -short オプションを付けると実行対象のテストを減らせる. 例えば,長時間実行されるテストがあった場合に毎回全体の実行を待つのではなく,一部のテストをスキップすることで時間短縮できる.開発中に素早くフィードバッ…

Learn Go with Tests: テスト駆動開発を体験しながら Go を学ぼう

TDD(テスト駆動開発)を体験しながら Go を学べる学習コンテンツ「Learn Go with Tests」を紹介する❗️全てのコンテンツを実施してみて,非常に良かったのでまとめることにした Go に入門できる TDD のサイクル (Red / Green / Refactor) を体験できる コン…

go-approval-tests: Go で「承認テスト」を実装する

Go

Approval Tests というツールセットを使うと簡単に「Approval Testing(承認テスト)」を実装できる.Approval Testing では,スナップショットテストのように "結果全体を意識した" テストコードを記述する.GitHub には Golden master Verification Librar…

コピペのためのコマンドラインツール clipboard を試した

Mac / Windows / Linux など,クロスプラットフォームで,コピペができるツールを探していて,Go で書かれた clipboard を試した.clipboard をインストールすると gocopy コマンドと gopaste コマンドが使えるようになる. github.com Mac / Linux サンプル…

Fluentd / Embulk / Elasticsearch / Digdag を学ぶのに最高な「データ分析基盤構築入門」を読んだ

出版されてから少し時間がたってしまったけど,「データ分析基盤入門」を読み終えた.ページ数が多く,持ち運ぶようなサイズではないので,家でちょこちょこ読み進める感じになってしまって,想定以上に時間がかかってしまった. データ分析基盤構築入門[Flu…

fluent-logger-golang を使って Go で Fluentd にログを転送する

Fluentd でログを収集する場合,例えば nginx のアクセスログであれば in_tail で転送したりするけど,アプリケーションログなら選択肢として in_tail だけじゃなくて in_forward もある.アプリケーションから直接 Fluentd にログを転送できる in_forward …

Treasure 2017 の研修資料は Go を学ぶのに最高だった

Go

Go 関連の本を読んだり,サンプルコードを写経するだけではなく,もっと実践的に勉強したいなと思って調べていたら,VOYAGE GROUP の Treasure 2017 と言うインターンシップの研修資料が GitHub に公開されていることを知って,さっそく挑戦してみた.数日間…

「みんなのGo言語」には現場で使える実践テクニックが本当に書いてあった

発売されたのは約1年前だけど,最近仕事で Golang を書いているので,実践的なテクニックを学ぶために今さらながら「みんなのGo言語」を読んだ.WEB+DB PRESS のようなカジュアルさのある本で,1日でサクッと読むことができた.読み終わった後に,学んだこと…

Golang でジョブのスケジューリング実行ができる JobRunner を試した

Go

最近 Golang でジョブを非同期にスケジューリング実行するような仕組みを実装していて,要件に合っていた JobRunner を使った.特徴としては,様々なスケジューリングを定義できる点と,API を起動してプロセスを常駐させる点にある. github.com 基本実装 …

The Go Blog : JSON and Go を読んだ

Go

今さらながら The Go Blog : JSON and Go を読んで,Golang で JSON を扱う方法を学んでいた.Golang を実践的に書いている人にとっては初歩的すぎる内容だけど,個人的にメモを残しておく. JSON and Go - The Go Blog encoding/json の json.Unmarshal を…

golang.tokyo #3 に参加してパフォーマンスの話を聞いてきた

先週 golang.tokyo #3 に参加した.抽選倍率2倍だったからダメかもなぁ…!と思って申し込んだら当たった. テーマは「パフォーマンスチューニング」だったけど,「パフォーマンスチューニング」とは違うような話もあった.エウレカの話も聞きたかったから残…

Go で日付をフォーマットする場合は "2006-01-02" と書く

Go

Go で日付をフォーマットして出力する場合,time パッケージの独特なフォーマット定義を覚える(慣れる)必要がある.最初サンプルコードで 2006-01-02 15:04:05 って日付を見たときに,まさかこれがフォーマット定義だとは思わなかった.ようするに年を出力…

Gopher Night #1 とShibuya.go #2 に参加して Go に対する意識を高めてきた

まとめるのが遅くなってしまったけど,先週と今週で Go 関連の勉強会に2回参加してきたので,簡単に. eure.connpass.com shibuyago.connpass.com Gopher Night 「ごもく会」でお世話になってるエウレカ社での開催だった.参加枠を見ると80人以上で大きなイ…

「ごもく会 #3」で Togoo CLI を作った話をしてきた

今日は「ごもく会 #3」に参加してきた.皆勤賞で毎回楽しく過ごさせてもらってます! eure.connpass.com LT した 懇親会の中で LT 大会があったので「Togoo : Go で CLI を作って学んだこと」というタイトルで Togoo の話をしてきた.本当に Go ビギナーでも…

「ごもく会 #2」で gin と blink(1) を組み合わせてライトを点灯させた

昨日は「ごもく会 #2」に参加してきた!1日遅れたけどレポートを書いている. 前回と似たような構成で,もくもく課題が出題されたり,Interface の解説をしてくれたり,ライブコーディングで API を実装するのを見せてくれたりして,単純なもくもく会とは違…

Go で作った TODO 管理 CLI : Togoo v0.1.0 をリリースして学んだことなど

Go

Go の勉強で作っている Togoo の基礎機能が最低限揃ったので v0.1.0 としてリリースしてみた!(GitHub で Release を打っただけだけど) 期間的には約2週間ぐらいで,平日夜や休日などに時間を捻出しながらで進めていた.Go を勉強し始めて約1ヶ月ってこと…

Go と Travis CI を連携したり Golint を実行してみたり

Go

昨日に引き続き Togoo を少し開発している.昨日作ったプロトタイプを会社で使ってみたら普通に使えて良かった. 自分で作ってドッグフーディングができるのって良いことだなー! Go でテストを書く 試しに Go でテストを書いてみた.JUnit や RSpec に慣れ…

Go で TODO を管理する CLI を作ろうと思っていて

Go

A Tour of Go を一通り終えたので,実際に何か作ってみようと思っていたときに,会社のデスクの上にタスクをメモった付箋が大量に貼ってあることに気付いて「よし!この TODO を管理する CLI を作ってみよう」と思い立ったのが3日前のこと. Go ビギナーだか…

「ごもく会 #1」でもくもくしてきた

今日は「ごもく会 #1」に参加して Go でもくもくしてきた!単にもくもくするだけじゃなくて,エウレカ社のエンジニア(先生)に自由に質問ができたり,Go のライブコーディングが見れたりもして楽しかった.初心者だからライブコーディングは勉強になった!…

Go の defer を試した

Go

最近 A Tour of Go を進めていて,defer というステートメントを知った.The Go Blog に詳細な解説記事が載ってたので,読みながら動かしてみた結果を簡単にまとめておく. Defer, Panic, and Recover - The Go Blog defer とは 関数の終了時に遅延実行する…

go-blink1 で blink(1) を点滅させる

結構苦労したけど Go で blink(1) を操作できるようになったー!!! blink(1) blink(1) は今年の夏頃に買った光る USB デバイスで,RSpec と組み合わせたり,CI の XFD として連携したり,自由に遊べる.今まで Ruby で操作していて,LT タイマー Gem を実…

Go Conference 2015 Winter に参加して Flappy Gopher を動かした

Go 歴で言うと数時間で,Hello World と Goroutines を少し試した程度だけど,2016年は本格的に Go を勉強しようと思っているので「Go Conference 2015 Winter」に申し込んだ.たまたま抽選枠に当選したので,参加してきた.特に気になったセッションのメモ…