(Unofficial)Go Conference 2024 Pre Party
(Unofficial)Go Conference 2024 Pre Party
This post is about why we need a coroutine package for Go, and what it would look like. But first, what are coroutines? Every programmer today is familiar with function calls (subroutines): F calls G, which stops F and runs G. G does its work, potentially calling and waiting for other functions, and eventually returns. When G returns, G is gone and F continues running. In this pattern, only one fu
はじめに 2024年8月13日、Go 1.23がリリースされ、ついにイテレータが利用可能となりました。 この記事では、Goのイテレータについて、 どうやって使うのか どこまで知っておく必要があるのか を理解することをゴールとします。 基本的な知識 基本的な知識としては、以下の内容を知っていれば問題ないです。 for文のrangeループの仕様が変わった 関数を対象にrangeループを回せるようになる rangeループの対象にできる種類の関数をイテレータと呼ぶ イテレータには3種類ある for文のrangeループの仕様が変わった Go 1.22までは、for文によるrangeループの対象にできたのは、配列, slice, 文字列, map, channel, 整数だけでした。 Go 1.23で、ここに関数(ただし、特定の形式に限る)が加わりました。 ここで、rangeループの対象にできる形式の
はじめにこんにちは。CSIG 所属の棚井です。 Go 1.23 Release Notes の内容を紹介する「フューチャー技術ブログ Go 1.23 リリース連載」の記事です。 今回は2つの反復(Iterator、イテレーション)処理を取り上げます。 range over funciter パッケージRelease Note, Discussion, Proposal, Issuerange over func と iter パッケージ のリリース内容を確認していきます。 range over func がデフォルトで有効にGo1.22 では GOEXPERIMENT とされた range over func が、Go1.23 からはオプション指定なしで利用可能となりました。 Go 1.23 makes the (Go 1.22) “range-over-func” experiment
はじめに Go 1.23 で iter パッケージが導入されました。この iter は抽象化されたイテレータを示す仕組みと実装です。未だどの様に活用して良いか分からない方もいると思いますので、使い方を簡単に解説しようと思います。 概念 iter パッケージは、現状は for-range でのみ利用可能です。スコープにコンテキストを持ったロジカルな列挙可能オブジェクトと、それを別のスコープにて for-range でイテレートする際に便利です。 これまでであれば、こういった実装は goroutine と channel を使いスコープを分割させる事で実装してきました。 package main func iter1[T any](a []T) func() (T, bool) { ch := make(chan T) go func() { defer close(ch) for _, v
本記事ではGoのiter(イテレーター)についての「知らなくても良いけど知っていたらイザという時に助かるかもしれないこと」を紹介します。iterの基本的な使い方等は説明しませんので、以下のmattnさんによる記事を参照してください。 Goのiterの実現方法 では本題。Goのiterとはコルーチンです。Goにおけるコルーチンの導入はRuss CoxのCoroutines for Goという記事にその分析と設計が書かれています。同記事の日本語による拙作のメモがありますので気になる方はそちらもご参照ください。 Russ Coxはこの記事において、コルーチンとはコールスタックの分離と任意の場所への付け替えだ、と分析しました。またgoroutineとチャンネルを用いてコルーチンを実装し、満たすべき機能的要件を明らかにし、また性能的要件からGo言語本体に必要な変更を示しています。この機能と性能の要件
この記事は富士通クラウドテクノロジーズアドベントカレンダー2022 の20日目の記事です。 前日はaokuma さんの GitLab agent for Kubernetes を使った GitOps (Helm版) を試してみた でした。 CI/CDはそれ自体の難しさもありますが、ソースコードやその成果物に対してセキュアにアクセスするのが面倒な印象があります。 GitLab上でk8sにデプロイすることも一括で面倒を見てくれるとなると、より便利に安定して使える様になることを期待してしまいますね。 (余談ですが、ニフクラでは, DevOps with Gitlab と言うマネージドのGitLabサービスを提供しているので、興味があれば見て見てください。) さて、本日は、URLとは?と言う話に触れつつ、golangのnet/urlの Parse 関数について記載しようと思います。 目次 目次 前
Twitterでこんな記事を見かけたので。 zenn.dev ジェネリクスの件もそうですが、Goの言語設計は現実主義なのになにか特別なポリシーによるものだと宗教化されてしまって、ファンには勝手に崇拝されてアンチにはディスられがちだなーと感じます。 Goのエラー処理を改善する実験プロジェクトxerrorsがGo本体のerrorsにマージされた時、 errors.New() はスタックトレースを取得していました。しかしGo 1.13がリリースされる前に削除されました。 削除された理由の1つは、今までの errors.New() のパフォーマンスに依存していたコードの速度が低下しアロケーションが増えることです。 github.com しかし、これが理由だと今まで思ってたのですが、実際にはもう1つより重要な理由がありました。エラーのフォーマットです。エラーに複数のフォーマットを持たせようという提案
The Gopher character is based on the Go mascot designed by Renée French はじめにTIG真野です。 フューチャーでは2021年の2月に公開されたGo 1.16から、Goのリリースノートを読んで気になったところをブログにまとめるというブログリレーを続けています。 Go 1.16連載が始まります Go 1.17連載が始まります: コンパイラとgo mod Go 1.18集中連載 ジェネリクス Go 1.19リリース連載始まります GoDoc/ツール周りのアップデート Go 1.20リリース連載が始まります&メモリアリーナの紹介&落ち穂拾い Go 1.21連載始まります&slogをどう使うべきか Go 1.22リリース連載始まります & ループの変化とTinyGo 0.31 単なる翻訳ではなく自分たちならではの付加価値を提供す
I opened GopherCon Australia in early November with the talk “Go Testing By Example”. Being the first talk, there were some A/V issues, so I re-recorded it at home and have posted it here: Here are the 20 tips from the talk: Make it easy to add new test cases. Use test coverage to find untested code. Coverage is no substitute for thought. Write exhaustive tests. Separate test cases from test logic
Concurrency is not Parallelism Waza Jan 11, 2012 Rob Pike Video This talk was presented at Heroku's Waza conference in January 2012. Watch the talk on Vimeo 2 The modern world is parallel Multicore. Networks. Clouds of CPUs. Loads of users. Our technology should help. That's where concurrency comes in. 3 Go supports concurrency Go provides: concurrent execution (goroutines) synchronization and mes
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く