タグ

goに関するyouko03のブックマーク (10)

  • AWS Lambdaの初期化処理と初期化タイミングの考慮不足によるはまりどころ | フューチャー技術ブログ

    こんにちは、TIGの辻です。失敗談をテーマにした連載の5目です。 AWS Lambda(以下Lambda)は様々なユースケースで利用できる、なにかと便利で強力なサービスです。ブログでも以下のようにLambdaに関するたくさんの記事が投稿されています。 Lambda Function URLs をGoでお試し。実行時間の上限(タイムアウト)やWeb API構築周りで気になること Lambda×Go並列処理で100万回APIを呼び出す LambdaをカスタムDockerランタイムで開発する方法 私もLambdaが好きで、Lambdaの実行時間制約以内で終了する処理であれば、初手の候補の一つとしてLambdaを考えます。 そんなLambdaですが、予約済同時実行数5を1に制限して使っていたときに、初期化処理と初期化タイミングの考慮不足により、はまったことがありました。記事ではLambda

    AWS Lambdaの初期化処理と初期化タイミングの考慮不足によるはまりどころ | フューチャー技術ブログ
  • テスト(go test/testing)|Go言語入門

    Goでは自動テストの仕組みが備わっています。 自動テストはgo testコマンドとtestingパッケージを組み合わせて実現します。 ここでは主に次の内容を説明をします。 testingパッケージを使ったテストの書き方 ドキュメントにサンプルコードを載せる方法 ベンチマークテストの方法 go testコマンドの使い方 最初のテスト はじめに最小限のテストの作成と実行の仕方を説明します。 テスト対象として、次のコードを利用します。 calc.go package calc func Max(x, y int) int { if x < y { return y } return x } テスト用のソースファイルを作成します。 ファイル名の末尾は_test.goとする パッケージ名はテスト対象と同じにする(別パッケージも可、以降で説明) テスト関数のシグネチャはfunc TestXxx(t *

  • Goの新しい構造化ロガーを体験しよう | gihyo.jp

    logパッケージ Goには標準ライブラリとしてlogパッケージが提供されています。logパッケージで行えることはそう多くはありません。たとえば、デフォルトではログは標準エラー出力に出力されますが、log.SetOutput関数で出力先を変更できます。また、利用する関数によってログを出力した後の挙動をコントロールできます。たとえば、log.Print関数はログを出力するだけですが、log.Fatal関数はログ出力後にos.Exit(1)を呼び出します。log.Panicはログ出力後に出力したログと同じ文言を引数としてパニックを発生させます。 logパッケージでは、ログとともに関連するデータを出力したい場合は、log.Printf関数を用います。次のように、書式を指定して出力します。 log.Printf("request_url=%s request_method=%s", r.URL, r

    Goの新しい構造化ロガーを体験しよう | gihyo.jp
    youko03
    youko03 2023/11/30
    “slog”
  • Goにおけるjsonの扱い方を整理・考察してみた ~ データスキーマを添えて

    この記事について この記事はGo Advent Calendar 2021 13日目の記事です。 記事のテーマはencoding/jsonパッケージにおけるjsonエンコード・デコードの扱い方についてです。 普段私は、 MarshalとUnmarshalってどっちがGo→jsonでどっちがjson→Goなんだっけ? タグでマッピング規則をいじれるのはエンコードとデコードどっちだっけ? 非公開フィールドってどういう扱いになるんだっけ? などというところがうろ覚えでパッと出てこないので、この際なのでまとめてしまおうということで前半部分を書きました。 また記事後半では、私が今年読んだとあるの内容に基づいてGoでのjsonデコードが持つ性質を好き勝手に考察してみました。 25日に向けてちょうど折り返しの位置ですが特におもしろネタ要素はなく、普通に私の書きたいことをひたすら真面目に理屈っぽく書いて

    Goにおけるjsonの扱い方を整理・考察してみた ~ データスキーマを添えて
    youko03
    youko03 2023/11/30
    “エンコーディング/インメモリ表現からバイト列表現へ/Go構造体からjson/平文から暗号文/データを伝送するときに使われる/シリアライゼーション(serialization)・マーシャリング(marshalling)”
  • Goに入ってはGoに従え

    Goに入ってはGoに従え Go Conference 2014 autumn 30 November 2014 鵜飼文敏 Fumitoshi Ukai Google Software Engineer - Chrome Infra team Go Readability Approver Go言語のReadabilityをレビューするチーム コードレビューを通じてGo言語のよいコードの書きかたを教える メインのプロジェクトとは別のコードをレビュー 一年前くらい前に参加して 20% timeで 200くらいのCLをレビューしました 今は一日3CLくらい、週に12CLほどのペースでやっています Gopher by Renée French 2 Readabilityスキルとは? プログラミング言語のリテラシー 作法にかなったやりかた で、読んだり書いたりできる能力 言語ごとに作法が違う C++

    youko03
    youko03 2023/11/22
  • Go+GinでCors設定を行い、クロスオリジンのアクセスを制御する - 親バカエンジニアのナレッジ帳

    APIとして使用される場合を想定 GinのGors設定 許可されないアクセスがされた場合 CORS 対応の後にルーティングを書かないとうまく動かない APIとして使用される場合を想定 近年SPAサイトがよく作られており、サーバサイドの言語はAPIとして開発されることが多いでしょう。 APIとして使用する場合、注意しなくてはいけないのがクロスオリジンの設定です。 他サイトから自由自在にアクセスされてしまえば、セキュリティ的にアウトですしDos攻撃の餌にもなってしまいます。 なので、APIへのアクセスを許可するサイトURL、メソッド(POSTやGET)、ヘッダー情報を予め設定しておきましょう。 GinのGors設定 まずは必要なモジュールをインストールします。 go get github.com/gin-contrib/corsあとは以下のように「r.Use(cors.New(cors.Co

    Go+GinでCors設定を行い、クロスオリジンのアクセスを制御する - 親バカエンジニアのナレッジ帳
  • Goを学ぶときにつまずきやすいポイントFAQ | フューチャー技術ブログ

    他の言語になれた人が、初めてGoを書いた時にわかりにくいな、と思った部分はどういうところがあるのか、難しいポイントはどこか、という情報を自分の経験や、会社の内外の人に聞いたりしてまとめてみました。まだまだたくさんあるのですが、多すぎるのでまずはこんなところで。コンテナで開発することがこれからますます増えていくと思われますし、その時にコンテナとの相性が抜群なGoをこれから使い始める人もどんどん増えていくと思います。 Goは特に言語のコアをシンプルに、何かを実現するときはそのシンプルな機能を組み合わせて実現しよう、というコンセプトです。つまり、他の言語で実現したいこと・できていることに比べて、Goは組み合わせ(イディオム)でカバーする領域が広くなります。そのあたりのとっかかりになる情報を提供することが、これからGoを触る人にとってつまずきを減らすことになると思います。 Go Conferenc

    Goを学ぶときにつまずきやすいポイントFAQ | フューチャー技術ブログ
  • 作ってわかる! はじめてのgRPC

    gRPCは主にバックエンド、特にマイクロサービス同士の通信に多く使われる通信方式です。 しかしそれゆえに知名度が低く、「gRPCってどんな通信なんだろう?」「HTTPとは別の仕組みなの?」と思っている方もたくさんいるのではないでしょうか。 このでは、gRPCはそもそもどんなコンセプトで作られた通信方式なのかから、Goでの具体的な実装ノウハウ、AWSにデプロイするための設定までを通貫して解説することで、 「gRPC全くわからない」という人が「自分で実装して動かせそうな気がする……!」と思える段階までたどり着けるようにしました。

    作ってわかる! はじめてのgRPC
  • 業務アプリケーション開発にGoを採用する理由

    この記事は MICIN Advent Calendar 2022 の24日目の記事です。 前回は熊沢さんの2つの新規事業立ち上げで経験したタイプ別MVP検証の進め方でした。 はじめに 記事では、業務アプリケーションのバックエンドとしてGoを採用することによるメリットを、実際の業務経験を振り返りつつ考察してみます。 近年では多くの企業でGoが採用されています。その採用理由は、「並行処理をたくさん行いたいから」「学習コストが低いから」「フットプリントが小さくコンテナベースのプラットフォームに向いてるから」「Googleが使ってるから」「高速だから」といったところが挙げられるんじゃないでしょうか。 一方で、単なるモノリスなAPIとしてGoを選ぶ必要はないんじゃないのか、といった声もよく聞きます。「初期フェーズはスピード重視でRuby on Railsが最強だ」「枯れた技術であるJava + S

    業務アプリケーション開発にGoを採用する理由
    youko03
    youko03 2023/01/03
  • go mod完全に理解した

    はじめに go mod周辺を理解してないとGo言語使った開発辛いと思うんですが、ネットの日語情報少なくないすか? 最近はGOPATH使わないと思うんですが、古い情報が引っかかってきて、検索するのが辛いです。GOPATH使う時とgo mod使うときの比較情報も、あたらしくGo言語やる人的にはいらないと思うし。変更点は良いから、最新版の体系的な情報をくれよ、ってなってました。 新しく環境作るとき、自信ないままやってるんで、調べながらすこしまとめてみました。自信ないのはあんまり変わってませんが。。。 ちなみに、僕は、Go言語に入門して半年くらいで、なんとなく、3冊くらいGo言語の読んだ状態です。goroutineとかわからん。 基的には、ここらをなんとなく読んだ知識を整理してます。 Tutorial: Get started with Go - The Go Programming Lan

    go mod完全に理解した
    youko03
    youko03 2022/09/14
  • 1