並び順

ブックマーク数

期間指定

  • から
  • まで

1001 - 1040 件 / 2480件

新着順 人気順

goの検索結果1001 - 1040 件 / 2480件

  • Go言語製のCUIツールを1行でWeb GUI化するライブラリを作った - Qiita

    はじめに 皆さん、CUI/CLIツールを使ってますか? Qiitaを読んでるような人はみんな使ってるでしょうね。 しかし世間一般に視野を広げると、必ずしもそうではないかと思います。 『黒い画面はなんか敷居が高い』 『一応使えるけど面倒』 『信仰している宗教の戒律で固く禁じられている』 『黒い画面に故郷の村を焼かれた』 などなど理由は様々です。 flagstone 使う側にとっては敷居の高いCUIツール。 とはいえGUIのツールを作るのは、我らがGo言語ではなかなかに面倒です。 そこで、Go言語製のCUIツールを1行でWeb GUI化するライブラリを作ってみました。 flagstone https://github.com/kurehajime/flagstone これです。 flagstoneは、日本語に訳すと『敷石』です。 舗装して歩きやすくしますよ〜みたいなネーミングです。 使い方はと

      Go言語製のCUIツールを1行でWeb GUI化するライブラリを作った - Qiita
    • jsondiff: JSONの構造の一部を無視して差分をとれるGoのライブラリを書いた - Sexually Knowing

      github.com 背景 仕事でお世話になっているkayac/ecspressoの機能の中にローカルのタスク・サービス定義と現在使われている定義を比較して差分を出力してくれるものがある。 github.com これから加えようとしている差分をプレビューできるだけではなく、たとえばデプロイしようとしているわけでもないのに差分があればローカルの定義が古びていることがわかるのでCIに組み込めると便利。 しかし実際に使おうとすると困る点が見つかった。 たとえばタスク定義にイメージタグを書く際に {{ must_env 'IMAGE_TAG' }} のように環境変数を参照している時に「イメージタグ 以外 に差分がない」ことを確認するのが難しいということ。 理想的には image を無視したJSONの構造を比較して差分が出せると良い。あるいは出力されるdiffをパースして image の差分は無視す

        jsondiff: JSONの構造の一部を無視して差分をとれるGoのライブラリを書いた - Sexually Knowing
      • Introducing Caddy 2 - The Ultimate Server with Automatic HTTPS

        v2 new Download Documentation Forum GitHub Account For business A new kind of extensible platform for server apps. Still the only web server to use TLS automatically and by default. Deploy and scale HTTPS effortlessly with Caddy 2.

          Introducing Caddy 2 - The Ultimate Server with Automatic HTTPS
        • Golangでバイナリを配布するとき、go-licensesとgoxzを使って利用モジュールのLICENSE、NOTICEを同梱する - 理系学生日記

          Golangで作ったプロダクトを公開・配布するとき、課題となるのが利用するモジュールのライセンスです。 MITライセンスであれ、MPLライセンスであれ、利用するモジュールのLICENSEやNOTICEファイルを同梱することになるでしょう。 goxzとgo-licensesを使うと、クロスビルドした実行バイナリと利用モジュールのLICENSE等を含め頒布物を作成できるようになります。 最終イメージ 同梱されていることの確認 go-licenses ハマりポイント goxz まとめ 最終イメージ 最終イメージですが、以下のようなMakefileを用意しました。 プロダクトに設定したライセンスで利用できないモジュールがあるかどうかをlicense-checkで確認した後、cross-build.shを呼び出します。 .PHONY: license-check license-check: go-

            Golangでバイナリを配布するとき、go-licensesとgoxzを使って利用モジュールのLICENSE、NOTICEを同梱する - 理系学生日記
          • 最近よく書く HTTP サーバ基礎部分 - あれ

            この記事は Go3 Advent Calendar 2019 13日目の記事です qiita.com TL;DR x/sync/errgroup はいいぞ 本編 最近よく書くサーバの起動部分のコードを紹介します 分かる人には見るのが一番早いと思うので、早速コード全体を載せます やりたいことは localhost:8888 で HTTP サーバを起動 SIGINT を受けると HTTP サーバを graceful shutdown 各所での ctx.Done() のハンドリング これらを混乱しないように記述したかったのが最初のモチベーションです package main import ( "context" "fmt" "net/http" "os" "x/sync/errgroup" ) func main() { os.Exit(run(context.Background())) }

              最近よく書く HTTP サーバ基礎部分 - あれ
            • tcコマンドとDockerコンテナを用いて遅いネットワークをシミュレートする - kkty’s blog

              「手元で、できるだけ実際の環境に近い環境でプログラムの挙動を確認したい」ということがあるかと思います。そこで今回は、遅い(レイテンシの高い)ネットワークをDockerコンテナを用いてシミュレートする具体的な方法を紹介します。 準備 以下のファイルを作成していきます。 docker-compose.yml client/Dockerfile server/Dockerfile server/main.go docker-compose.yml ネットワーク周りをいじるため、cap_addでNET_ADMINを指定する必要があります。 version: "3.0" services: client: container_name: client build: ./client tty: true cap_add: - NET_ADMIN server: container_name: serv

                tcコマンドとDockerコンテナを用いて遅いネットワークをシミュレートする - kkty’s blog
              • CでもC++でもなく「Rust」を使いたくなる“なるほどの理由”

                関連キーワード アプリケーション開発 | プログラマー | プログラミング 独立性の高い小規模サービス「マイクロサービス」の開発において、プログラミング言語「Rust」は一定の地位を築いている。Rustにはどのような強みがあるのか。 CやC++じゃなく「Rust」を選ぶ理由はこれだ 併せて読みたいお薦め記事 連載:GoとRustを比較する 第1回:CでもC++でもなくプログラミング言語「Go」を使いたくなる“あの良さ”とは? 第2回:「Go」に期待し過ぎたプログラマーが落胆する“完璧じゃない部分” GoとRustの魅力 プログラミング言語「Go」の魅力とは? 「Goで“脱COBOL”」の成功者が語る 「Rust」はなぜクラウドネイティブ開発者の間で大人気なのか? 「C」や「C++」といったプログラミング言語では、開発者は手動でメモリを管理する必要があるが、Rustはその必要はない。これはプ

                  CでもC++でもなく「Rust」を使いたくなる“なるほどの理由”
                • 気軽に始めるGraviton2マネージドサービスによるコスト最適化 / Amazon Game Tech Night #23

                  https://gamingtechnight.connpass.com/event/230933/

                    気軽に始めるGraviton2マネージドサービスによるコスト最適化 / Amazon Game Tech Night #23
                  • Golang IO Cookbook

                    In the last couple of days I made a program called Horcrux which allows you to split a file into any number of horcruxes, a subset of which can then be recombined to resurrect the original file. In the process I learnt a lot about the io.Reader and io.Writer interface, and thought I would do a writeup to help build intuition for all the people out there who inevitably will find themselves using th

                      Golang IO Cookbook
                    • Go 1.21連載始まります&slogをどう使うべきか | フューチャー技術ブログ

                      Go 1.21は久々の新しいライブラリが大量追加だったり、既存のパッケージへの改良の多数行われたり、あたらしい組み込み巻数が追加されたりで記事などが書きやすいリリースです。残念ながら、フューチャーで一番Goを使っているプロジェクトが山場で今回はちょっと書き手が少ないのですが、今回もお付き合いいただけるとうれしいです。 1.21の更新内容のまとめダイジェスト 1.18の時に入るといって直前にキャンセルになった、ジェネリクスのためのパッケージslices/mapsの復活 新しい組み込み巻数のmin/max/clearの追加 言語仕様の強化 パッケージの初期化順序が仕様化 型推論ちょっぴり強力に 次期バージョンで入る予定のループ変数が共有されちゃうバグ対策が実験実装 ランタイムの性能改善(いつもの) 深いスタックオーバーフロー時のトレースが見やすく(最新100ではなく、最新50と一番外側の50表

                        Go 1.21連載始まります&slogをどう使うべきか | フューチャー技術ブログ
                      • Go Conference 2023 にて Go/Cgoで映像・音声のリアルタイム処理をやるまでの道のり というタイトルでお話してきました - Mirrativ Tech Blog

                        こんにちは ハタ です。 このたび Go Conference 2023 Online にて Go/Cgoで映像・音声のリアルタイム処理をやるまでの道のり というタイトルで発表しました 久しぶりの大きなカンファレンスでの登壇だったのでとても緊張しましたが、10周年を迎えた機会に登壇できて光栄です gocon.jp 今回発表した資料はこちらになります、当日のアーカイブは近々公開されると思いますのでお待ち下さい speakerdeck.com (2023/06/28追記) アーカイブ公開されたようです! もし当日ご覧になれなかった方はこちらからご視聴ください! zenn.dev さて、今回登壇するにあたり資料を用意していたのですが、発表時間の関係で削除してしまった内容がいくつかあるため、ここで紹介させてください go <-> cgo のオーバーヘッドを何とかしたい トランポリンコードの世界 c

                          Go Conference 2023 にて Go/Cgoで映像・音声のリアルタイム処理をやるまでの道のり というタイトルでお話してきました - Mirrativ Tech Blog
                        • 複数のGoroutineをWaitGroup(ErrGroup)で制御する

                          この記事はGo7 Advent Calendar 2019五日目の記事です。 やりたいこと下記のように直列で動作し実行時間の長いGoのプログラムを、並行処理に変えて処理を効率化させます。 package main import ( "fmt" "time" ) func main() { for i := 0; i < 100; i++ { time.Sleep(2 * time.Second) // 長い処理 fmt.Println("End:", i) } }

                            複数のGoroutineをWaitGroup(ErrGroup)で制御する
                          • ISUCON12予選にシン・ウー馬場ーイー2として参加し、2位で予選突破しました - Gマイナー志向

                            TL;DR ISUCON12予選にシン・ウー馬場ーイー2 として出場しました。 結果、予選2位で本選出場をきめました。やったね。 最終スコアは75800、予選中のベストスコアは76525でした。本選もがんばるぞ! 毎年素晴らしいコンテストを開催してくださる運営様には感謝しかありません。本当にありがとうございます!!1 体制 あいこん なまえ やくわり ペアプロ matsuu バリバリ実装する前衛 ドライバー netmarkjp 司令塔+ベンチ実行+結果解析 ナビゲーター ishikawa84g セキュリティ+情報官+動作確認 AppArmor、マニュアルや公式アナウンスの把握、ブラウザでの挙動確認 ナビゲーター 今年も3人が別々の場所からリモート参加です。 コミュニケーションはDiscordを使ってます。3人それぞれの画面を共有しながら音声チャットつなぎっぱなしです。 手元の環境 どうでも

                              ISUCON12予選にシン・ウー馬場ーイー2として参加し、2位で予選突破しました - Gマイナー志向
                            • 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 公式ブログ
                              • Unified Diff 形式の差分から Go AST を構築して feature flag を自動計装する

                                Go Conference 2024 の登壇資料 https://gocon.jp/2024/sessions/11/

                                  Unified Diff 形式の差分から Go AST を構築して feature flag を自動計装する
                                • GitHub - samber/lo: 💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)

                                  ✨ samber/lo is a Lodash-style Go library based on Go 1.18+ Generics. This project started as an experiment with the new generics implementation. It may look like Lodash in some aspects. I used to code with the fantastic "go-funk" package, but "go-funk" uses reflection and therefore is not typesafe. As expected, benchmarks demonstrate that generics are much faster than implementations based on the

                                    GitHub - samber/lo: 💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)
                                  • `*sql.DB` を観察する #golang | Wantedly Engineer Blog

                                    Photo by Abo Ngalonkulu on UnsplashPeople tribe / Backend squad の @izumin5210 です。もう12月ですね。自分は Advent Calendar に登録しすぎて後悔するのが得意です。 この記事は Go3 Advent Calendar 2019 の4日目です。 TL;DRSQL のメトリクス・トレースを収集したいは driver.Driver をラップするのが常套手段コネクション取得までの待ち時間まで見たい場合は、DBStats を見るのがよさそうことの発端Wantedly では Application Performance Monitoring に New Relic を利用しています。New Relic APM には様々な機能が存在しますが、例えばエンドポイントごとに「どの処理でどれくらいの時間がかかっているか

                                      `*sql.DB` を観察する #golang | Wantedly Engineer Blog
                                    • インフラが苦手な人の個人開発(ECS、terraform) - Qiita

                                      はじめに 本記事は 個人開発 Advent Calendar 2019 25日目の記事です。 最近connpassに掲載されている勉強会を地図を見ながら検索できるようなサイトを作りました。 (もともと同僚が勉強会でこんな感じのアプリを作っておりそれに触発された) https://connpass.net/ 使った技術としては フロント: typescript、react、redux、circleci、cloudfront、s3、terraform バックエンド: go、gin、docker、nginx、circleci、ecs、terraform な感じです。 仕事ではあまりインフラまわりを触ることがなく、CI/CD環境の知見があまりないが、それっぽいものを自分で作ってみようとしました。 フロント アプリケーション アプリケーションの土台はcreate-react-appを使いtypesc

                                        インフラが苦手な人の個人開発(ECS、terraform) - Qiita
                                      • Go格言集に込められた詩情とダブルミーニング|TechRacho by BPS株式会社

                                        Go言語には、かなり初期から「Go Proverbs」と呼ばれるGoの格言集があります。 Go Proverbs 同サイトに記載されている格言は、2015年のRob Pikeの講演動画にもリンクされています。 日本語訳はいくらでもネットに落ちているので探せばすぐに見つかるでしょう。 銀座Rails#38の発表「TechRacho翻訳記事の裏舞台」の中でこのGo Proverbsについて少し触れたのですが、惜しくも途中で時間切れとなってしまったのでここで供養したいと思います。 【銀座Rails#38発表紹介】 @hachi8833 さんより「TechRacho翻訳記事の裏舞台」 Ruby/Railsの技術記事・海外の記事翻訳を継続的に公開されているTechRachoの担当者から、翻訳記事の舞台裏について発表頂きます(5/8) #ginzarails https://t.co/aaDkwbVS

                                          Go格言集に込められた詩情とダブルミーニング|TechRacho by BPS株式会社
                                        • Goでミドルウェアとインターセプターのテストをする方法

                                          はじめに この記事では HTTP のミドルウェアと gRPC のインターセプターのユニットテストの方法について紹介します。 HTTPミドルウェアのテスト gRPCインターセプターのテスト HTTP のミドルウェアや gRPC のインターセプターといえば Web サービスの共通処理の実装が集中する場所です。共通処理であるが故に開発初期に作り込んで後から手を入れることが少ないという特性があります。あまり手を入れることがないからといってユニットテストを省いてしまうと、あとから機能追加したり、バグを発見したりしたときに慌てることになります。共通処理が集まるコードはいざという時に備えてしっかりユニットテストをしてあげましょう。 HTTPミドルウェアのテスト まずは HTTP ミドルウェアのテスト方法を見てみます。 テスト対象のミドルウェア 以下の HTTP ミドルウェアのコードをテストします。コンテ

                                            Goでミドルウェアとインターセプターのテストをする方法
                                          • リンカを変えてgo buildを 速く出来るか

                                            hatena.go 5分LTの発表資料 https://hatena.connpass.com/event/307931/

                                              リンカを変えてgo buildを 速く出来るか
                                            • 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の主要なAPIを呼び出しつつ、特定のOSに依存しないポータブルな実装のWebAssemblyアプリケーション開発の実現が期待されます。 Go 1.21 Release Candidate 3 is released! Run it in dev! Run it in prod! File bugs! https://t.co/Ul1xGhvlkf Announcement: https://t.co/5Ncs1od

                                                Go言語1.21で、WebAssembly System Interface(WASI)の実験的サポートへ
                                              • GitHub - sqlc-dev/sqlc: Generate type-safe code from SQL

                                                You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                  GitHub - sqlc-dev/sqlc: Generate type-safe code from SQL
                                                • A Guide to the Go Garbage Collector - The Go Programming Language

                                                  Introduction This guide is intended to aid advanced Go users in better understanding their application costs by providing insights into the Go garbage collector. It also provides guidance on how Go users may use these insights to improve their applications' resource utilization. It does not assume any knowledge of garbage collection, but does assume familiarity with the Go programming language. Th

                                                    A Guide to the Go Garbage Collector - The Go Programming Language
                                                  • GitHub - multiprocessio/dsq: Commandline tool for running SQL queries against JSON, CSV, Excel, Parquet, and more.

                                                    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                      GitHub - multiprocessio/dsq: Commandline tool for running SQL queries against JSON, CSV, Excel, Parquet, and more.
                                                    • Go1.22 リリース連載 HTTPルーティングの強化 | フューチャー技術ブログ

                                                      はじめにGo1.22リリース連載 の5本目です。 本記事ではGoの標準ライブラリである net/http の ServeMux におけるルーティング周りの強化について取り上げます。 関連する Release Note と Issue はこちらを参照してください。 https://tip.golang.org/doc/go1.22#enhanced_routing_patterns https://github.com/golang/go/issues/61410 変更点HTTPメソッドの指定が可能にServeMux.Handle や ServeMux.HandleFunc を使用してハンドラを登録する際に GET /xxx のようにHTTPメソッド指定して、ハンドラを呼び分けることができるようになりました。 mux := http.NewServeMux() // GETを指定したハンドラ

                                                        Go1.22 リリース連載 HTTPルーティングの強化 | フューチャー技術ブログ
                                                      • Go 1.16からリリースされたgo:embedとは | フューチャー技術ブログ

                                                        TIGの伊藤真彦です。 この記事はGo 1.16連載の1記事目です。 トップバッターとしてgo:embedについて記事を書きます。 go:embedとはプロポーザルとなるissueはこちら、2020年9月のissue作成から約5ヶ月の時を経てgo:embedがリリースに含まれることになりました。 embedとは埋め込みという意味です、その名の通りファイル埋め込みをサポートするためのパッケージです。ファイルを読み込むだけならosやio/ioutilでも行うことが可能ですが、go:embedならではの特徴を説明します。 ちなみにio/ioutilはGo 1.16でdeprecatedになりました、詳しくは連載の他の記事で説明します。 利用方法手始めにサンプルコード、main.goを書いてみました。 main.gopackage main import ( _ "embed" "encoding

                                                          Go 1.16からリリースされたgo:embedとは | フューチャー技術ブログ
                                                        • How We Saved 70K Cores Across 30 Mission-Critical Services (Large-Scale, Semi-Automated Go GC Tuning @Uber)

                                                          How We Saved 70K Cores Across 30 Mission-Critical Services (Large-Scale, Semi-Automated Go GC Tuning @Uber) Introduction As part of Uber engineering’s wide efforts to reach profitability, recently our team was focused on reducing cost of compute capacity by improving efficiency. Some of the most impactful work was around GOGC optimization. In this blog we want to share our experience with a highly

                                                            How We Saved 70K Cores Across 30 Mission-Critical Services (Large-Scale, Semi-Automated Go GC Tuning @Uber)
                                                          • 『初めてのGo言語―他言語プログラマーのためのイディオマティックGo実践ガイド』、『Learning Go: An Idiomatic Approach to Real-World Go Programming』の邦訳が出版される - Magnolia Tech

                                                            初めてのGo言語 ―他言語プログラマーのためのイディオマティックGo実践ガイド 作者:Jon BodnerオライリージャパンAmazon 『Learning Go: An Idiomatic Approach to Real-World Go Programming』の邦訳が出版される。 『初めてのGo言語―他言語プログラマーのためのイディオマティックGo実践ガイド』という署名になっているけど、サブタイトルがいいな。原著と全然違うんだけど、本書を読んだことがある人なら、「あーこっちの方が合っているなー」と思えるはず。 原著が出た時にすぐに買ったのに、積んであったのを最近ISUCONのためにようやく読んだ。 blog.magnolia.tech 既に何らかのプログラミング言語を習得している人が読むことが前提で、プログラミング言語が備える機能の概念ではなく、機能を設計の背景含めて流れるように解

                                                              『初めてのGo言語―他言語プログラマーのためのイディオマティックGo実践ガイド』、『Learning Go: An Idiomatic Approach to Real-World Go Programming』の邦訳が出版される - Magnolia Tech
                                                            • Go で RDBMS のいろんな Utility を作ってみた

                                                              技術ネタ中心にその他雑多なことを

                                                                Go で RDBMS のいろんな Utility を作ってみた
                                                              • 個人開発のWebサービス構成(2021年)

                                                                / kyokomi note / blog個人開発のWebサービス構成(2021年)January 10, 2021 [Go | Web | 個人開発]※2021/1/5時点の構成次回変更時に振り返ることができるようにしておきたいと思ったので、変更点をまとめておくことにした。 Next.jsを使うようになった流行りの?Client側とSSRでハイブリットな感じにした。SPA特有の面倒くささがなくなったの一番の感動。 もともとは React + Redux-Toolkit でSPAして、FirebaseFunction でogp対応的な感じだった。 モチベーションAPIサーバー(Go)も自分で書くため、swaggerを元に生成したtypeをReduxのStoreとして再定義して管理みたいな感じになっており、面倒だな〜と思いつつやってたが、静的なページは getStaticProps や ge

                                                                  個人開発のWebサービス構成(2021年)
                                                                • OpenTelemetry Go Deep Dive

                                                                  はじめに この記事はGo 言語 Advent Calendar 2023及びOpenTelemetry Advent Calendar 2023 8 日目の記事です。 今まで OpenTelemetry に関する記事をいくつか書いてきました(App Runner にデプロイしたアプリからトレースを X-Ray や Jaeger で可視化する記事やコンテナでデプロイした Lambda から X-Ray に OpenTelemetry でトレースを送る記事など)。今までの記事はどちらかというとインフラ観点のものが多く、アプリのサイドカーで OpenTelemetry Collector を動かしてマネージドサービスや OSS のツールにトレースを送る設定だったり、コンテナで動かして docker compose でローカルでも動かせるようにするだったりにフォーカスした内容が多かったです。一方で

                                                                    OpenTelemetry Go Deep Dive
                                                                  • Migrating to Go Modules - The Go Programming Language

                                                                    Jean de Klerk 21 August 2019 Introduction This post is part 2 in a series. Part 1 — Using Go Modules Part 2 — Migrating To Go Modules (this post) Part 3 — Publishing Go Modules Part 4 — Go Modules: v2 and Beyond Part 5 — Keeping Your Modules Compatible Note: For documentation, see Managing dependencies and Developing and publishing modules. Go projects use a wide variety of dependency management s

                                                                      Migrating to Go Modules - The Go Programming Language
                                                                    • タクシーアプリ「GO」Android版へ自動テストを導入するまでの道のり - DeNA Testing Blog

                                                                      こんにちは、Androidチームの田熊(fgfgtkm)と外山(sumio)です。SWETのAndroidチームでは、Androidのプロダクトに対して自動テストのサポートをしています。 この度株式会社Mobility Technologiesが提供するタクシーアプリ「GO」のAndroid版に対する、おおよそ2年間に渡る取り組みが終了しました。 本記事では、この取り組みで行ってきた次の2点を紹介したいと思います。 「GO」のAndorid版に対してどのような自動テストを導入したか 開発チームに自動テストを定着させるまでにやったこと タクシーアプリ「GO」に対しての自動テスト導入 SWETのAndroidチームは「社内のAndroidエンジニアが自動テストを書くことを習慣化している」ことをゴールの1つとして、自動テストを普及させるための取り組みをしています。 その中でAndroidのテスト

                                                                        タクシーアプリ「GO」Android版へ自動テストを導入するまでの道のり - DeNA Testing Blog
                                                                      • カジュアルに使えるスタブサーバとしてhttpstubとgrpcstubを作って使っている - Copy/Cut/Paste/Hatena

                                                                        このエントリは Go Advent Calendar 2023 12 日目の記事です。 Goのテスティングパッケージで一番好きなパッケージは net/http/httptest です。 テスト実行時に実際にHTTPサーバを立ててHTTPリクエストを受けるというシンプルかつ強力なアプローチが良いです。 クライアント側にエンドポイントを変える仕組みさえあればクライアントのリクエストを受け付ける形でテストを構築することができるので、選択肢に入れておきたいテスト構成です。 ところで、私たちは runn (ランエヌ)というシナリオテスティングツールを開発しています。 github.com runnはHTTPクライアントでありgRPCクライアントでもあるのですが*1、そのrunn自体のテストのためにhttpstubとgrpcstubを作って使用しています。 httpstub github.com ht

                                                                          カジュアルに使えるスタブサーバとしてhttpstubとgrpcstubを作って使っている - Copy/Cut/Paste/Hatena
                                                                        • Spectral Contexts in Go (ファントム型を使った Context)

                                                                          type UserID string type userIDKey struct{} func GetUserID(ctx context.Context) (UserID, bool) { val, ok := ctx.Value(userIDKey{}).(UserID) return val, ok } func WithUserID(ctx context.Context, userID UserID) { return context.WithValue(ctx, userIDKey{}, userID) } ctx := req.Context() // リクエストの context.Context // JWT などから取り出した User ID を context へセット ctx = WithUserID(ctx, "user-id") // ビジネスロジックで cont

                                                                            Spectral Contexts in Go (ファントム型を使った Context)
                                                                          • isucon9q_bench.md

                                                                            isucon9q_bench.md ISUCONのベンチマーカーとGo catatsuy メルカリSRE mercari.go #11 - connpass https://mercari.connpass.com/event/148913/ ISUCONとは http://isucon.net お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトル 競技者は与えられたWebアプリケーションを高速化する 複数の言語による実装(ISUCON9予選ではGo/Perl/PHP/Ruby/Node.js/Python)を運営側が用意する ベンチマークを実行するとアプリケーションに対して仕様確認・負荷走行をしてスコアが出力される 私とISUCON ISUCON4:2位(初出場) ISUCON5:8位 ISUCON6:運営(本選) ISUCON7:予選敗退 I

                                                                              isucon9q_bench.md
                                                                            • Goの開発環境にAWS Cloud9をつこうてみる | DevelopersIO

                                                                              どうも、moriです。 AWS SDK for Goを使う開発で開発環境 (IDE)としてAWS Cloud9を使ってみたので、作成方法と実際にコードを書いてデバッグ実行するところまでを紹介したいと思います。 AWS Cloud9概要 ブラウザのみでコードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE) です。 コードエディタ デバッガー ターミナル が内包されており、多くの言語ツールがサポートされています。サポートされているブラウザは、Google Chrome、Safari、Firefox、Microsoft Edge の最新バージョンです。 大きな特徴として、以下が挙げられます。 ペアプログラミングサポートをサポートしている 開発環境をチームと共有し、ペアプログラミングを一緒に行うことができます。 リアルタイムで確認できるので、拠点の離れたメンバーともやりやすいか

                                                                                Goの開発環境にAWS Cloud9をつこうてみる | DevelopersIO
                                                                              • Github Issuesをキレイに外部公開するサービス「2go」作ってみた - Crieit

                                                                                はじめに 今回初めて個人開発で作ったサービスを公開します。今までも何回かトライしていたのですが、なかなか公開までに至らないうちに、なにか問題にぶちあたったり、時間がかかりすぎて情熱が冷めてしまったりしていたので、今回はまずはスモールスタートで公開して改善していくことを心がけました。大体今回の公開まで、開発を始めてから1ヶ月程度になります。毎日朝4時半に起きて、子どもたちが起きる7時過ぎまでを開発時間として取り組んできました。 どんな人向け? 自分で作っているサービスの開発ロードマップをユーザーに公開するために、都度ブログを書いたりするのも大変ですよね。もし、自分のサービスのソースコードをGithubで管理していたとして、Github Issuesを見せるとしてもGithubに馴染みのない人にとっては読みにくいですし、外に出すサービスであればあるほど、Githubのレポジトリは非公開になって

                                                                                  Github Issuesをキレイに外部公開するサービス「2go」作ってみた - Crieit
                                                                                • いまさらだけどgRPCに入門したので分かりやすくまとめてみた - Qiita

                                                                                  はじめに gRPCという言葉自体はよく聞いていたのですが、「RESTと同じような立ち位置なんだよね?何が違うの?」という状況だったので調べてまとめてみました。 モダンな技術を採用している企業では、既にサービスで当たり前のように活用されている技術ですので、gRPCの基本レベルで自信無い方は目を通してみてください。 gRPCとは gRPCはGoogle謹製のHTTP/2を利用したRPCフレームワークです。 Protocol Buffersを利用し、データをシリアライズして高速なRPCを実現します。 (Protocol Buffers以外も利用可能ですが、デファクトスタンダードとなっているため、本記事ではProtocol Buffersを前提に説明します。) protoファイルと呼ばれるIDL(Interface Definition Language)にAPI仕様を記述します。 また、IDLか

                                                                                    いまさらだけどgRPCに入門したので分かりやすくまとめてみた - Qiita