並び順

ブックマーク数

期間指定

  • から
  • まで

321 - 360 件 / 386件

新着順 人気順

goの検索結果321 - 360 件 / 386件

  • Go言語始めたいんですが何から始めたらいいでしょうか。 作りたいものとしてはWebのバックエンドとかを想定しています。 参考までに当方のレベル感 Python3: ちょっと書けるがDjangoとかflaskみたいなWebフレームワークはチラ見した程度 Java: サーブレットいじったりEffective Javaを半分くらいまで読んだりして勉強中。オブジェクト指向はだいたいわかる。 その他: C,Ruby,TS(node,React)は一冊本読んでサンプルコード動かした程度。 | mond

    Go言語始めたいんですが何から始めたらいいでしょうか。 作りたいものとしてはWebのバックエンドとかを想定しています。 参考までに当方のレベル感 Python3: ちょっと書けるがDjangoとかflaskみたいなWebフレームワークはチラ見した程度 Java: サーブレットいじったりEffective Javaを半分くらいまで読んだりして勉強中。オブジェクト指向はだいたいわかる。 その他: C,Ruby,TS(node,React)は一冊本読んでサンプルコード動かした程度。 色々と意見はあると思いますが、Go で Web バックエンドを作るのであれば、HTTP の理解度に合わせて使う物を変えてみると良いかもしれません。 HTTP の仕組みがある程度わかるGo の Web フレームワークを使わず net/http パッケージだけを使ってアプリケーションを作って見られるのが良いと思います。n

      Go言語始めたいんですが何から始めたらいいでしょうか。 作りたいものとしてはWebのバックエンドとかを想定しています。 参考までに当方のレベル感 Python3: ちょっと書けるがDjangoとかflaskみたいなWebフレームワークはチラ見した程度 Java: サーブレットいじったりEffective Javaを半分くらいまで読んだりして勉強中。オブジェクト指向はだいたいわかる。 その他: C,Ruby,TS(node,React)は一冊本読んでサンプルコード動かした程度。 | mond
    • [Go] samber/lo が便利なのは Find/Filter/Map だけじゃない!

      はじめに 2022 年 3 月にリリースされた Go 1.18 からジェネリクスが使えるようになりました。ジェネリクスが使えるようになって嬉しかったことのひとつに、これまで for 文でゴリゴリ書いていた Filter/Find/Map のようなスライスの扱いをより簡潔に書けるようになったことがあります。samber/lo にはジェネリクスを使った汎用的なスライス操作が実装されており、その紹介記事も散見されます。 Filter/Find/Map などの他にもジェネリクスを活用した便利なユーティリティーが samber/lo にはたくさん実装されています。ですが、私は最近コードレビューで「nits: samber/lo を使うとちょっと楽に書けますよ」的なコメントを残すことが多く、その便利さがそこまで知られていないように思います。本記事では私の観測範囲内でこのパッケージの便利さを布教したいと

        [Go] samber/lo が便利なのは Find/Filter/Map だけじゃない!
      • Clutch から学ぶ Go と grpc-gateway のプラガブルアーキテクチャ

        はじめに 本記事では Clutch という OSS の実装を読み解きながら、Go と grpc-gateway のプラガブル (pluggable) アーキテクチャについて考えます。 プラガブルというのはプラグインを追加して機能を拡張できるという意味で、プラガブルアーキテクチャとは、プラグインを追加して機能を拡張しやすいアーキテクチャを指します。 プラガブルであるためには、インターフェースが統一されていること・プラグインが独立して動作できること・プラグインを受け入れる側がプラグインの詳細を知ることなく簡単に追加できることが必要です。 Clutch は異なる目的の機能を同一のサービス(コードベース)でホストできる作りをしており、プラグイン (Clutch 上では service と表現する ) を追加して機能を拡張できるのでプラガブルであることの要件を満たしています。 また、API の構築に

          Clutch から学ぶ Go と grpc-gateway のプラガブルアーキテクチャ
        • Golang の静的解析に入門する  | HireRoo Tech Blogs

          こんにちは、 @okarin です。プロダクトの開発を進めていると、Pull Request のレビューで同じような指摘をしてしまっていたり、コード規約を作ったけど遵守するのが難しかったりした経験はありませんか? こういったことは静的解析によって機械的に防ぐのが最もいい手段なのではないかと思います。自分たちのケースに合わせた静的解析を行いたい場合はツールを自作する必要がありますが、Golang の場合は環境が整っており、比較的簡単に自作して導入できたので記事にまとめました。

            Golang の静的解析に入門する  | HireRoo Tech Blogs
          • Golang マイクロサービスの徹底トレース方法 | オブザーバビリティ基盤第3話 - GO Tech Blog

            Golang マイクロサービスの徹底トレース方法 | オブザーバビリティ基盤第3話 こんにちは、SREグループのカンタンです! GO株式会社ではサービス品質を向上させるためマイクロサービスのオブザーバビリティを常に改善しています。 「LGTM!オブザーバビリティ基盤第1話」という記事ではGrafanaをベースとしたオブザーバビリティ基盤を紹介し、「Grafana Lokiでログを検索 | オブザーバビリティ基盤第2話」ではログの収集と検索について話しました。 今回はサービスメッシュを活かした Golang マイクロサービスのトレース方法を紹介したいと思います。 背景 メトリックスとログの次にトレース情報がマイクロサービス開発において非常に重要なデータになっています。 複数サービスを跨いだ複雑なリクエスト処理を可視化することで、ログを見なくてもパフォーマンスのボトルネックとエラーの発生箇所な

              Golang マイクロサービスの徹底トレース方法 | オブザーバビリティ基盤第3話 - GO Tech Blog
            • gonew を使って Go プロジェクトのテンプレートを活用する

              公式から gonew というツールが公開されました。 gonew を使うことで既存の Go プロジェクトのテンプレートを使い、素早く開発を始めることができるようになります。 現時点で公式からは以下のテンプレートが公開されています。 hello helloserver 他にも Google Cloud チームや Service Weaver チームからも様々なテンプレートが公開されています。 GoogleCloudPlatform/go-templates ServiceWeaver/template この記事では gonew のインストール方法から簡単な使い方を紹介します。 インストール 使い方 自分でテンプレートを作る まとめ インストール go install を使用してインストールすることができます。

                gonew を使って Go プロジェクトのテンプレートを活用する
              • Goのtestingパッケージに対する一時的なディレクトリ移動のためのテストヘルパー関数の提案まとめ - tomato3713’s blog

                testing: add TB.Chdir #62516 github.com 一時的にカレントディレクトリを移動してテスト終了と共に元のディレクトリに移動するヘルパー関数 Chdir(dir string) を testing package に追加する提案を読んだまとめです。 ちょうど3日前の 2024/06/25 に Accepted されました。 具体的な利用シーンには、プログラムの実行箇所に依存するカレントディレクトリの設定ファイルを読み込む関数のテストなどが挙げられます。 ディレクトリを移動したテストを書きたい時はあまり多くはなさそうですが、ディレクトリを移動したのにテスト終了時に元のディレクトリに戻り忘れる、ディレクトリを移動するテストを並列で実行したなどでテストがFlakyになってしまうなんてことはやりそうです。 提案によって追加される testing.Chdir を使わな

                  Goのtestingパッケージに対する一時的なディレクトリ移動のためのテストヘルパー関数の提案まとめ - tomato3713’s blog
                • Grafana Agent を用いた Continuous Profiling (golang pull編) - Qiita

                  はじめに Grafana Pyroscopeという継続的にプロファイル(Continuous Profiling)の情報を蓄積して活用するためのプロダクトがあります。このプロダクトにプロファイルの情報を蓄積する方法として以下の図にあるようにPyroscope SDKとGrafana Agentを用いる方法が提供されています。 ref https://grafana.com/docs/pyroscope/latest/configure-client/#sending-profiles-from-your-application 元々は単独でPyroscopeというプロジェクトでしたが、Grafana LabsのプロダクトとなったときにGrafana Phlareと統合されて現在のGrafana Pyrscopeとなりました。 Grafana Pyrscopeでプロファイル情報を集めるやり方

                    Grafana Agent を用いた Continuous Profiling (golang pull編) - Qiita
                  • Goでファイル追記・存在しなかったらファイル作成したい! - Qiita

                    私がはじめわからなかった、os.OpenFile関数のフラグについて少し書きます Goのファイル開閉の種類 Goにはファイル読み書きの際のファイルの開き方にいくつか方法がありますよね。 os.Create、os.NewFile、os.Open、os.OpenFileです。 そのうちOpenFileを使うと、引数にフラグを渡すことで、ファイルを開く際の大まかな設定ができます。 がっつり調べたらドキュメントに言及されてるんですが、Qiitaに記事があるとわかりやすいですよね!(そうですよね!??) os.OpenFileの基本 os.OpenFileを使うときは第二引数に、用途に合わせてフラグを渡す必要があります os.O_RDONLY //読み込む時 os.O_WRONLY //書き込む時 os.O_RDWR //読み書き両方する時 なお、第二引数に複数フラグを渡す場合は | で区切って渡し

                      Goでファイル追記・存在しなかったらファイル作成したい! - Qiita
                    • Sentinel errors and errors.Is() slow your code down by 500%

                      In this blog post, we benchmark different strategies for handling errors in Go and discuss their relative performance and other tradeoffs. The difference in performance between different strategies was very surprising to us, and we'd like to share the results. The original publication of this blog overstated the difference in performance between error handling strategies due to poorly configured b

                        Sentinel errors and errors.Is() slow your code down by 500%
                      • unexportedなmethodを持つGoのinterfaceとsum type - 3日経てば忘れる

                        何か書けと後輩に詰められたので、寝る前に雑に調べごとをしてメモを残しておくことにする。 これは8日目。 adventar.org Goのinterfaceに書けるメソッド名にはidentifierが指定されているだけで特に制限が無い。 つまり、unexportedなメソッドを定義することができる。 InterfaceType = "interface" "{" { ( MethodSpec | InterfaceTypeName ) ";" } "}" . MethodSpec = MethodName Signature . MethodName = identifier . InterfaceTypeName = TypeName . ( https://golang.org/ref/spec#Interface_types より ) 周りのコードを見渡してみると、例えば reflec

                          unexportedなmethodを持つGoのinterfaceとsum type - 3日経てば忘れる
                        • gnet - A high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go | gnet

                          Ultra-FastBuilt in Go, gnet is ultra-fast and memory efficient based on the event-driven mechanism. It's designed to create a networking server framework for Go that performs on par with Redis and Haproxy for networking packets handling. Concise & Easy-to-use APIsgnet provides concise and easy-to-use APIs for users, it only exposes the essential APIs and takes over most of the tough work for users

                          • pkgsite/internal/derrors を使ったGoのエラーラッピング

                            mercari.go #23にて、使用されているgolang.org/x/pkgsite/internal/derrors という、pkg.go.devの内部で使用されているエラーラッピング用のパッケージが紹介されていました。 興味を持って調べてみたところ、とてもスタイリッシュで面白かったので紹介します。 derrors.Wrap このパッケージの基本となる関数です。関数本体はたった3行です。 func Wrap(errp *error, format string, args ...any) { if *errp != nil { *errp = fmt.Errorf("%s: %w", fmt.Sprintf(format, args...), *errp) } } // "[整数]+[整数]"という形の文字列をパースし、その式の計算結果を返す func ParseAdd(str st

                              pkgsite/internal/derrors を使ったGoのエラーラッピング
                            • Go言語による各種データ構造の扱い方(やや競プロer向け)

                              こんにちは株式会社スマートショッピング ソフトウェアエンジニアの葛西伸樹です。 今年の1月ごろから競技プログラミングのコンテスト(AtCoder)にGo言語で参加し始めたのですが、使用人口も少なく情報が見つからずなかなか苦戦しましたので現在わかっている範囲でGo言語による各種データ構造の扱い方についてまとめました。 指摘やコメントがあればぜひお願いします! この記事で説明すること/しないこと この記事では競技プログラミングでよく使われるデータ構造のGo言語による扱い方とおおよその実行速度について説明していきます。 今回説明するデータ構造は以下の通りです。 配列 動的配列 キュー/スタック 優先度付きキュー HashMap/HashSet TreeMap/TreeSet また 各種データ構造自体の説明 各種データ構造を使用した具体的なアルゴリズム については説明を省略します。 早速各データ構

                                Go言語による各種データ構造の扱い方(やや競プロer向け)
                              • GO言語(golang)1.20:日本語を含むマルチバイト文字列操作 - SE_BOKUのまとめノート的ブログ

                                目次 GO言語(golang)1.20:日本語を含むマルチバイト文字列操作 マルチバイト文字を扱う注意点 rune rune:マルチバイト文字数カウント rune:マルチバイト文字列のスライス 上記以外なら、マルチバイト文字列は普通につかえる 補足情報:TrimSpaceは「全角空白」も削除できる 補足情報:文字列連結は「join」のほうが「+」演算子より速い 補足情報:文字列の出現位置を文字数で取得するには一工夫必要 補足情報:全角・半角変換は「golang.org/x/text/width」を使う 補足情報:文字列の比較の前に「Fold」するのはおすすめ 補足情報:strings.EqualFoldは全角・半角の考慮をしない GO言語(golang)1.20:日本語を含むマルチバイト文字列操作 GO言語で、日本語文字を含む文字列(マルチバイト文字列)を扱うには、若干注意が必要な点がある

                                  GO言語(golang)1.20:日本語を含むマルチバイト文字列操作 - SE_BOKUのまとめノート的ブログ
                                • _YOUR WORK for Gophers(β)

                                  あなたのGoレベルを7段階で判定

                                    _YOUR WORK for Gophers(β)
                                  • Robust generic functions on slices - The Go Programming Language

                                    The Go Blog Robust generic functions on slices Valentin Deleplace 22 February 2024 The slices package provides functions that work for slices of any type. In this blog post we’ll discuss how you can use these functions more effectively by understanding how slices are represented in memory and how that affects the garbage collector, and we’ll cover how we recently adjusted these functions to make t

                                      Robust generic functions on slices - The Go Programming Language
                                    • Goで作るパスキー - cateiru's blog

                                      注意 この記事ではgo-webauthnを使用したバックエンド側のWebAuthnの実装について解説しています。 1からWebAuthnを実装したい場合は RFC や W3C を参照してください。 この記事は、四工大アドベントカレンダーのカレンダー | Advent Calendar 2023 - Qiita の9日目です。 qiita.com こんにちは、id:cateiru です。元四工大で、今はWebエンジニアとして働いています。 突然ですが、皆さんはパスキーを使っていますか?パスキーはFIDOの認証をiCloudのようなクラウド環境で同期することで複数端末でパスワードレスでログインできるようにする multi-device FIDO credential です。 技術としては、FIDO2が使われており、Webで使う場合はWebAuthnを使うことで簡単に実装することが可能です。 本

                                        Goで作るパスキー - cateiru's blog
                                      • GitHub - sago35/tinygo-keyboard: USB HID keyboard firmware for tinygo

                                        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 - sago35/tinygo-keyboard: USB HID keyboard firmware for tinygo
                                        • GitHub - platypusguy/jacobin: A more than minimal JVM written in Go and capable of running Java 17 classes.

                                          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 - platypusguy/jacobin: A more than minimal JVM written in Go and capable of running Java 17 classes.
                                          • Pyroscope の Continuous Profiling により Go サーバーのメモリリークを調査・改善した話 - every Tech Blog

                                            はじめに 子育てメディア「トモニテ」でバックエンドやフロントエンドの設計・開発を担当している桝村です。 2023年8月1日、MAMADAYSはトモニテに生まれかわりました。 tomonite.com アプリのメイン機能である「育児記録」「妊娠週数管理」「食材リスト」を軸として、家族やパートナー、家族以外の人や社会との接点を作るためのシェア機能やコミュニティ機能などの拡充をめざしていきます。 今回は、Continuous Profiling を実施することができる Pyroscope を使用して、トモニテで運用している Go サーバーのメモリリークを調査・改善した話をしたいと思います。 以前、トモニテでEKSからECSに移行した話という記事において、EKS on EC2 から ECS Fargate への移行に伴い、厳密なリソース管理の必要性が生じ、メモリリークを検出した件の対応になります。

                                              Pyroscope の Continuous Profiling により Go サーバーのメモリリークを調査・改善した話 - every Tech Blog
                                            • 小規模開発APIを支える技術

                                              商業登記簿PDFを取得・解析できるAPIサーバーを開発しており、採用している技術について記載する。 前提 B2Bかつニッチなサービスなのでスケールは求めていない ReadもWriteも重くない レイテンシはそれほど重要ではない。外部が律速 可用性を損なわない範囲で安く済むことを重視 サービスにとってコアではないところには時間をかけず、OSSやサービスを利用させてもらう 無料で使うためのハックなどはしない 運用コストをできるだけ下げる 時雨堂クラウドサービスを支える技術にかなり影響されている Backend Goを利用 Ubuntu 22.04を利用 labstack/echo/v4 Cloudflareでhttps化するのでhttpで利用 PuerkitoBio/goquery 登記簿取得に利用 DOM解析 sqlc-dev/sqlc シンプルで良い mailgun/mailgun-go/

                                                小規模開発APIを支える技術
                                              • Goのnet/httpのclientでなぜresponseBodyをClose、読み切らなくてはいけないのか

                                                いきなり結論 結論としては、 responseBodyをCloseしないとコネクションがブロックしてしまい再利用されず、古い接続が残ったまま、新しく接続するたびに新しいGoroutineとファイルディスクリプタを作ってしまう responseBodyを読み切らないとkeepAliveされずコネクションが終了してしまい再利用されず、接続のたびに新しい接続を作ってしまう。 ということなのですが、コードではどうなっているか見てみましょう。 http.Get ~ client.sendまで http.Get -> client.Get -> client.Do -> client.sendまで http.Get func Get(url string) (resp *Response, err error) { return DefaultClient.Get(url) } ここのDefaultC

                                                  Goのnet/httpのclientでなぜresponseBodyをClose、読み切らなくてはいけないのか
                                                • Go Cheat Sheet & Quick Reference

                                                  package main import "fmt" func main() { fmt.Println("Hello, world!") } Run directly $ go run hello.go Hello, world! Or try it out in the Go repl var s1 string s1 = "Learn Go!" // declare multiple variables at once var b, c int = 1, 2 var d = true Short declaration s1 := "Learn Go!" // string b, c := 1, 2 // int d := true // bool See: Basic types

                                                    Go Cheat Sheet & Quick Reference
                                                  • Goによるバッチ実装テクニック - Retty Tech Blog

                                                    この記事はRetty Advent Calendarの3日目の記事です。 ニューヨークのビル (Photo by Taryn Elliott on Pexel) ハロー! software engineerのTakato Fukuiです。最近バッチアプリケーションを開発しました。この記事ではその際に使用したバッチ実装のテクニックを説明します。 バッチの品質を高めるためには考慮することがたくさんあります。 冪等にする 同時実行できる パラメータ指定などしてrerunし易い 処理失敗しにくいようにAPIアクセスなどをretryする 途中でエラーが起きても結果に問題なければ処理継続する ... (Web APIでもある程度同じことは言えます) このバッチ実装における設計やGo実装のいくつかのテクニックを説明します。 今回開発したバッチの概要です。 日次起動 処理時間は数10分 処理内容 複数飲食

                                                      Goによるバッチ実装テクニック - Retty Tech Blog
                                                    • GoとPerlでJSONを扱う時に数値型が文字列型になる場合の対処|SHOWROOM Blog

                                                      いつもライブ配信プラットフォーム『SHOWROOM』をご利用いただきありがとうございます。開発部の横山です。SHOROOMでは引き続きバックエンドシステムのプログラムをPerlからGo言語に移行しております(計画の詳細)。 今回はPerlからGo言語に移行するにあたり躓きポイントを紹介します。Go言語での細かい実装上の内容になります。 数値型のつもりが文字列型に!?PerlとGo言語でJSONなどのシリアライズされたデータを共有するときに注意するときがあります。その一つにPerlでセットしたInt型の値が油断しているとString型の数値文字列になるという現象です。 { "num": 3 }{ "num": "3" }もちろんPerl側で型を明示した上でセットすれば問題ないかと思いますが、Perlで書き込んでPerlで読み込む場合は型をよしなに推論してくれるのでどこで発生しているのか分かり

                                                        GoとPerlでJSONを扱う時に数値型が文字列型になる場合の対処|SHOWROOM Blog
                                                      • Go1.21で登場したlog/slogパッケージのパフォーマンスを徹底解説!!

                                                        \スニダンを開発している SODA inc.の Advent Calendar 8 日目の記事です!!!/ 昨日は @KosukeSaigusa さんによる「Dart のドキュメンテーションについて」でした! 明日は @toshiki-otaka さんによる「ISUCON13に参加しました! (チームひろし)」です。 お楽しみに! 導入 Go1.21で標準ライブラリとしては初の構造化ログのためのlog/slogパッケージが導入されました。 どういう設計や実装になっているのかに興味があったので調べてみると、パフォーマンスをかなり意識した実装になっていることが分かりました。 このブログでは、log/slogパッケージがどういう背景や目的を持って導入されたのか、基本的なAPIの使い方はどうなっているのか、また内部の実装でパフォーマンスが意識されているところはどこなのかをできるだけ詳しく解説したい

                                                          Go1.21で登場したlog/slogパッケージのパフォーマンスを徹底解説!!
                                                        • ゼロから始めるGolang① - Qiita

                                                          はじめに 本記事について 初めまして!Golangを学び始めましたので,備忘録&みなさまの導入の助けになればと思い記事にします.#Qiita初投稿なので,お手柔らかに (本記事)開発環境の設定 (予定)基本的な知識 (予定)簡単なWeb開発 の順で書いていくつもりです. Golangとは 可愛いマスコットキャラGopherくんで有名ですね. 特徴はこの絵にもあるとおり, シンプルで親しみやすい 処理速度が速い 効率的にメモリの管理ができる 並列処理が可能 などなど,大規模な開発であったり,チーム開発に向いた特徴を持っています. Goの開発環境を作る この記事ではGo言語が実行できる環境を整え,"Hello World!"が出力できるところまで進めていきます. 開発環境 Mac OS 13.2.1 VSCode 1.81.1 Homebrew 4.1.6 Homebrewのインストールはこち

                                                            ゼロから始めるGolang① - Qiita
                                                          • RURUK BLOG

                                                            GoでS3にファイル送信を行う処理とテスト環境を作成したのでメモ書きします。 テスト環境にはlocalstack(Dockerで構築されたAWSの擬似環境)を利用します。 docker-compose.ymlで設定している環境変数(※)を本番環境用に設定することで、実際のAWSにS3ファイルを送信することが可能です。 ※ S3_ENDPOINTなどGoコンテナで使用しているAWS関連の環境変数 gitに動作確認済みのコードをアップしています。 https://github.com/ruruyuki/localstack_s3_with_go ディレクトリ構成 ディレクトリ構成は次のようになります。 # ディレクトリ構成 . ├── docker-compose.yml ├── docker │   ├── golang │   │   └── Dockerfile │   └── loca

                                                            • Go Conference 2024 に登壇しました!

                                                              2024/06/08に開催された Go Conference 2024 に登壇してきました! 初めて外部登壇した感想や採択から発表に至るまでの準備、セッションで話しきれなかったことについて書きたいと思います! はじめにGo Conference 2024 に登壇してきました! gocon.jp - 詳解 “Fixing For Loops in Go 1.22” / 自作linterをgolangci-lintへコントリビュートした話speakerdeck.com - スライド全文今回のブログでは、CfPの提出~調査~登壇までの流れを書いて、セッションでは話せなかったポイントなどについても記述したいと思います。 目次CfPを提出するまでCfPを提出してから登壇に至るまで登壇当日セッションの要約・推しポイント・話しきれなかったことCfPを提出するまで今回のセッションはいわゆる「登壇駆動」でし

                                                              • 改行コードを含んだ文字列を環境変数で読み込むときに嵌った話

                                                                追記 2018/05/03twitter で指摘してもらいましたが、シェルだと改行して読み込ませればいけるとのこと ``` HOGE="Hello World" go run main.go ``` ではダメですか? https://t.co/nkpPkIvlLw — Ichinose Shogo (@shogo82148) 2018年5月2日あー試してないな ただ今回は書いてないのであれだけどAWS Lambdaで設定した環境変数を取りたかったのでこうした感じです — こんぼい。 (@Konboi) 2018年5月2日なるほど。確かにコンソールだと一行テキスト… シェルだと上手く行きます。 — Ichinose Shogo (@shogo82148) 2018年5月2日やはりコンテキストも含めて書かないと誤解を招くな。 反省 よく考えれば当たり前だなーと思ったけど嵌ったので戒めもこめてメ

                                                                • GoとCloud Pub/SubをつかってBaseball Savantのクローラーを作ってみた - Lean Baseball

                                                                  最初に言っておきます, 「野球」っていうワード以上に「エンジニアリング」なエントリーです*1. 野球方面の人は最初の雰囲気を読んで最後まで読むか判断してください, 「オオタニサン」っていうワードは出てこず「Go」「Pub/Sub」「コンテナ」とかそんなのばっかり出てきます🙏 という前置きはさておき, 最近はGoでモノを作るのが好きになってきており, 今はというと, PyCon JP 2022およびデブサミでお披露目した「野球データ基盤」の刷新をGoで少しずつやる. 野球データ基盤を構成するマイクロサービスのうち, Goでやったほうが効率良さそうなサービスをGoに書き換え. クラウドサービスは引き続きGoogle Cloud(これはマスト)だが, マイクロサービスのワークロードはCloud Runに統一*2, 可能なら「マルチコンテナ*3」を採用してサービスを一つに統一したい. といった事

                                                                    GoとCloud Pub/SubをつかってBaseball Savantのクローラーを作ってみた - Lean Baseball
                                                                  • Scenarigoの紹介とそれを利用したメルペイでのインテグレーションテスト実例

                                                                    Scenarigoの紹介と それを利用したメルペイでの インテグレーションテスト実例 APIテストツール4選!開発者が語る各ツールの特徴と魅力

                                                                      Scenarigoの紹介とそれを利用したメルペイでのインテグレーションテスト実例
                                                                    • go

                                                                      Loading×Sorry to interruptCSS ErrorRefresh

                                                                      • entのDBマイグレーションを試みる|すずき

                                                                        Coolなmanagement UIがあったりなかなかの魅力を誇るツールだ。 entとAtlasこの二つがどう絡み合うか。というとentはent上のSchema定義からDBが取るべきSchemaをGoのソースコードで管理している。 公式のexampleから引っ張ってくると↓のような具合だ。 AtlasはHCLでDB Schemaを定義していき、DBへ差分を反映していくスタイルのようだが、entを使っているとDB SchemaをHCLで書く必要すらないとうわけだ。 https://entgo.io/ja/docs/migrate#atlas-diff-and-apply-hooks にあるようにAtlasとのintegrationを有効にしておくとAtlas WayでmigrationのHookを実装できるようだ。 Hookを実装することでmigrationのロジックを自由度高めにカスタマイ

                                                                          entのDBマイグレーションを試みる|すずき
                                                                        • Go言語でHTTPレスポンスを透過的にキャッシュする - Diary of a Perpetual Student

                                                                          Webアプリケーションの裏側にさらにHTTPサーバが立っていて、レスポンスを返すために裏側のサーバにリクエストを送ってその結果を必要とするような構成があります。裏側のサーバに設定さえたAPIレートリミットへの対応やサーバへの過負荷を避けるため、キャッシュを利用してリクエストが飛びすぎないようにしたいケースがあるでしょう。 Go言語のHTTP ClientにはTransportというパラメータがあり、これを差し替えることで透過的なクライアントサイドのキャッシュ層を導入することができます。 実際にライブラリとして作ってみたのでご紹介します。 github.com 使い方 利用例を用意しています。 https://github.com/Arthur1/http-client-cache/blob/82d0e8e327b9fd37554a135b0915891621689a6b/_example/

                                                                            Go言語でHTTPレスポンスを透過的にキャッシュする - Diary of a Perpetual Student
                                                                          • Golangの新しいORM「Bun」を触ってみた - Qiita

                                                                            はじめに 本記事は フューチャー Advent Calendar 2023 24日目の記事です。(クリスマスイブですね。) 今回はGolangのORM「Bun」を触ってみたのでその、個人的に気になっていた点である、データの挿入周りついて記事にしたいと思います。 Bunとは BunはGo言語用のSQLファーストのORM(Object-Relational Mapping)ライブラリで、PostgreSQL、MySQL(MariaDBを含む)、MSSQL、SQLiteなどのデータベースシステムに対応しています​。 以下公式サイトです。 Why Not ...? の章や公式サイトからも GORM と比較していることが多いです。 「Bun」は「gorm」と比較してBunは、余計な機能などが少なく、ライブラリのサイズが小さいことや、コードベースでの記述が少なく、シンプルであるため処理が高速です。 環

                                                                              Golangの新しいORM「Bun」を触ってみた - Qiita
                                                                            • Goの環境構築方法 - Qiita

                                                                              はじめに 最近、仕事でGo触り始めたので、改めて環境構築の手順の確認と、今後Goを触りたいっていう人の参考になればなぁと思います。 ちなみに、自分の手元の環境は以下。 OS : macOS Catalina 10.15.2 → 好奇心でzshにも切り替えてます。 以下の2つをまとめていこうかな、と思います。 どちらも簡単なので、パーっと終わるかと。 あとPATH通したりの作業は必要ですが、Homebrewでインストールもできます。 公式からDLしてインストール goenvを使ってインストール 公式からダウンロード インストール インストーラに従って進めるのみ。 PATHを通す // bash使ってる人は、.bash_profileとかに置き換えてくださいー。 % echo 'export PATH="$PATH:/usr/local/go/bin"' >> ~/.zshenv

                                                                                Goの環境構築方法 - Qiita
                                                                              • 【Go】aws-sdk-goでS3に画像をアップロードする

                                                                                はじめに AWSのコンソールから簡単にアップロード出来ますが、 今回はアプリなどから画像をアップロードする事を想定して、ソースコードでS3に画像をアップロードしてみます。 ゴール のコマンドでmain.goと同じ配下にいる画像ファイルをS3の test-bucket-0814という名前のバケットの中のimageフォルダ以下に画像をアップロードすること。 これを ここに保存 この状態にすることがゴールです。 環境 macOS 11.4 go 1.16 aws-sdk-go 1.40.17 準備 .awsの設定 credentialsやconfigの設定を行なってください。 今回はこちらでは説明致しません。 設定されている事を前提として話を進めます。 まだ設定できていない人は、こちらを参考に設定してみてください。 aws-sdk-goをインストールします。 //go mod を入れます。今回は

                                                                                  【Go】aws-sdk-goでS3に画像をアップロードする
                                                                                • 【2024年4月】フリーランス案件の単価における市場動向【フリーランスボード】

                                                                                  INSTANTROOM株式会社(本社:東京都渋谷区、代表取締役:曽根弘介)が運営する、フリーランスエンジニア・ITフリーランスの案件検索サイト「フリーランスボード(https://freelance-board.com/)」は2024年4月のフリーランス案件の単価における市場動向の調査結果を発表いたします。 ◆数字で見る「フリーランス市場動向」 フリーランスボードでは2024年4月30日時点の111,626件の掲載案件を対象に開発言語・フレームワーク・職種別の月額平均単価を調査いたしました。 ■フリーランス案件の月額平均単価 2024年4月のフリーランス案件の月額平均単価は71.0万円、最高単価は280万円です。 ▼掲載中のフリーランス案件はコチラから https://freelance-board.com/jobs ■開発言語別の月額平均単価 開発言語別の月額平均単価は上表の結果となりま

                                                                                    【2024年4月】フリーランス案件の単価における市場動向【フリーランスボード】