My External Storage

Dec 19, 2018 - 10 minute read - Comments - report go

golang.tokyo #20 忘年LT大会!! 参加メモ #golangtokyo

golang.tokyo #20に参加してきたのでメモ。

イベント名 golang.tokyo #20 忘年LT大会!!
URL https://golangtokyo.connpass.com/event/111077/
会場 株式会社メルカリ 東京都港区六本木6-10-1(六本木ヒルズ森タワー18F)
日時 2018/12/18(火) 19:30 〜 22:00
ハッシュタグ #golangtokyo
資料 https://golangtokyo.connpass.com/event/111077/presentation/

Dive panic & type

@takochuu

当日は下で開始ぎりぎりまで受付のお手伝いをしていたのでほとんど聞けず。

labelerrとsuberrを作った話

@nametake

Go2で何かしら変わるようだが、Goのerror周りは各々で思考錯誤している感じだ(pkg/errorsを使うのはぼぼデファクトだが)。 エラーハンドリングはリリース後の運用フローにも強く影響を与えるところなのでしっかり目的意識を持って設計したいところ。

パッケージ外から非公開フィールドを変更する方法

@makki_d

興味本位でリフレクション使ってunexportな値まで取得したことはあったが、書き込みまでしたことはなかったので参考になった。

サービス開発に役立つfmtテクニック

by imoty

引数インデックスはあまり使ったことがなかった。fmtだけでも奥が深い…

メジャーな Live Reloaderの違いをちゃんと調べて見た

@yudppp

freshしか知らなかったのでrealize使ってみようと思った。複数プロジェクトのコードも監視してくれるらしくて便利そうだ。

Goでテスト仕様書からJSONファイルを自動生成するツールを作ったよ

@takuokl

Google Spreadsheetsでテストパラメータを管理できるのはQAの人とやり取りしやすそうな気がする。 便利だ。

Goでデスクトップアプリを作る

@micchiebear

まさかデスクトップアプリも作れるとは。 go-mobileもあるしGoは本当にマルチプラットフォームだ!!(簡単にできるとは言っていない)

いまさらdatabase/sql

@rock619

Go1.11からいろいろ増えているのは知らなかった。 私はいつも他の人が作った内製ラッパーでDB叩いているだけでこの辺ちゃんと理解できていない。一度ちゃんとパッケージ読んだほうが良さそう。

君の並行処理は実行するまでもなく間違っている

@y_taka_23

正直私のレベルでは理解できなかった。 チャネル周りの実装を静的解析みたいなことをして正しく実装されているか(振る舞えるか)を検知できる手法らしい。

実装はこれなので試してみる。

vim-goの便利機能

@gorilla0513

VimでGo書くときのTipsを実行例付きで紹介されていた。 VSCodeも似たようなことができるので、自分のエディタで出来ることを一度調べておくといいかもしれない。

ちなみにvim-goを使えばデバッグもできる。

業務でよく使っているライブラリ&ツール紹介

@qushot

バリデータは知らなかった。便利そう。

Bounds Check Eliminationについて調べてみた

@kaznishi1246

  • https://speakerdeck.com/kaznishi/1218-lt
  • Bounds Check Elimination(BCE)はGo1.7から追加された機能
  • コンパイラが安全だと判断する状況下で範囲チェックの省略ができる
  • 確認したいときはビルド時に-gcflags="-d=ssa/cechk_bce/debug=1"とつけてビルドする
  • 条件分岐で確実にlenの範囲内になるときとか、forループとかでも適用される。コンパイラ賢い。

GoConでも発表されている方がいたが、BCEという機能について全然知らなかった。 みなさんリリースノートなどをちゃんと読んでいるから知っているのかな?実装時に意識していきたい。

Goでのモデル 取扱説明書

@uqichi

gobaffaloは知っていたけどそんなライブラリがあったのは知らなかった。gobuffalo/popはマイグレーションもできるらしいので、あとで機能ちゃんと読む。

アーキテクチャについて思っていること

@sonatard

  • https://speakerdeck.com/sonatard/akitekutiyanituitesi-tuteirukoto
  • 依存していないとは?インポートしていないことなのか?直接関数を実行していないことなのか?
  • レイヤー図の矢印は何を示しているのか?(示していると認識しているのか?)
  • パッケージ分割 != アーキテクチャの決定
  • フレームワークの実装や規格に思考を引っ張られてしまうのはいけない。
  • 実装をアーキテクチャと勘違いしないこと
  • 3つを考え抜く
    • 思想を正しく理解すること
    • レイヤーがどのような責務について関心しているのかを定義すること
    • どのように実装するか

今新規設計を始める前の段階でこの辺モヤモヤしていたので非常に刺さった。 年末年始考え抜いて言語化しよう。

Manages tool dependencies

@izumin5210

この辺は最近もprotoc-gen-goあたりでハマったりしてたので同じ気持ちになった(バージョン管理しているprotobufのimportとCI上でgo getした最新のprotoc-gen-goが生成するコードが合わなくてCIがフェイルするようになった)。 困るだけじゃなくて自分で解決方法を作れるのが素晴らしい。見習いたい。

GoでDialogsを使ったSlack Appを作る

@shiimaxx

職場でもSlack BotをGoで作っていたりするが、Slackメッセージ的には単純な応答やリマインダをするだけなので機会があれば導入してみたい。

Exportされてないフィールドを書き換えるなよ!絶対だぞ!絶対!

@inukirom

発表順に負けてしまったが、力技でunexportな値を変更する話その2。 ライブラリのテストでどうしてもやりたくなるときはたしかにある。

Wire: コード生成によるDI

@_ishkawa

非常にわかりやすかった。自分もWireについて発表したりしていたので、なおさら、必要性とWireを使って享受できるメリットがシンプルにまとまっているプレゼンだったなと思った。 ブログにもっと具体的なサンプルコードも書かれている。

(私もちょっと書いてはいる(宣伝))

レイトレーシングと Goroutine by sachaos

@sachaos

あまりGoでグラフィック系の実装をしたことがなかったので面白そうだと感じた。

NodeJS → Go

@caust1c

  • https://slides.com/abraithwaite/js-go#/
  • Node.JsからGoへアーキテクチャのマイグレーションを行なった
  • マイグレーションにあたり、Node.jsとGoを同時稼働してリアルデータで検証をした
  • 型なし言語から型あり言語へのマイグレーションには乗り越えなければいけない壁がある

Alanさんはたまたま日本に来日していて、「Goのイベントがあるなら参加して良い?」と遊びにきてくれた方。Gopherはパッションがすごい! Twitterみたら昔読んですごい参考にした記事を書いた方だった。

所感

20本の様々なLTを聞くことが出来てとても勉強になった。知らないライブラリや標準パッケージの中身も知ることが出来た。 昨日の今日でしっかり読み解けてないものが多いので引き続き初耳のライブラリなどは確認していく。 あとNature Remoが欲しくなった。

関連

関連記事

Tags: golang

2018年振り返り(GitHub編) 2018年振り返り

comments powered by Disqus