【京都】Gopher道場 2025 第01回 パブリックビューイング (copy)
ワイガヤするぞ!
luccafort.icontenntennが出たぞ
luccafort.iconSlackとYouTubeのコメント両方監視はつらそう。
luccafort.icontenntennが頑張って配信してる裏で飲むビールがうまい!!!
luccafort.iconaronさんがSlackに色々書いてる :eyes:
luccafort.iconyebisさんも到着。全員出席だ、めでたい!
aron.icon見事にオチをつけた
luccafort.icon:laugh:
luccafort.icon2019年11月に1st release なのか〜。2029年になにかやりそうだね。
luccafort.iconGoのいいところってなにか?と言われると並行処理が簡単にできるとか、マルチプラットフォームでバイナリをばら撒けるとか、マルチコアに対応してるってところが大きい気がするんだよなぁ
aron.icon課題解決のためにプログラミング言語作っちゃうの怖いかっこいい
luccafort.iconMatzは作りたいからRuby作ったしね。そういうことができるのかっこいいよね。腕力 is Power感がある
aron.icon同意ですねえ・・・
luccafort.icon確かにGoはビルドが速い。たまに他の言語でビルドをするとめっちゃ時間かかるじゃん!ってなる。
luccafort.iconあと開発環境をシュッと作れるのが魅力かも。初心者が最初に躓くのはどの言語でも開発環境の構築なので。
yebis0942.icon 環境構築からパッケージ管理まではまりどころが少ないのはよいところという感じがしますね。nodeとかpythonは*env系のツールの選択とかも最初にやる必要がある。
luccafort.icon確かにそうかも。最初Railsとかの感覚でいるとちょっと迷うところがあるかもしれない。
aron.iconLaravel村出身なので最初戸惑いましたねえ・・・
luccafort.iconPython は**envが乱立しすぎてわからん。
yebis0942.icon Pythonは今はuvがよさそうですけど、まだpoetryとかpyenvとか使ってるサンプルコードは多いですねー
aron.icon確かにuvシュパッと行ったのでよかったですね
yebis0942.icon 後方互換性を重視するのはLL系の言語の学びを反映してる気がする
Rubyは破壊的変更を入れながら進化していて元気がいいという話
yebis0942.icon Rubyも1.8からのジャンプが大きかったから後方互換性は気にしようと思ったみたいな話を聞いた気がするので、気をつけながら変更していそうではある
aron.iconおお。このあたりちゃんと見たことないから助かる〜
luccafort.icon誰が書いても同じようなコードになるので退屈だけドマジカルになりにくいので個人的には職業プログラマーには相性がいいよなって思う。
yebis0942.icon samber/lo入れたい派とかはどうですか。lo.Mapとかlo.Filterみたいなコレクション操作系のユーティリティ
aron.icon弊チームではそのあたりは話題に上らないんですが、コードとフォルダ構成がバラバラなリポジトリ10個以上を相手にしているので統一を目指して頑張ってます(?)
luccafort.icon正直欲しいなと思う。だって面倒だもん
yebis0942.icon forループさすがに冗長すぎないかみたいな話はなくはないです。Goを使うなら諦めて(?)forループ書きまくったほうがAIフレンドリー(プロンプトとか少なくて済みそう)でもあるかなみたいな気はしてますが
luccafort.iconさすがにAIもforループくらいは理解してくれる気がするのでio.Map/io.Fliterになったとしても問題ないんじゃないかなー。
luccafort.iconそれよりもいい加減net/httpを……
luccafort.icongoroutineは偉大な発明の1つだと思う。非同期処理をあんなに簡潔に実装できるし、わかりにくくならないのは言語設計の妙だなと思う。
aron.icongoroutineの仕組みを根本的に掘りに行って爆散した記憶を思い出した。リベンジしたいす。
luccafort.iconfmtで「フムト」と読む、マジか始めて知ったwww
yebis0942.icon goplsの命名、とくに意味はないのかー
aron.icongopls使ったことないから使ったことがある方いたらぜひ教えてください
luccafort.iconGoは標準でgo fmtとかgo toolとか入ってるのが便利だよね。わざわざ別のコマンドで持ってこないといけないとか依存関係増やさないのでシンプルでわかりやすい
hiroki shimizu.icon他の言語だとフォーマッターの設定がちょっと面倒なので
aron.iconGOOSとGOARCHちゃんと覚える
aron.iconバイナリ配布大好きお兄さんにみんななれる
luccafort.icon正直クロスコンパイル、いつもMac/Win/Linuxくらいしか指定したことがない。
yebis0942.icon CLIツールをクロスコンパイルして配布できて便利、と思ったけどWindows環境バイナリを作ってもテストするのが面倒なのでお手元でgo installしてねと書くだけでお茶を濁している
luccafort.icongo mobile、懐かしいですねぇ。
aron.icongoだけにgo慢ないやなんでもないです
luccafort.icon日本のGopherなぜかダジャレ好きな傾向がある
aron.iconmattnさん・・・いやなんでもないです
luccafort.icon岩田プロも関係してるかも。あとtenntennさん。
luccafort.iconGo万なGopherくん、一体何者なんだ……
luccafort.iconSimplicity is Complicated はいいスライドなので読んでほしい。
luccafort.iconThank you!
luccafort.iconサーバーサイドよりもマイクロサービスを作りたいときに選ばれがちな印象がある。ワンバイナリなので配布しやすいしね。
yebis0942.iconGo界でgRPCどれぐらい流行っているのか気になる。けっこうOpenAPI派多いですよね
aron.icon弊チームはOpenAPIベースですね・・・gRPC利用してないっす
luccafort.icon確かにGprahQLはちょっと少ない印象がある。でもgRPCはマイクロサービスでよく使われてる印象だけどなぁ。
luccafort.icon弊社はマイクロサービス間とかプロダクト to マイクロサービスのときにgRPC使ってるケースがある、多いかどうかは知らない。
yebis0942.icon メルカリさんやその流れを汲む(?)開発チームではgRPCがfirst choiceみたいな感じは外から見てるとします
aron.iconなるほど・・・!
luccafort.iconHugoっていまどれくらい使われてるんだろう?最近あまり見なくなった気がする。
yebis0942.icon Go Conferenceの公式サイトはHugoからAstro (TypeScript) に移行してしまった
luccafort.iconあれはtaigakiyokawaがGo知らない(書けない)からだねw
yebis0942.icon JSX書きたいという気持ちになるとなかなかHugo選びづらいですね
aron.iconランタイムの分大きくなるって言葉読んで「確かに」ってなった
luccafort.iconTinyGoは面白い。普段触らないプロダクトって感じがして新鮮でいい。あとうまく行かなかったときが普段の開発と違ってて「うおおおおお?!」ってなる
aron.icongo workshop conference宣伝ありがたみを感じる
luccafort.iconXXX.js系はだいたい1年持たない印象。ScalaJSとかKotlinJSとか……。
luccafort.iconWASMは期待してる、ちゃんと触って表計算とか会計のロジックを高速化したいし。プロダクト横断で高速化できる余地があるのを感じてる
aron.iconwasm触ろうとしていっつも触らない
luccafort.icon技術書典ってやつに応募して書籍を書かないといけなくなると自然と覚えるので便利ですよ!
aron.icon一理ある鬼畜
luccafort.icon鬼畜wwwwwwww
hiroki shimizu.icongo以外使いたくない場合に有効そう()
luccafort.iconGoだけでなんとかする方が苦労しそうだけどねw
aron.iconebitengineすごいっすよね・・・尊敬です。
luccafort.iconEbitengineはすごいよね。自分で起業してちゃんとゲームエンジンの開発をしつつ、開発もしてるの普通にすごい。
luccafort.iconゲームの専門学校とかだったらありだと思うんだよな〜
aron.icongoでクリーンアーキテクチャ・・・弊チーム割とその傾向がございますね
luccafort.iconGo/Kotlinは結構クリーンアーキテクチャで作る傾向がありそう。他の言語はどうなんだろう?RubyはRailsにべったりだからあまり採用されないけど。
aron.iconokarinさんがgo playgroundの古いバージョンのコードを読んで解説する講座がehime.goでありましたね・・・。すごいなって。gVisor動いてた気がする。
luccafort.iconあったね。あれすごい。資料のリンク忘れちゃったけど。
aron.iconBIG感謝です
luccafort.iconmetoo
luccafort.icon家計簿アプリを作ろう、気になる
マネーフォワード ME Goを作りたい(10年もののRailsは大変ことがあるよね……Goにしたからって解決しないけど)
aron.icongoの公式ドキュメントを読みに行って「わかんね」ってなったら例をググります。そして気になったらgoで書かれてるからライブラリを掘りに行きます。爆散します。私によくある流れです。
hiroki shimizu.iconライブラリが掘れるのもいいところですよね
aron.icon掘りにいくと「そこにいたかsocketAPI・・・!」みたいになるけど自分で書けるところまで持っていく前にライフがなくなってます
luccafort.icon最近Goの書籍、なにを買ったか覚えてないなぁ。
yebis0942.icon 地域Goコミュニティ、実は頻繁に誕生しているらしいけど捕捉しきれてなかった
luccafort.iconKanazawa.goとか最近学生主催のイベントが増えてますね。若い人が主体的に動いてるのはいいこと。
luccafort.iconGopherCon、一度行ってみたい。登壇者でもいいけどめっちゃ大変なんだよなぁ。
aron.iconちょっと今英語学んでるんであと5億年後くらいにGopherCon出します
luccafort.icon話は聞かせてもらった!つまり地球は滅亡する!GopherConはこれを予言していたんだよ!
aron.icon(多分)な、なんだって〜!(が正しい反応なはずですよね・・・?)
luccafort.iconk0kubunさんってあのRubyコミッターの?
yebis0942.iconそういえばsqldefもGo製でk0kubunさん作だった。最近v1に到達されていてめでたい。
luccafort.iconRails 8.0でGo製のThrusterみたいな名前の機能が追加されたよね。
luccafort.icon公式じゃないけどこれだ
yebis0942.iconKamalもGo製でしたねと思ったけど違ったかも
luccafort.iconそうそう。Goの……と思ったら全然違ったRubyだね。
luccafort.iconコマンドラインからできるの?!って思ったけど公式ではなかった。まあでもちょっと公式に取り込まれてほしい感はある。
luccafort.iconコメントの書き方はいろいろなフェイズごとにそれぞれのやり方があるのでこれが正解!みたいなのはないけど、Rubyのコメントでサンプルコードまで書いていたのはめっちゃ親切で感動したな
aron.iconコンパイルしてリンクする・・・ってのあまり意識したことなかったから学び増えた・・・
luccafort.icon一度なんかで学んだけど忘れてしまった……
aron.iconプログラミング言語自作は1回やっておきたいですね(いつやるかはさておき)
いつやるかはさておき
luccafort.iconそれな……DQNEOさんはすごい。Goでminigoを実装しているの尊敬する。
aron.iconライブラリの中身読むとよく「こんなの書けねえよすげえよ」ってなる
luccafort.iconわかるw
luccafort.iconGoのパッケージの概念はわかりやすくて好き。
hiroki shimizu.iconサードパーティはあんまり知らない。。。 chii?だけ聞いたことがあります
aron.icon弊チームではgorm,aws-sdk-go,uber-go/digとか使ってます
luccafort.icon確かにdigとaws-sdk-goはよく使う
yebis0942.icon テストではtestify, go-cmpとか使ってるチーム多そう
aron.icon確かに弊チームでもgo-cmp使ってます
DB: sqlc, xo
yebis0942.icon chiいいですよね。適当にHTTPサーバー立てるとき便利 皆さんありがとうございます!
aron.icon地味にfmt.Printとfmt.Printlnの差をわかってなかったから助かる
luccafort.icon多分だいたいの言語で同じ棲み分けしてる気がする
競プロでfmt.Printとfmt.Printlnにお世話になってます。
luccafort.icon競プロだと確かにJava/KotlinよりもGoとかのほうが書きやすいのはわかる
aron.iconPrintf系お世話になってる
luccafort.iconそういえばScan系のメソッドの中身、どういう実装になってるのか読んだことないな。
ツールチェインって言葉を理解してなかったのでありがたいです。
yebis0942.iconScan, Scanf, Scanlnの存在も忘れていた
yebis0942.iconstrconv.Itoaとか使いがち
業務で使いますか?
aron.icon公式からインストールするのが良いのわかる。それが一番失敗しない。
luccafort.iconhomebrew でインストールするのはマジでオススメしない。結局公式からインストールするのでそんなに困らない。
aron.iconですねえ。(確かGOPATH周りがだるかった気がする)
luccafort.iconそうそう、すでにインストールされているケースとかでコンフリクトしてだるい、みたいな経験があった気がする
ターミナルどんなの使ってますか
標準のターミナルアプリ
VSCodeのターミナルタブ
yebis0942.icon canvasで実装されているという話(今もそうなんだろうか)
aron.icongo.work知らない
luccafort.icongo.work が導入されたのは1.18の頃らしい。いまからマイナーバージョン6つも前なのか。
aron.iconGo1.21以上であれば・・・は意識したことなかったなあ。現在は1.22が会社のpc入ってる。
luccafort.icongo1.24.0 download とかで実行したことはないな
luccafort.iconaliasコマンドでgoにエイリアスを貼ってる。でも一時的かな、最新版を取ってくる時とそこからの経過観察時だけかな。
luccafort.iconGOPATHやGOROOT周りの情報は基本古いものがヒットしがちなので基本公式以外見ないほうが良いと思う。
luccafort.icon
yebis0942.icon vimとneovimの比率が気になる。
yebis0942.icon goplsよくできてるし、Clineとか使いたいとなるとVSCode / Cursorということになってしまう
yebis0942.icon go testで実行されないvetルールがあるの知らなかった
luccafort.icon知らなかった……一部実行されないものがあるんだなぁ。
luccafort.iconReviewdog、なにか大変だったの?
luccafort.iconどうやらGitHub Actionsをハックされてしまったらしい?サプライチェーンアタックされた。
hiroki shimizu.icon全部知らなかった。勉強になります。
luccafort.iconpanicを入れたコードをコミットしてしまう、それは困るなw
aron.icon業務ではちゃんと読んでるけどプライベートではガチでvibe codingしてる人とは私のことです。アイススケートを見ながら承認ボタンを押す人になってます。
aron.iconとはいえ使うツールよくわかってないと結局最初の指示文も書けないし修正方針も示せないですし無知の知からの学習をしないとvibe codingさせるものが増えないんで結局勉強やなってなってます
luccafort.iconEBNF(拡張バッカスナウア記法)ってなんだろう?知らないやつだ。
aron.icon知っていると学習に役立つんだ・・・(恐怖)頑張るか〜
hiroki shimizu.iconやったほうがいいんだ!
luccafort.icon本当か?それはtenntennが趣味で静的解析をしてるからではないのか?w