並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 308件

新着順 人気順

goの検索結果161 - 200 件 / 308件

  • Go言語ビギナーのCREが、Mackerelの途切れ監視プラグインを開発して正式リリースした話 - Hatena Developer Blog

    こんにちは、Mackerel CREの id:kmuto です。 9月25日に、Mackerelのエージェント用チェックプラグイン「check-mackerel-metric」をリリースしました。 github.com このプラグインは、クラウドインテグレーションを利用した場合など一部標準の機能ではできない、ホストメトリックの途切れ監視を実現するものです。たとえばcheck-mackerel-metric -H <hostId> -n "custom.ecs.running_task.batch-cluster.count -w 30 -c 60という指定をしておくと、ホストID <hostId>のメトリックcustom.ecs.running_task.batch-cluster.countについて、現在から30分前までの間に何も投稿されていなければWARNING、60分前までの間に何も

      Go言語ビギナーのCREが、Mackerelの途切れ監視プラグインを開発して正式リリースした話 - Hatena Developer Blog
    • テストでしか使わないパッケージをgo.modに含めない方法 - Copy/Cut/Paste/Hatena

      元エントリは↓で、これが全てです。 dev.to 最高じゃんhttps://t.co/c1hfSYhgx2— k1LoW (@k1LoW) 2023年8月26日 Goでツールではなくライブラリ(パッケージ)を作っているとき、テストにしか使わないパッケージがgo.modに入って依存関係ができてしまうのが、いつも気になっていました。 ただ、「まあ別にいいかな」と思っていたのですが、ちょうど標準パッケージだけで機能が実現できるパッケージができたので、どうしてもgo.modを綺麗にしたくなりました。 そして、えいっと調べてみたらすぐに解決方法が見つかったのでした。 テストでしか使わないパッケージをgo.modに含めない方法 方法は次の通りです*1。 テスト用に go_test.mod ファイルを用意して -modfile オプションを使って go_test.mod ファイルを指定して go tes

        テストでしか使わないパッケージをgo.modに含めない方法 - Copy/Cut/Paste/Hatena
      • 機械学習モデルのA/BテストをしやすくするGo言語のAPI設計 - エムスリーテックブログ

        こちらはエムスリー Advent Calendar 2023 11日目の記事です。 DALL-Eでサムネ作るの楽勝だぜとなりそうでならない Overview A/Bテストをしまくっている、機械学習エンジニアの農見(@rookzeno)です。皆さんA/Bテストをしてますでしょうか。エムスリーでは色々な施策の効果を見るために沢山のA/Bテストをしています。そのためA/Bテストを簡易にできるような設計を作ることも大事なことです。 AI・機械学習チームには、Goで書かれた機械学習関連の機能を各サービスに提供するAPIサーバがあり、こちらのYAMLファイルを設定するだけでA/Bテストが出来るようにしました。 rules: - name: modelA random_seed: 42 threshold: 50 ctrl: weight: 0 test: weight: 1 - name: model

          機械学習モデルのA/BテストをしやすくするGo言語のAPI設計 - エムスリーテックブログ
        • バイアスを逆手に取る

          Profile id: Songmu (ソンムー) Masayuki Matsuki / 松木雅幸 株式会社ヘンリー VP of Engineering おそらくはそれさえも平凡な日々 http://www.songmu.jp/riji/ https://metacpan.org/author/SONGMU 好きな言語は、PerlとGoと中国語 3 Times ISUCON Winner Using Perl 入門監視 付録C 執筆 「みんなのGo言語」共著者 Profile id: Songmu (ソンムー) What I ♥ Blog / Twitter OSS Agile Full Cycle Development Road Bike, Cycling

          • リトライ処理を追加するとバッチが安定することがあることもそこそこあるので「avast/retry-go」を使ってみる - じゃあ、おうちで学べる

            はじめに インフラエンジニアは日々の業務でプログラムを書く機会が多く、その中で処理の実行やHTTPの通信などでリトライ処理を実装する必要があることが少なくありません。リトライ処理を実装する必要は必ずしもなくても、実装することでバッチが安定することがあります。もっと言っておくとリトライ処理を実装することで、一時的なエラーによる処理の失敗を回避し、バッチ処理の安定性が向上する可能性があります。実行基盤によってジョブの再試行の自動化、最大再試行回数を設定するやPod失敗のバックオフポリシーなどとの兼ね合いを考える必要もあると思います。あとはマジでガー不のバグを引き寄せることもあるので注意が必要です。 はじめに シンプルな例 最大リトライ回数の指定 次のリトライまでの待ち時間の設定 特定の例外のみリトライするケース さいごに 今回はGolangには「retry-go」というリトライ処理を簡潔に実装

              リトライ処理を追加するとバッチが安定することがあることもそこそこあるので「avast/retry-go」を使ってみる - じゃあ、おうちで学べる
            • ZSS: Goっぽい構文で格ゲーキャラが作れると話題のIKEMEN Goを触る|TechRacho by BPS株式会社

              ソースコードを見てみよう というわけでまずは本体に同梱されているkfmZ内のzssファイルを見ながらステートの構造を理解していきます。 例として、立ち小パンチのステートを見ていきましょう。 #=============================================================================== # Stand Light Punch #=============================================================================== # ZSS difficulty: easy [StateDef 200; type: S; #State-type: S-stand, C-crouch, A-air, L-liedown movetype: A; #Move-type: A-

                ZSS: Goっぽい構文で格ゲーキャラが作れると話題のIKEMEN Goを触る|TechRacho by BPS株式会社
              • Upgradable Read Write Lock for Go

                In this blog post, we'll explore the implementation of an upgradable read-write lock in Go. We will talk about why we needed it by giving concrete examples from the real-world use case and also discuss potential pitfalls during the blog post. Why do we need an upgradable read-write lock? In Go, even though the guidelines say to avoid locks, when building a Redis® server that should be concurrently

                  Upgradable Read Write Lock for Go
                • Google Cloud での Go アプリケーションの作成をシンプルに | Google Cloud 公式ブログ

                  ※この投稿は米国時間 2023 年 8 月 2 日に、Google Cloud blog に投稿されたものの抄訳です。 Go はクラウドベースの開発のために世界的に採用されている主要なプログラミング言語です。クラウド アプリケーションやビジネス クリティカルなクラウド インフラストラクチャを構築、スケーリングする目的で何百万人もの開発者に利用されています。CLI、ウェブ アプリケーション、クラウド サービス、ネットワーク サービスなど、どのようなものを構築するにしても、Go は習得するのも保守も容易で、組み込みの同時実行性や堅牢な標準ライブラリをはじめとする便利な機能が満載です。 このたび、Go を Google Cloud で使い始める際のハードルを少し下げることが可能になります。Go は最近、事前定義されたテンプレートを使用して新しいプロジェクトを Go でインスタンス化できる、gon

                    Google Cloud での Go アプリケーションの作成をシンプルに | Google Cloud 公式ブログ
                  • 「Python」と「Go」を徹底比較 どちらのプログラミング言語を学ぶべき?

                    ダウンロードはこちら 世の中には幾つものプログラミング言語が存在する。開発者がこれから学ぼうとするプログラミング言語を選ぶことは簡単ではない。そこで指標になるのが、近年の勢いだ。開発者の間で人気が高まっているプログラミング言語を選ぶことは、トレンドに追従したり、求人市場でより良い職を得たりする際に役立つ可能性がある。 「Python」と「Go」(「Golang」とも)は、どちらも近年人気のプログラミング言語だ。それぞれ独自の文法や仕組みを持っており、適する用途も異なる。本資料は、サンプルコードと共にPythonとGoの違いをさまざまな面から解説する。両者の違いを理解し、適切なプログラミング言語を選ぶための手掛かりを得よう。 中身を読むには、「中身を読む」ボタンを押して無料ブックレットをダウンロードしてください。 連載:「Python」と「Go」の違いを比較

                      「Python」と「Go」を徹底比較 どちらのプログラミング言語を学ぶべき?
                    • feed_squeezerを作った - くりにっき

                      これなに? モチベーション 使った技術 工夫ポイント 配布形式をどうするか GoでGoogleライクな検索クエリで文字列マッチするような関数を作った 取得したフィードを一瞬だけキャッシュする バイナリにviewを同梱する 最近のエコシステムに乗っかる 2024/06/14 13:28 追記:ブコメレス これなに? RSSフィードを任意のキーワードで絞り込んだ結果をさらに別のフィードとして返すためのproxy的なウェブアプリです。 github.com モチベーション 僕はSlackで色々なRSSフィードを購読しています。 YouTubeのチャンネルにもRSSフィードが存在しているのでSlackで購読しています。 例えば 東映アニメーション公式YouTubeチャンネル - YouTube にはプリキュアをはじめとして様々な動画が公開されています。その中でプリキュアに関係する動画だけをSlac

                        feed_squeezerを作った - くりにっき
                      • Go, Containers, and the Linux Scheduler

                        Like many Go developers my applications are usually deployed in containers. When running in container orchestrators it’s important to set CPU limits to ensure that the container doesn’t consume all the CPU on the host. However, the Go runtime is not aware of the CPU limits set on the container and will happily use all the CPU available. This has bitten me in the past, leading to high latency, in t

                        • Using Zig in our incremental Turborepo migration from Go to Rust – Vercel

                          Using Zig in our incremental Turborepo migration from Go to RustLearn how we're cross-compiling a Rust-Go-Rust sandwich to six platforms. We’ve been porting Turborepo, the high-performance build system for JavaScript and TypeScript, from Go to Rust. We talked about how we started the porting process, so now let’s talk about how we began porting our two main commands: run and prune. Since last time

                            Using Zig in our incremental Turborepo migration from Go to Rust – Vercel
                          • goroutine leakを解消したい!

                            この記事は、Magic Moment Advent Calendar 2023 15日目の記事です。 こんにちは! Magic Moment で Backend Engineerをしている 大塚 です。 Magic MomentではGo言語によるマイクロサービス開発をしているのですが、ある日、あるサービスのメモリ使用量が継続的に上昇する現象を観測しました。 そこで、どういった調査をしてどのように解消までいったかをまとめました。 メモリ使用量の上昇を観測 メモリ使用量が日々上昇していることが確認できます。さっそくどこで何が原因でメモリリークしているか確認してみます。 Cloud Profilerで確認 以前よりCloud Profilerを導入していたため、まずはCloud Profilerでメモリ使用量やgoroutineの数を確認しました。 Cloud Profilerについては弊社Te

                              goroutine leakを解消したい!
                            • Goの`zero`識別子追加プロポーザルと導入される仕様について - tomato3713’s blog

                              概要 zero 識別子が追加されることが決まったので該当プロポーザルの spec: add untyped builtin zero · Issue #61372 · golang/go を読んで気になったことや実際の導入予定のzero識別子の仕様についてまとめました。1 提案時の仕様 spec: add untyped builtin zero · Issue #61372 · golang/go zero 識別子を追加する zero はどの型に対しても代入可能な zero value を表す (なので、ポインタ型と値型にも同じように代入可能で*x = zero と x = zero が許容される) 0, "", nil と比較できないような型Tの値であっても、zero と比較して zero value であるかを判定できる。Tがanyの場合も含む。 この zero 識別子を追加する提案

                                Goの`zero`識別子追加プロポーザルと導入される仕様について - tomato3713’s blog
                              • はてなブログとblogsyncの歴史 | おそらくはそれさえも平凡な日々

                                ヘンリーでVP of Engineeringを務めるSongmuです。このエントリーは株式会社ヘンリー Advent Calendar 2023 、11日目の記事です。 はてなブログとblogsync はてなブログにはAtomPub APIという、はてなブログをAPIで操作できる機能があります。これは実は結構古くからある機能で、2013年にリリースされています。当時のはてなインターン生によるもので、moznionさん、krrrrさんが担当されたようです。歴史を感じますね。 そのAtomPub APIを利用し、はてなブログを管理するためのCLIツールとして、当時はてな社のチーフエンジニアで現CTOのmotemenさんが「個人で」開発したGo製のOSSがblogsyncです。これは2014年にリリースされています。社員が自社サービスのユーザーであり、社員が趣味の個人開発でそのサービス利用のため

                                  はてなブログとblogsyncの歴史 | おそらくはそれさえも平凡な日々
                                • 公式GoクライアントindigoでBlueskyのAPIを使ってみた - 小野マトペの納豆ペペロンチーノ日記

                                  みなさんはまだXで消耗してますか?Blueskyに移住中の小野マトペです。 Go言語でBlueskyにポストを投稿するコードを書いたのですが、ベータ版とあってドキュメントも少なくやや難儀したので、メモとして残します。記事を通じて、Blueskyのアーキテクチャのユニークさも少しだけ伝われば良いなと思います。 クライアントには、Blueskyの公式Goリポジトリ github.com/bluesky-social/indigo のクライアント実装を使います。ただし、開発中で、今後使い方が変わる可能性もあるので気をつけてください。 github.com 概要 Bluesky は、大規模分散ソーシャルアプリケーションのための汎用連合プロトコル AT Protocol 上に構築されるアプリケーション実装であるという建て付けです。AT Protocolでは、クライアントやサーバーは XRPC という

                                    公式GoクライアントindigoでBlueskyのAPIを使ってみた - 小野マトペの納豆ペペロンチーノ日記
                                  • 内部エラーと外部エラー、それからGoのerrorがスタックトレースを含まない理由の考察

                                    TL;DR Goのerrorは外部エラーを表現するもので、利用者(ライブラリならアプリケーション開発者、アプリケーションならユーザー)に入力値や環境の不備を伝える目的で存在している 一方で、開発中のソフトウェアが思っていたのと違う挙動を示した場合、その調査にはソフトウェアの特性によって異なるツールを使い分ける必要があり、一筋縄では行かない 両者を分けて考えることで、よりよいエラーハンドリングへの議論が初めて進められると考える 背景 Goのerrorがスタックトレースを含まないことは度々Goの欠点として挙げられます。たしかに、一度作ってどこかにデプロイしたソフトウェアがバグっており、スタックトレースがないせいでその原因調査に手間取ったことは筆者も一度のみならず体験しています。 一方で、(しばしばベテランのプログラマから)エラーはノイズを含むべきではないと主張されることも少なくありません。 2

                                      内部エラーと外部エラー、それからGoのerrorがスタックトレースを含まない理由の考察
                                    • Building a high performance JSON parser

                                      This talk is a case study of designing an efficient Go package. I’m going to use the example of building a high performance JSON parser. Supports streaming operations It’s unrealistic to expect to have the entire input in memory. Buffering in memory is a availability risk, input sizes are usually unknown and potentially unbounded. Buffering before processing introduces latency. Streaming reads let

                                      • はてなのポッドキャスト Backyard Hatena #33 - はてなとGo、hatena.go(id:maku693) #byhatena - Hatena Developer Blog

                                        こんにちは、CTO の id:motemen です。 はてなのエンジニア組織である技術グループでやっているポッドキャスト「Backyard Hatena」を更新しました。 「Backyard Hatena」は、株式会社はてなのメンバーの普段の様子や、サービス開発の裏側や技術、取り組みなどについて、CTO の id:motemen を中心としたメンバーがカジュアルにお届けするポッドキャストです。 podcasters.spotify.com Backyard Hatena • A podcast on Spotify for Podcasters Anchor / Spotify / Google Podcasts / Apple Podcast で配信しています。お好みのプラットフォームから聞いていただけると嬉しいです。 今回のゲストは、ゲームチーム エンジニア の id:maku693

                                          はてなのポッドキャスト Backyard Hatena #33 - はてなとGo、hatena.go(id:maku693) #byhatena - Hatena Developer Blog
                                        • Action Graphを使ってGoのpackageごとのビルド時間を可視化する - $shibayu36->blog;

                                          Goのパッケージごとのビルド時間を計測したいんだけど (どのパッケージのビルドに何秒かかってる、とか見たい) どうしたらいいのか、ちょっとググってみたけどランタイムにおけるパフォーマンス測定の話題ばっかり出てくる— うたがわきき (@utgwkk) February 26, 2024 前やったことあるがブログに書いてなかったのでメモしておく。 まずGoのビルド時間についてはAnalyzing Go Build Times | howardjohn's blogが非常に分かりやすく参考になる。この中でAction Graphというものに言及があり、これを使うことでパッケージごとのビルド時間を可視化できる。 例えば自分のgo_todo_appというものを使ってみる。 まずgo buildでactiongraph.jsonを吐き出し $ go build -debug-actiongraph=a

                                            Action Graphを使ってGoのpackageごとのビルド時間を可視化する - $shibayu36->blog;
                                          • リソースベースポリシーをサポートしないAWSリソースのクロスアカウント設定と、Go による実装 - freee Developers Hub

                                            こんにちは、サービス基盤のkumashunです。 freeeでは、ほとんどのサービスがAWSをインフラ基盤として利用しています。さまざまな目的や業務上の要件に応じて、複数のAWSアカウントを運用しており、時折、異なるアカウント間でのネットワーク通信やリソースへのアクセス、つまりクロスアカウントアクセスが必要となります。ここでは、リソースベースポリシーをサポートしていないAWSリソースにおける、クロスアカウントアクセスの実現方法についてご紹介します。 事例を "リソースベースポリシーをサポートしないAWSリソース" に限定しているのは、以下の背景からです。簡単に用語を説明します。 IAM Policy AWSリソースへのアクセス定義 誰がどのリソースに何をできる/できないかをJSON形式で定義できる IAM Role 1つ以上のIAM Policyをまとめたもの 人間がマネジメントコンソール

                                              リソースベースポリシーをサポートしないAWSリソースのクロスアカウント設定と、Go による実装 - freee Developers Hub
                                            • One Billion Row Challenge in Golang - From 95s to 1.96s

                                              One Billion Row Challenge in Golang - From 95s to 1.96s Renato Pereira Mar 18, 2024 Introduction The One Billion Row Challenge (1BRC) is quite simple: the task is developing a program capable of read a file with 1 billion lines, aggregating the information contained in each line, and print a report with the result. Each line within the file contains a weather station name and a temperature reading

                                              • Go 1.22リリース連載始まります & ループの変化とTinyGo 0.31 | フューチャー技術ブログ

                                                Go 1.22のトピックとしては以下のようなものがあります。だいぶ安定版になってきたからか、言語もライブラリもこつぶなものが多くなってきたかな、という印象です。 ループ変数の挙動の変化 ツール系 GO111MODULE=offオプションの廃止 トレースツールのUI改善 net/httpのServeMuxでパス変数が扱えるように go vet強化 コンパイラでGCが1-3%高速化。PGOで2-14%改善 リンカーの生成するバイナリがよりデバッガフレンドリーに ライブラリ math/rand/v2追加 database/sql.NUllの追加 net/httpのルーターがパスパラメータをとれるように その他 個人的に注目しているHTTP/3やQUICへの対応は、準標準ライブラリのgolang.org/x/net/internal/quicの中で進行中。将来的にはinternalが外れたgola

                                                  Go 1.22リリース連載始まります & ループの変化とTinyGo 0.31 | フューチャー技術ブログ
                                                • Go1.22で登場するかも!?開発中の新機能イテレータを使ってみる!

                                                  導入 Go1.21が先日リリースされ、スライスとマップに関する汎用的な処理を扱う標準パッケージ (slicesとmaps) が導入されましたが、 直前になって入る予定の maps.Keys が削除されてしまいました。 これはイテレータが実装予定のため maps.Keys 等はイテレータの実装を待ってからの方が良いと判断されたためだと思われます。 Go1.22で実装予定のイテレータとはどういう機能なのか、イテレータにすることで何が嬉しいのかがよく分からなかったので調べてみました。 この記事で知れること Goでのイテレータの実装がどのようになるのか (2023/08/30現在の実装) イテレータのメリット 事前準備 gotip は開発中のGoのコードを扱うことができるCLIツールで、以下のコマンドでインストールすることができます 2つ目のコマンドの末尾の数字 (510541) はGoのチームが

                                                    Go1.22で登場するかも!?開発中の新機能イテレータを使ってみる!
                                                  • コード生成を活用したgqlgen+dataloaderの実装パターン解説

                                                    コード生成を活用したgqlgen + dataloaderの実装パターンについて解説します。 かなり実装寄りの話で、あまり一般化できていないのですが、事例の一つとして参考になれば幸いです。 事前知識については、下記の発表資料を参考にしていただければと思います! https://speakerdeck.com/syumai/xonokotosheng-cheng-tegqlgennodataloadershi-zhuang-wole-nisitahua

                                                      コード生成を活用したgqlgen+dataloaderの実装パターン解説
                                                    • Go to Cloudflare Workers

                                                      Go to Cloudflare Workers 〜移行から 0.5 年以上運用する〜 を YAPC::Hiroshima 2024 で話ました。(20min)

                                                        Go to Cloudflare Workers
                                                      • 車両情報のリアルタイム特徴量基盤の構築

                                                        GO TechTalk #24 タクシーアプリ『GO』のAIサービスを支えるMLOpsを体感しよう!で発表した資料です。 ■ YouTube https://www.youtube.com/live/r_oYsac9Hvo?si=6fajvCDKzA-zQe3m&t=1514 ■ connpass https://jtx.connpass.com/event/301271/

                                                          車両情報のリアルタイム特徴量基盤の構築
                                                        • バクラク事業部でのGoのユースケースとチームを超えたナレッジ共有 | hatena.go

                                                          - Connect https://connectrpc.com/ - エンジニアオンボーディングを改善するツールの紹介 https://tech.layerx.co.jp/entry/2022/12/12/131507 - Go言語のAPIサーバーの冗長なエラーログを40%削減した話 #LayerXテックアドカレ https://tech.layerx.co.jp/entry/2023/11/29/132325

                                                            バクラク事業部でのGoのユースケースとチームを超えたナレッジ共有 | hatena.go
                                                          • GoのASTを解析してFeature Toggleを掃除する - freee Developers Hub

                                                            この記事はfreee Developers Advent Calendar 2023の21日目の記事です。 こんにちは、金融開発部でEMをしている ogugu です。 今回は、Go言語において Feature Toggle の分岐を掃除するCLIを作ったので、ご紹介します。 ※ 毎年恒例の開発合宿 での成果になります。 Feature Toggle とは Feature Toggle とは、特定機能の有効・無効をフラグによって切り替える方法です。 金融開発部では、以下のように Feature Toggle を実現できるライブラリを用意しています。 if featflg.Enabled(ctx, "feature_name") { doNewLogic() } else { doOldLogic() } 一般に、フラグ設定は、設定ファイル・環境変数・ストレージなどから読み出し、それらに対する

                                                              GoのASTを解析してFeature Toggleを掃除する - freee Developers Hub
                                                            • go-smtp-mockをSMTPのモックサーバにして単体テストする | フューチャー技術ブログ

                                                              はじめにTIG真野です。 バックエンドのアプリケーションの上で、メール送信するコードがある場合の単体テストをどう実現するか悩みました。 メールには、タイトル・本文・From・TO・CC・BCCなど複数の設定値がありますし、SMTPサーバの接続情報もあります。これらを表現する構造体のモデルだけに絞った検証に留めることは、気が進みませんでした。時代はインフラレベルでダミーサーバを動かしモックする方向で動いています。SMTPでメール送信し、その送信結果をテストコード上で取得&検証する一連の流れを行って動作を確かめたいと思いました。 方法として、澁川さんのMailSlurperを使って6桁のコードの送信コードのテストをするで紹介されたMailSlurperを使うか迷いましたが、以下の点で牛刀だなと感じました。 メール送信するのはごく一部の機能(私の場合は1機能。今後増える見込みは現時点で見えなかっ

                                                                go-smtp-mockをSMTPのモックサーバにして単体テストする | フューチャー技術ブログ
                                                              • Goリリースノートから技術ブログを書く流れ基礎 | フューチャー技術ブログ

                                                                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 modGo 1.18集中連載 ジェネリクスGo 1.19リリース連載始まります GoDoc/ツール周りのアップデートGo 1.20リリース連載が始まります&メモリアリーナの紹介&落ち穂拾いGo 1.21連載始まります&slogをどう使うべきかGo 1.22リリース連載始まります & ループの変化とTinyGo 0.31単なる翻訳ではなく自分たちならではの付加価値を提供するための執筆の

                                                                  Goリリースノートから技術ブログを書く流れ基礎 | フューチャー技術ブログ
                                                                • Go 1.21リリース、WASI(WebAssembly System Interface)サポート、実行時プロファイルでコンパイル最適化

                                                                  Go 1.21リリース、WASI(WebAssembly System Interface)サポート、実行時プロファイルでコンパイル最適化 Googleが中心となってオープンソースで開発されているGo言語の最新バージョン「Go 1.21」が先々月(2023年8月)リリースされました。 Go 1.21では、WebAssemblyをクロスプラットフォーム対応にするWebAssembly System Interface(WASI)が実験的にサポートされました。 また、実行時のプロファイル情報を基にコンパイルを最適化する「Profile-guided optimization」が正式機能となりました。 Go 1.21.0 is released! Release notes: https://t.co/8yX6FMmTOq Download: https://t.co/AHKMZi9hp1#go

                                                                    Go 1.21リリース、WASI(WebAssembly System Interface)サポート、実行時プロファイルでコンパイル最適化
                                                                  • Go サーバーで外部 API 操作の原子性を頑張る - KAYAC engineers' blog

                                                                    こんにちは、カヤック SRE の市川です。 このエントリは【カヤック】面白法人グループ Advent Calendar 2023の1日目の記事です。 はじめに いきなり鬼のように私事ですが、結婚することになりました。 ISUCON 起床試験に失敗し、成長への決意を込めて(?)購入したチュードル 技術ブログとは全く関係ない話と見せかけて、婚約者が MySQL 互換な分散 DB の会社で働いていることが、想像していた以上に「データの整合性と向き合う機運」の高まりに繋がりました。 ということで今年は気合を入れて 気合いで DDIA 読破 Advent Calendar 2023 なるものを計画しているのですが、会社のアドベントカレンダーも運営担当をしているので、トップバッターやっていきます。 GopherCon Singapore での学び 個人的な話が連続して恐縮ですが年末なので(?)お許しく

                                                                      Go サーバーで外部 API 操作の原子性を頑張る - KAYAC engineers' blog
                                                                    • WASI support in Go - The Go Programming Language

                                                                      Johan Brandhorst-Satzkorn, Julien Fabre, Damian Gryski, Evan Phoenix, and Achille Roussel 13 September 2023 Go 1.21 adds a new port targeting the WASI preview 1 syscall API through the new GOOS value wasip1. This port builds on the existing WebAssembly port introduced in Go 1.11. What is WebAssembly? WebAssembly (Wasm) is a binary instruction format originally designed for the web. It represents a

                                                                        WASI support in Go - The Go Programming Language
                                                                      • Go 1.21 Release Notes - The Go Programming Language

                                                                        Introduction to Go 1.21 The latest Go release, version 1.21, arrives six months after Go 1.20. Most of its changes are in the implementation of the toolchain, runtime, and libraries. As always, the release maintains the Go 1 promise of compatibility; in fact, Go 1.21 improves upon that promise. We expect almost all Go programs to continue to compile and run as before. Go 1.21 introduces a small ch

                                                                          Go 1.21 Release Notes - The Go Programming Language
                                                                        • Borgo Programming Language

                                                                          Borgo is a new programming language that compiles to Go. For a high-level overview of the features and instructions on running the compiler locally, check the README. This playground runs the compiler as a wasm binary and then sends the transpiled go output to the official Go playground for execution. use fmt enum NetworkState<T> { Loading, Failed(int), Success(T), } struct Response { title: strin

                                                                          • Go 1.22リリース連載 net, net/http, net/netip | フューチャー技術ブログ

                                                                            The Gopher character is based on the Go mascot designed by Renée French TIG 真野です。Go1.22連載の8本目です。 Go 1.22 ライブラリのマイナーアップデートである net, net/http, net/netip を取り上げます。 アップデートサマリnet: TCPConnからUnixConnへのio.Copy() で、Linux’s splice(2)システムコールが使われ性能改善 #58808net: WindowsでDNSリゾルバは-tags=netgo 付きでビルドすると、DNSクエリの前に%SystemRoot%\System32\drivers\etc\hosts から検索するようになる [#57757]https://github.com/golang/go/issues/57757)net

                                                                              Go 1.22リリース連載 net, net/http, net/netip | フューチャー技術ブログ
                                                                            • Building an interactive shell in Golang

                                                                              Go is great for building command-line applications. We built one: Dolt, the world's first version-controlled SQL database. We wrote our own command line parser for handling all of Dolt's subcommands and arguments, but maybe we shouldn't have. There are lots of great ones out there that if we might have used instead if we were starting the project today: spf13/cobra has great support for code gener

                                                                                Building an interactive shell in Golang
                                                                              • Request Rejected

                                                                                The requested URL was rejected. Please consult with your administrator. Your support ID is: 721119603503596949 [Go Back]

                                                                                • [Go] json.Unmarshal と json.Decoder の使い分け ~ json.Decoder に親しむ

                                                                                  はじめに 今やあらゆるアプリケーションは Go で書かれていると言っても過言ではない(過言)。そして、今やあらゆるデータは json であると言っても過言ではない(過言)。 となると、Go で json を扱う頻度も必然的に多くなる。そして初めて Go で json をデコードするコードを書こうとした人は、必ずこの問題にぶち当たる。 「json.Unmarshal と json.Decoder は何が違うのか?そしてどちらを使えばいいのか?」 そしてググると大抵以下のような答えにたどり着く。 入力が文字列(string)やバイト列([]byte)の場合は json.Unmarshal() を使う 入力がストリーム(io.Reader)の場合は json.Decoder を使う なるほど、確かにパッと見はそれでいいように思える。思えるんだが、よく見ると実は他にもいくつか考慮すべき点がある。

                                                                                    [Go] json.Unmarshal と json.Decoder の使い分け ~ json.Decoder に親しむ