タグ Go言語
人気順 10 users 50 users 100 users 500 users 1000 users[Go言語] gin と singleflight を組み合わせた試行錯誤と実装例 - Techtouch Developers Blog
singleflight とは gin とは Middleware Context 2つの実装例 1. 同期待ち方式 2. 非同期待ち方式 まとめ こんにちは。テックブログ編集長の izzii です。毎月1本の記事をリリースするという最低限の目標達成が危うかったため、自分でブログを書いて間に合わせちゃいます。みんなもぜひ気分転換がてらブログ書いてくれ... 続きを読む
【更新中】Go言語とEbitengineによる ゼロから始めるゲームプログラミング
🎮 ゲームプログラミングを始めよう!🎮 プログラミング未経験でもゲーム開発未経験でも大丈夫!オカンにも分かるように徹底的に噛み砕いて易しく解説! 環境構築がお手軽で、非常にシンプル、かつ高性能なGoとEbitengineで、ゲーム開発のすべてを学びましょう! 【現在、日々更新中です!2024年末までの完成を目指して... 続きを読む
コントリビュートで沢山の人が救われる。mattn氏が語る、好循環を実現するアウトプット活動の仕組み
コントリビュートで沢山の人が救われる。mattn氏が語る、好循環を実現するアウトプット活動の仕組み 2024年8月6日 mattn 大学卒業後、ソフトウェアハウスやSIerなどでソフトウェア開発に携わる。vi派生のテキストエディタVimの日本語化やプラグイン、Go言語などでOSS(オープンソースソフトウェア)の開発・コミュニティ... 続きを読む
Go言語での実践を通じてクリーンアーキテクチャの理念と実装を学べる解説書が発売/『Go言語で構築するクリーンアーキテクチャ設計』【Book Watch/ニュース】
【Go】HTTPサーバーは安全に終了させましょう
はじめに こんにちは。都内でソフトウェアエンジニアをしているtomoriです。 突然ですが、Go言語でHTTPサーバーを実装する際、サーバーの終了処理を適切に実装できている自信はありますか? 自分が開発に携わっているプロダクトでは、ほんの最近まで下記のような不適切な終了処理を行なっていました(話を簡単にするため... 続きを読む
mattn氏が実践しているエンジニアリング最適なメモ術。アウトプットを継続するための方法論
mattn氏が実践しているエンジニアリング最適なメモ術。アウトプットを継続するための方法論 2024年6月18日 mattn 大学卒業後、ソフトウェアハウスやSIerなどでソフトウェア開発に携わる。vi派生のテキストエディタVimの日本語化やプラグイン、Go言語などでOSS(オープンソースソフトウェア)の開発・コミュニティ運営に... 続きを読む
Goでモンキーパッチするライブラリを作った - Plan 9とGo言語のブログ
Goで単体テストを実装する場合、動的な言語のように「テスト実行中に外部への依存を置き換える」といったことはできません。代わりに、 外部への依存を引数で渡す 外部への依存をインターフェイスで渡す のように、テスト対象をテスト可能な実装に変更しておき、テストの時は外部への依存をモック等に置き換えて実行する... 続きを読む
成長の為にアウトプットがなぜ必要なのか。mattn氏が語る持続的なアウトプットのススメ
成長の為にアウトプットがなぜ必要なのか。mattn氏が語る持続的なアウトプットのススメ 2024年5月16日 mattn 大学卒業後、ソフトウェアハウスやSIerなどでソフトウェア開発に携わる。vi派生のテキストエディタVimの日本語化やプラグイン、Go言語などでOSS(オープンソースソフトウェア)の開発・コミュニティ運営に参加... 続きを読む
UbieにおけるGo言語のエラーハンドリング
背景 Ubieでは以下の記事にあるように、一昨年から新しく始めるプロジェクトにはGoとTypeScriptを積極的に採用しています。私は本来プロダクトセキュリティが主な専門領域なのですが、公私ともに普段からGoでツールやサービスの開発をしているため、社内のGo言語の普及をサポートしたりプロダクト開発に参加したりしてい... 続きを読む
Goのテスト安定性向上のためにFlakyなテストを再試行する機能を導入する提案 - tomato3713’s blog
Go言語にFlakyなテストへのサポートを追加する提案が面白かったので紹介します。 概要 Flakyなテストとは、コードに変更がないにもかかわらずテストが成功したり失敗したりと不安定な実行結果になるテストのことです。 テスト結果は本来なら全て成功ならリリース可能、1つでも失敗すればバグがあるのでリリース不可のよ... 続きを読む
ebpf-goによるLinuxカーネルトレース入門
ebpf-goによるLinuxカーネルトレース入門 ebpf-goを使用したLinuxカーネルトレース(fentry)について紹介します。 ebpf-goは、eBPFのGo向けライブラリです。このライブラリは、libbpfに依存せず(cgoを使用せず)にeBPFプログラムとデータのやり取りが可能であるため、ポータビリティが高くGo言語に適したeBPFライブラリと... 続きを読む
Go言語で書かれたPHPアプリケーションサーバ「FrankenPHP 1.0」がリリース
FrankenPHP 1.0には、Symphony、Laravel、WordPressなどのネイティブサポートが含まれるほか、Caddyを搭載したプロダクショングレードのPHPサーバであり、PHPアプリのスタンドアロンで実行可能なバイナリとしてのパッケージ化が可能となっている。 さらに、PHP-FPMとNgnixを個別に実行する必要がなく、1つのサービスのみ... 続きを読む
機械学習モデルのA/BテストをしやすくするGo言語のAPI設計 - エムスリーテックブログ
こちらはエムスリー Advent Calendar 2023 11日目の記事です。 DALL-Eでサムネ作るの楽勝だぜとなりそうでならない Overview A/Bテストをしまくっている、機械学習エンジニアの農見(@rookzeno)です。皆さんA/Bテストをしてますでしょうか。エムスリーでは色々な施策の効果を見るために沢山のA/Bテストをしています。その... 続きを読む
Go言語のAPIサーバーの冗長なエラーログを40%削減した話 #LayerXテックアドカレ - LayerX エンジニアブログ
こんにちは。バクラク申請・経費精算エンジニアの@upamuneです。先週末は30kmのトレイルレースがありましたが、今週末はフルマラソンがあるので満身創痍です。 この記事はLayerXテックアドカレ2023の22日目の記事です。 私はなぜか3日分もテックアドカレに入れてしまったのですが、2回目の今回はAPIサーバーのエラーログ... 続きを読む
Goで非推奨(Deprecated)や撤回(Retracted)を明示する方法 - Plan 9とGo言語のブログ
最近のGoには、関数やパッケージを非推奨と扱う方法があります。まとまっていると便利かなと思うので、種類ごとにまとめてみました。GoDocコメントを多用するので、GoDocを書き慣れていない場合は以下も参考にしてください。 blog.lufia.org 関数と型を非推奨にする 関数コメントに、// Deprecated: ではじまる段落を追... 続きを読む
Goのテーブル駆動テストではテストケースの定義位置を知りたいのでライブラリを書いた - 詩と創作・思索のひろば
Go言語でテストを書く際のベストプラクティスとして、テーブル駆動テスト(Table dirven tests) というのが推奨されている。ようはデータとふるまいを分離しましょうという話で、正直わざわざ名前をつけるようなものでもなかろうという気持ちもないではないが、まあ話がはやくていいね。 けどみんなほんとにこれで満足... 続きを読む
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 Sy... 続きを読む
Go言語で高速JSONライブラリをメモリ安全にしたらさらに速くなった話
はじめに こんにちは。Sugawara Yuutaです。"Go言語で最速のJSONデコーダーを作った話", "それでも僕はGoで最速のJSONデコーダーを作りたかった"...以来の方はまた読んでいただきありがとうございます。まだの方は、経緯を伝えやすくなると思うので、そちらの方も読んでいただけたら幸いです。 その後 Go言語チームのメ... 続きを読む
Go言語でsliceの重複排除 (slicesやsamber/loパッケージを使う場合) - stefafafan の fa は3つです
Go言語でsliceの重複排除について書きます。Go 1.21前提です。 slices パッケージを使っての重複排除 Go 1.21から slices パッケージが増えました。ここに生えている関数を利用して重複削除のコードが書けます。 pkg.go.dev 例えば int の slice の重複排除は以下のように書けます。 integers := []int{1, 2, 2, 1} slic... 続きを読む
テストケースの名前には条件と結果を含めた方が良い - 感情を込める
という考えにたどり着いたので、考えのスナップショットを取っておく。 Go言語における、テスト関数名とサブテストのname引数の値を「テストケースの名前」・「テスト名」と呼ぶことにしている。 (*testing.T).Run(name string, f func(t *testing.T)) bool テスト名に近いものとして、(*testing.T).Errorや(*testing.T)... 続きを読む
Go言語、実行時プロファイル情報による最適化「Profile-guided optimization」が正式機能に。Go 1.21リリース
Go言語の開発チームは8月8日にリリースしたGo 1.21で、実行時のプロファイル情報を用いてコンパイルを最適化し、実行速度の改善を図る「Profile-guided optimization」機能が正式版になったことを明らかにしました。 Go言語のコンパイルはソースコードの静的な解析を基にして高速なバイナリを生成するような最適化が行わ... 続きを読む
Go言語を習得するために、Goちゃんねるを作った
先週、A Tour of Go やってみた TIL というブログを書いてみた通り、Go言語を始めた。 で、ちまちま勉強をしていたのだが、つい最近たまたま ISUCON の過去問をやる機会があって Go のスコアを見たら初期値ですら、チューニング済みの他の言語のスコアを超えていて、絶対に習得するぞの気持ちにさせられた。 ちなみに私... 続きを読む
公式GoクライアントindigoでBlueskyのAPIを使ってみた - 小野マトペの納豆ペペロンチーノ日記
みなさんはまだXで消耗してますか?Blueskyに移住中の小野マトペです。 Go言語でBlueskyにポストを投稿するコードを書いたのですが、ベータ版とあってドキュメントも少なくやや難儀したので、メモとして残します。記事を通じて、Blueskyのアーキテクチャのユニークさも少しだけ伝われば良いなと思います。 クライアント... 続きを読む
「Go言語で楽しくなるシステム開発:基礎から実践テクニック」mattn × 渋川よしき | ITエンジニア向けのトレンド情報
【Go言語入門】Go言語とは? まずはGo言語の基礎をおさらいしていきましょう。 Go言語は、Googleと世界的エンジニアが共同開発した言語 Go言語は、Googleによってプログラミング環境を改善する目的で開発されました。この開発には、C言語を設計した世界的なエンジニアが携わっています。 Kenneth Lane Thompson (Ken Th... 続きを読む
Go言語1.21で、WebAssembly System Interface(WASI)の実験的サポートへ
Go言語1.21で、WebAssembly System Interface(WASI)の実験的サポートへ Googleが中心となってオープンソースで開発されているGo言語の次期バージョン「Go 1.21」では、WebAssembly System Interface(WASI)が実験的にサポートされることが明らかになりました。 これによりGo言語で簡単にファイルアクセスなどOSの主要... 続きを読む