タグ

関連タグで絞り込む (216)

タグの絞り込みを解除

goに関するlax34のブックマーク (223)

  • Go モジュールのミラーリング・サービス【正式版】

    (この記事は「Go モジュールのミラーリングとインデックス化」を全面改訂したものです) Google による Go モジュールの公式ミラーリング・サービスが正式リリースした。 Module Mirror and Checksum Database Launched - The Go Blog proxy.golang.org sum.golang.org index.golang.org モジュール・ミラー ミラー・サーバ proxy.golang.org は Go 言語のモジュールをミラーリングする一種のプロキシ・サーバとして機能する。 ただし,単純な透過プロキシではなく必要なバージョンのみ取ってこれるようになっているようだ。

    Go モジュールのミラーリング・サービス【正式版】
  • 【Go言語】Bitbucket / Github の private リポジトリを Go Get する〜その2 ("410 Gone エラー") - 第2の人生の構築ログ

    Bitbucket / Github の private リポジトリを Go Get する方法を以前書いていたのですが、これだけでは現状失敗することに先日気付きました。 www.morelife.work 上記の設定を行っていたとしても、現状以下のような 410 Gone エラーに遭遇します。 以下は bitbucket の例ですが、github も同様でした。 $ go get -u -v bitbucket.org/drtaka/private_repository/package go: finding bitbucket.org/drtaka/private_repository latest go: finding bitbucket.org/drtaka/private_repository/package latest go: downloading bitbucket.or

    【Go言語】Bitbucket / Github の private リポジトリを Go Get する〜その2 ("410 Gone エラー") - 第2の人生の構築ログ
  • go module のバージョニング - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    go module のバージョニング - Qiita
  • Module version numbering - The Go Programming Language

    A module’s developer uses each part of a module’s version number to signal the version’s stability and backward compatibility. For each new release, a module’s release version number specifically reflects the nature of the module’s changes since the preceding release. When you’re developing code that uses external modules, you can use the version numbers to understand an external module’s stabilit

    Module version numbering - The Go Programming Language
  • Goを学ぶときに参照した学習リソースまとめ

    皆さん、新しいプログラミング言語を学ぶ時、どのように学習しているでしょうか? 私は4月に新卒でエンジニアになり、業務でGoを使うことになりました。その際、とりあえず公式チュートリアルであるTour of Goをやりましたが、その後にどうやって学習を進めれば良いか迷ってしまいました。 考えてみると、新しい言語を学ぶ際、毎回学習方法に困っている気がします。ネットでサンプルを探す、動画を見る、書籍を読む、などさまざまな学習方法があると思いますが、私は手を動かしながらいろいろなパターンを学んでいくのが好きです。 そこで今回Goを学ぶ際も、手を動かしてさまざまなコーディングのパターンを学習するために、ネットや書籍でサンプルを探して実践しました。 この学習方法は私にとっては楽しみながら続けることができて、他の言語を学ぶ際も今回実装したサンプルを使って学習しようと考えています! そこで自分と同じ様な悩み

    Goを学ぶときに参照した学習リソースまとめ
  • Go製アプリケーションのコンテナ化にはkoを推したい - YAMAGUCHI::weblog

    はじめに こんにちは、Google Cloudでオブザーバビリティを担当しているものです。Cloud Operations suiteをよろしくおねがいします。(宣伝終わり) この記事はGo Advent Calendar 2021 その1の22日目の記事です。昨日は @sago35tk さんの「ESP32 向けに TinyGo をセットアップする」でした。TinyGoのコアな情報を日語で教えてくれるtakasagoさんには当にいつも感謝しています。 さて、今日はGo製のアプリケーションをdockerlessでコンテナ化できるkoの紹介をします。koは当にイチオシのツールで、みんなに使ってもらいたいのでぜひ使ってください。 github.com DockerによるGo製アプリのコンテナ化 まず最もポピュラーと思われるDockerを用いた場合のGo製アプリケーションのコンテナ化の方法に

    Go製アプリケーションのコンテナ化にはkoを推したい - YAMAGUCHI::weblog
  • io.CopyにはなるべくWriteTo関数を渡してあげた方が良さそう - Qiita

    io.Readerのファイルタイプを判定する を拝見してちょっと気になったので調べました。 io.MultiReaderではWrite関数しか実装されておらず、 WriteTo(w Writer) (n int64, err error)関数が存在しません。 そのため、みんな大好きio.Copyで積極利用されるWriteTo(w Writer) (n int64, err error)関数が働かず少し残念な気持ちがありました。 もしかすると気持ちだけの問題かもしれないのでBenchmarkしてみました。 bufio.Readerには WriteToが実装されいたので、こちらを元のReaderに被せてる事にしました。そうすると都合よくまさにリード位置を進めず先頭から指定バイト数だけ読むbufio.Peek関数が用意されていたのでそちらを利用しました。 元のisGzip関数を書き直したのが以下

    io.CopyにはなるべくWriteTo関数を渡してあげた方が良さそう - Qiita
  • Google Cloud CLI を使用して Cloud Functions の関数を作成する  |  Cloud Functions Documentation

    Google Cloud CLI を使用して Cloud Functions の関数を作成する このページでは、Google Cloud CLI を使用し、Cloud Functions(第 2 世代)を作成してデプロイする方法について説明します。 始める前に Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads. Google Cloud Console の [プロジェクト セレクタ] ページ

    Google Cloud CLI を使用して Cloud Functions の関数を作成する  |  Cloud Functions Documentation
  • Go ランタイム  |  Cloud Functions Documentation  |  Google Cloud

    Go ランタイム 概要 Cloud Functions は、オペレーティング システムのバージョンに加えて、アドオン パッケージ、言語サポート、お使いの関数をサポートして呼び出す Functions Framework ライブラリで構成される環境で実行されます。この環境は言語バージョンで識別され、ランタイムとして知られています。 ランタイムに関する一般的な情報と、各 Go ランタイムが使用する Ubuntu のバージョンについては、Cloud Functions 実行環境をご覧ください。 ランタイムの選択 Cloud Functions は、ランタイム サポートのページに記載されている複数のバージョンの Go をサポートしています。デプロイ時に、関数に使用する Go ランタイムを選択できます。 gcloudGoogle Cloud CLI を使用している場合は、目的の Go ランタイムで

    Go ランタイム  |  Cloud Functions Documentation  |  Google Cloud
  • go.modとgo.sumの読み方

    go.mod 主にモジュールのインポートパスとバージョン情報を書いておくためのファイルで、いくつかのディレクティブを使ってアプリケーションがどのような依存関係を持っているか記述しておきます。 go mod tidy等を実行するとこのファイルを元に依存先を取得し次項で解説するgo.sumを生成します。 サンプル module github.com/ryo-yamaoka/sample-lib go 1.17 require github.com/ryo-yamaoka/direct-dependent-lib v0.0.2 require github.com/ryo-yamaoka/indirect-dependent-lib v0.0.4 // indirect exclude github.com/ryo-yamaoka/direct-dependent-lib v0.0.1 repl

    go.modとgo.sumの読み方
  • go:embed 詳解 - 使用編 - - Qiita

    go1.16rc1 以降は 👉コチラ で更新していきます。 この記事は Go Advent Calendar 2020 23日目 と CyberAgent Developers Advent Calendar 2020 24日目 の記事です。 はじめに 来年の2月にリリース予定の Go1.16 にはいつものリリースと同じように興味深い新機能が多数追加される。その中でも特に注目されている機能として、Go のビルド済みバイナリに読み込み専用の静的ファイルを埋め込む go:embed ディレクティブがある。これまで静的ファイルをバイナリに埋め込むアプローチは種々提案されてきたが1、ツールやOSごとに埋め込み方がバラバラで、それぞれ使い方を覚えたり、特定ツールへの依存がどうしても避けられなかった。今回このディレクティブの導入により Go 公式として統一される形となる。 このディレクティブ導入が注

    go:embed 詳解 - 使用編 - - Qiita
    lax34
    lax34 2021/09/26
  • Go言語で基本的なCRUD操作を行うREST APIを作成 | DevelopersIO

    Javaエンジニアだった私がGo言語でREST APIを作る上で学んだことをまとめています。 プロジェクト構成、単体テスト、Dockerイメージの作成など実際にREST APIを開発する上で必要だと思われる要素を盛り込みつつサンプルプロジェクトを作成していきます。 はじめに Javaエンジニアだった私がGo言語でREST APIを作る上で学んだことをまとめています。 プロジェクト構成、単体テスト、Dockerイメージの作成など実際にREST APIを開発する上で必要だと思われる要素を盛り込みつつサンプルプロジェクトを作成していきます。 今回はできるだけ外部ライブラリやフレームワークを使わずにGo言語の標準機能のみで開発しました。 これからバックエンドにGo言語を使用することを検討されている方の参考になれば幸いです。 ※この記事は既にGo言語の開発環境をセットアップ済みで基的な文法を学

    Go言語で基本的なCRUD操作を行うREST APIを作成 | DevelopersIO
  • Big Sky :: Go に Fuzz testing が入った。

    みなさん Fuzz testing ってご存じでしょうか。 人間が作る物は必ずといっていいほどバグが存在します。そしてそのコードをテストする人間も必ずバグを見逃します。 想定していなかった境界値テスト等、人間には先入観という物があり、それが邪魔をして簡単にバグを見逃します。昨今、この様な誰も気付かなかったバグの隙間を突く様な脆弱性が沢山見つかっています。 物によっては重大インシデントに発展する物まであります。 こういった人間では想定できない様なバグを見付けてくれるのが Fuzz testing です。Fuzz testing を実施する事で、ソフトウェアは頑丈になり安全にもなりえます。 日、Go の master ブランチに Fuzz testing の機能が入りました。 [dev.fuzz] Merge remote-tracking branch 'origin/dev.fuzz'

    Big Sky :: Go に Fuzz testing が入った。
  • Go言語でメタプログラミング|デロイト トーマツ ウェブサービス株式会社(DWS)公式ブログ

    YouTubeのプレミアム会員に入ってしまい、動画を見る時間がますます増えてしまいました。エンジニアの内山です。 最近の業務では、Go言語を書いています。言語の機能については物足りなさを感じることもありますが、それよりもシンプルさが結構気に入っています。 今回は、Go言語のメタプログラミングについて、ご紹介します。 メタプログラミングとは 開発業務では、似たような単純なプログラムを何度も書く必要がある場合があります。ボイラープレートと呼ばれるようなプログラムです。 そのようなプログラムを自動生成するプログラムを書いて、効率化することはよくあると思います。 この 「プログラムを生成するプログラムを書くこと」 を メタプログラミングと呼びます。 筆者が参加しているプロジェクトでは、実際に以下のようなことを行っています。 AWS LambdaのHandlerとなるプログラムと呼び出し関数を自動生

  • YAML+Mustache+go-generate で go の メタプログラミング をする - Qiita

    ※この記事は、CyberAgent PTA Advent Calendar 2020の24日目の記事です。 株式会社AbemaTV ビジネス開発部 で広告システムのエンジニアをしています @shunta-furukawa です。 今日はクリスマスイブですね。メリークリスマスイブ!! はじめに さて、AJA SSPとその技術について、でも触れられていましたが、サイバーエージェントで作られるシステムで Go言語が用いられることは多いです。 Go言語は、他の言語と比べて 言語仕様がシンプルなためハイパフォーマンスを出しつつも 扱いやすいために人気がある言語だと思います。反面、抽象化された賢い記法などがなく、記述量が多い言語でもあると思います。 書いていると気付いたらもう夜に... どうにか実装スピードをあげたい... そんな時に、go generate と Mustacheと YAML を使っ

    YAML+Mustache+go-generate で go の メタプログラミング をする - Qiita
  • 筋肉によるGoコードジェネレーション

    github.com/lestrrat/go-slackを主軸として、筋肉(fmt.Fprintf)を使ったコードジェネレーションを紹介Read less

    筋肉によるGoコードジェネレーション
  • GoとGinをプロジェクトで使ってみて思ったこと - Qiita

    はじめに k.s.ロジャースの西谷です。 今回はGo言語とGinを使ってプロジェクトの開発を行いました。 実務利用は初めてで、このときに感じた便利な機能や躓いた箇所について書いてみようと思います。 もし、間違いやより良い実装があればコメントにて教えて頂けたらと思います。 開発環境 言語: Go 1.13.3 フレームワーク: Gin 便利だと思った所 リクエストのバリデーション Ginではリクエストオブジェクトの定義にbindingを書くことでバリデーションを実施できます。 特殊パターン以外はリクエストに直接書くことができるので、直感的だと思います。 以下のように書くと、reqはIDの値は必ず存在し、Ageは0以上となります。 type CreateUser struct { ID string `json:"id" binding:"required"` Name string `jso

    GoとGinをプロジェクトで使ってみて思ったこと - Qiita
    lax34
    lax34 2021/07/30
  • ドキュメント

    Gin ってなに?Gin は Golang で書かれた Web アプリケーションフレームワークです。martini に似たAPIを持ちながら、httprouter のおかげでそれより40倍以上も速いパフォーマンスがあります。良いパフォーマンスと生産性が必要であれば、Gin が好きになれるでしょう。 Gin はどうやって使うの?APIの使い方のサンプルと、公開されている gin を利用しているプロダクトのリストを提供しています。 Gin にコントリビュートするには?議論の場で人々を助けてあげてくださいGin を利用した成功事例を教えてくださいGin を良くするにはどうすればいいか教えてください既に存在するライブラリにコントリビュートしてください

  • Goにはディレクトリ構成のスタンダードがあるらしい。 - Qiita

    参考URL 上記リポジトリにはGOプロジェクトでのスタンダードとなるディレクトリ構成の説明が書いてある。一つずつ見ていくことにします。 /cmd 一番メインとなるディレクトリ。このディレクトリの中にアプリケーションのエントリーポイントを作る。 注意点としてはmain.goに多くのことをさせないことである。各処理は基的に後述する/pkgなどで実装していくのでそれをインポートする形を取るべきだとある。 /internal /cmdで作ったエントリポイントで使いたいライブラリをおく。だが、このライブラリは各アプリケーション毎に書かれるものとなるので他のアプリケーションと共有するライブラリは置かない。そうゆうのをおくとすれば、後述の/pkgに置く。

    Goにはディレクトリ構成のスタンダードがあるらしい。 - Qiita
  • GoはいつGCするのか?

    TL;DR Go(のランタイム)は以下のタイミングで自動的にGCを実行する 前回のGC後に占有していたメモリと同量を新たに確保したとき 前回のGCから2分後 cgroupなどでメモリ制限しているときは、メモリ使用量が制限の50%以上になったらruntime.GC()を呼び手動でGCすべきである 前置き: GoとOOMのこれまで 以下はGo 1.16での調査結果です。Goのバージョンが異なった場合は事情が異なる可能性があります。 Goでプログラムを書く際に、使用メモリ量を気にしなければならないシーンはGCのおかげでそう多くはありません。実際それは間違いではないのですが、運用まで視野に入れるとそうは言ってられないことがあるのもまた現実です。昨今はコンテナの利用が当たり前になったことに伴い、OOMによりプロセスが強制的に終了させられることもあり、それを避けるために一定量以下のメモリで動くことが重

    GoはいつGCするのか?