並び順

ブックマーク数

期間指定

  • から
  • まで

921 - 960 件 / 2480件

新着順 人気順

goの検索結果921 - 960 件 / 2480件

  • Govulncheck v1.0.0 is released! - The Go Programming Language

    Julie Qiu, for the Go security team 13 July 2023 We are excited to announce that govulncheck v1.0.0 has been released, along with v1.0.0 of the API for integrating scanning into other tools! Go’s support for vulnerability management was first announced last September. We have made several changes since then, culminating in today’s release. This post describes Go’s updated vulnerability tooling, an

      Govulncheck v1.0.0 is released! - The Go Programming Language
    • 囲碁はどうなったら終わりなのか教えようじゃないか

      また「囲碁のルールわからない」が湧いている。 https://b.hatena.ne.jp/entry/s/gigazine.net/news/20220314-puyogo/ どうやら毎回、ルールわからんと言っている人が引っ掛かってるところは同じみたいだから、それをQ&A形式で解消してみようと思い、書いてみる。 TL;DR(追記)ツリーで会話していてこれが先にあった方がわかりやすいかもと反省したので載せる。 ・囲碁はゲームが進むと、盤面が石だらけになる前に、どちらがどこに石を置いても互いの得点を一切増減させられない、いわば定常状態というべき状態に陥る。 ・この状態に陥ったことを、両プレイヤーが納得し、そのことに合意をしたらゲーム終了。 どうなったら終わりなのか?両者が終わることに合意をしたら。 あるいは、両者が連続でパスをしたら。 これを曖昧なルールだと考えてしまう人も多いが、決して曖昧

        囲碁はどうなったら終わりなのか教えようじゃないか
      • GoとSuffixArray | フューチャー技術ブログ

        フューチャー夏休みの自由研究連載の5回目です。 はじめにTIG の辻です。 Go は標準ライブラリが充実しているとよく言われます。標準ライブラリだけで、HTTP サーバを作れたり、暗号化処理や、JSON や CSV といったデータ形式を扱うことができます。go list std | grep -v vendor | wc -l としてパッケージ数を見てみると、約 200 ものパッケージが存在することがわかります。本記事では、その多くの Go の標準ライブラリの中でも、個人的に面白いなと思ったライブラリを紹介したいと思います。suffixarray パッケージです。 suffixarray パッケージは Suffix Array を扱うライブラリです。suffixarray パッケージの魅力を感じるには、まず Suffix Array とは何か?を知る必要があるでしょう。 Suffix Ar

          GoとSuffixArray | フューチャー技術ブログ
        • そびえ立つ n 万行の csv を Go 言語で簡単クッキング - ANDPAD Tech Blog

          はじめまして、バックエンドエンジニアをしています武山 (bushiyama) です。 この記事は ANDPAD Advent Calendar 2022 の 1日目の記事です。 そんなルールはありませんが、アドベンドカレンダー 2022 初日なので初級な内容で暖めていきたいと存じます。 お題 非エンジニア職「ちょっとこの csv を集計したいんだけど、件数が多すぎなので助けて わたし「おk そもそも、システム上で集計できるよう諸々設計するのが最善ではあります。 しかしどんなに完璧なシステムを作っても、エンジニアには生涯で3回ぐらいは n 万行の CSV に立ち向かわなければならない日が来ます。 これは、わたしの直近の戦いの記録である。 なにはなくとも、まず要件整理 Excel などで開ければ vlookup と sum で簡単にとれるようですが、件数が多すぎて無理なよくあるやつです。 要望

            そびえ立つ n 万行の csv を Go 言語で簡単クッキング - ANDPAD Tech Blog
          • Go製バイナリを配布するためのGitHubワークフロー - Plan 9とGo言語のブログ

            前置き 以前、BuildInfoからバージョンを取得する方法を紹介しました。 blog.lufia.org go installで正規の公開されたバージョンをインストールした場合は、以下の出力においてmodの行が示すように、sum.golang.orgでチェックサム等が検証されてバイナリのメタデータに埋め込まれます。 $ go version -m dotsync dotsync: go1.22.2 path github.com/lufia/dotsync mod github.com/lufia/dotsync v0.0.2 h1:JWm92Aw8pSKJ4eHiQZIsE/4rgwk3h5CjEbJ/S30wiOU= build -buildmode=exe build -compiler=gc build -trimpath=true build DefaultGODEBUG=ht

              Go製バイナリを配布するためのGitHubワークフロー - Plan 9とGo言語のブログ
            • 【Go】time.Time.AddDateの注意点と対策 - Mirrativ Tech Blog

              こんにちは、バックエンドエンジニアの藤井脩紀です。 今回の記事では日付計算に潜む罠についてお話しさせていただきます。 なお今回はGoでの事例をご紹介しますが、原理的には他の言語やライブラリでも同様の事象が発生する可能性があります点にご注意ください。 time.Time.AddDateの注意点 突然ですがここでクイズです。 来月が何月か知りたいので以下のようなコードを書きました。 このコードを実行したのは10月だとします。 結果は何になるでしょう? // AddDateの引数は順に年、月、日でそれらの値を加算したtime.Timeを返してくれます fmt.Printf("%d月\n", time.Now().AddDate(0, 1, 0).Month()) 「え、11月でしょ?」と思う方もいらっしゃるかもしれませんが正確には異なります。 焦らさずに書きますが答えは「11月か12月のどちらか

                【Go】time.Time.AddDateの注意点と対策 - Mirrativ Tech Blog
              • 知識0からGo言語でCTF用スコアサーバを構築した結果、最高だった話 - Qiita

                ※追記 06/28:ソースコードにてのご指摘がありました。あくまでコロナ自粛から始めたので、拙いコードですので温かい目で見てもらえると嬉しいです。今後、Goについてもっと勉強していきたいと思いました。 はじめに どうも、テスト前で何もしたくないMarnyです。 今回は、Qiita夏祭り2020_パソナテックというイベントがやっていたので記事を書いていこうかなと思います。 テーマ:〇〇(言語)のみを使って、今△△(アプリ)を作るとしたら コードの詳細を解説するより、どういったメリットがあるのか、デメリットがあるのか。そういった点に注目していきます。 開発経緯 そもそもなんでCTF用のスコアサーバを構築したかというと、同級生3人で通っている高専の 低学年用にLinuxリテラシー等を学習できる環境を作ろうぜ! という話があり、CTFを構築することになりました。 で、使用言語なんですけど、先生から

                  知識0からGo言語でCTF用スコアサーバを構築した結果、最高だった話 - Qiita
                • GitHub - gogitdb/gitdb: Distributed Embeddable Database

                  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 - gogitdb/gitdb: Distributed Embeddable Database
                  • GoとKubernetesを用いたバッチ開発のすすめ

                    Go Conference 2022 Springでの発表資料です https://gocon.jp/2022spring/ja/sessions/lt5/

                      GoとKubernetesを用いたバッチ開発のすすめ
                    • [Go]次世代イメージcimg/goとcircleci/go Orbsを使った2020年版CircleCIの環境構築 - My External Storage

                      2020年になって、CircleCIのCI用の公式ベースイメージはcimg/base派生になった。 ただ、2020/06/07現在、Go向けの言語別公式ガイドの中身は古いままである。 cimg/goを使ったGo向けのCircleCIの設定をまとめる。 TL;DR CircleCIで利用するコンテナイメージに次世代版が登場した。 https://hub.docker.com/r/cimg/go 直接使わなくても、Orbsが便利 https://circleci.com/orbs/registry/orb/circleci/go go/mod-download-cachedでキャッシュとGo Modules周りがすぐ解決。 go-junit-reportをgo getしなくてもよい gotestsumコマンドがデフォルトインストールされている GOPATHは変更されているので注意する /hom

                        [Go]次世代イメージcimg/goとcircleci/go Orbsを使った2020年版CircleCIの環境構築 - My External Storage
                      • Facebook、「Oculus Go」販売終了 6DoFに完全シフト

                        米Facebook傘下のOculus VRは6月23日(現地時間)、2018年5月発売の「Oculus Go」の販売を終了すると発表した。同社の現行VRヘッドセットとして唯一3DoF(3自由度)の同製品をサポートする必要がなくなり、同社もゲームメーカーも、6DoFに集中できるようになるとしている。 3DoFとは、頭部の動きのみ検知するもので、6DoFはそれに加えて体の動きも検知する。これにより、没入感がより高まる。現行製品の「Oculus Rift S」と「Oculus Quest」は6DoFサポートだ。 Oculus Go向けの新機能がOculus VRからリリースされることはなくなるが、使い続けることは可能で、2022年まで不具合の修正やセキュリティアップデートは継続する。12月18日以降、OculusストアではOculus Goで利用できる新しいアプリの追加はなくなる。 ただし、Oc

                          Facebook、「Oculus Go」販売終了 6DoFに完全シフト
                        • UberのエンジニアリングチームがGo GCのチューニングにより70kの削減に成功

                          Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                            UberのエンジニアリングチームがGo GCのチューニングにより70kの削減に成功
                          • 米国家安全保障局、CやC++からメモリ安全なプログラミング言語への移行を推奨する文書を公開

                            同ガイダンスは、近年のサイバーセキュリティ脅威の多くに利用されている、ソフトウェアのメモリ安全性の悪用を防ぐことを目的としており、組織におけるソフトウェアの開発にあたっては、可能な限りメモリ安全なプログラミング言語を使用するとともに、コンパイラのオプション、ツールのオプション、OS構成といったコードの安全性を高める対策を施すことで、保護を強化することを推奨している。 メモリ安全でないプログラミング言語としては、一般的に使用されているCやC++を挙げており、これらのプログラミング言語はメモリ管理において高い自由度と柔軟性を提供する一方で、メモリ参照が安全に行われているかどうかのチェックはプログラマに大きく依存していると指摘する。 ソフトウェア解析ツールを使用すれば、ソースコード中のメモリ管理における問題の多くを検出できるほか、OSによっては不正なメモリの利用を防ぐオプションも用意されているも

                              米国家安全保障局、CやC++からメモリ安全なプログラミング言語への移行を推奨する文書を公開
                            • distrolessのnonrootイメージを使おう - Re:cohalz

                              この記事は はてなエンジニア Advent Calendar 2021 11日目の記事です。 コンテナのベースイメージとしてdistrolessを選択肢にするということがここ最近増えてきました。 そんなdistrolessを非rootユーザで使おうとしたらとても簡単だったのでその紹介です。 どのくらい簡単かというと、Goのアプリケーションであれば以下のように変えるだけで対応できます。(コメントアウト部分は元々のrootユーザで動かしていた場合のもの) FROM golang:1.17 as builder WORKDIR /go/src COPY go.mod go.sum . RUN go mod download COPY . . RUN go build -o /out/myapp . # FROM gcr.io/distroless/static:latest FROM gcr.i

                                distrolessのnonrootイメージを使おう - Re:cohalz
                              • freeeカードチームの開発(Go)から得た学びベスト5 - freee Developers Hub

                                この記事はfreeeアドベントカレンダー2023の19日目の記事です。 こんにちは!freeeカードチームのmattsunです。freeeカードUnlimitedの開発運用をしています。私は1年前にfreeeに入社しfreeeカードチームに所属しています。これまでの自分のエンジニアとしてのキャリア(10年強)を通してみても、今のチームではPRレビューやリファクタなどからの学びが多いなぁと感じます。個人的に学びがあったことやチームとしての知見が深まったもののうち、ベスト5(私の主観)をまとめます。 freeeカードシステムは、フロントエンド(TS,React)・BFF(RoR)・Backend(Go)で構成されており、Goでの開発比率が多いことから、本記事はGoのコードに関する言及が多いです。freee社全体をみるとRailsで開発されたシステムも多いですが、Goで開発しているサービスもある

                                  freeeカードチームの開発(Go)から得た学びベスト5 - freee Developers Hub
                                • proto定義や成果物の管理用レポジトリを構築した話 - Kyash Product Blog

                                  こんにちは、Fundsチームの @convto です。Kyashでは銀行入金やコンビニ入金などの残高の入出金に関わる部分の開発をしています。 Fundsチームではその業務の性質上多数の外部ベンダとやり取りをしています。 それぞれベンダごとに仕様なども異なるため、その接続部分のいくつかはマイクロサービスとして切り出されています。 Fundsチームの管理しているサービス間の通信でgRPCを導入する際、今後の社内の別サービスなどにも汎用的に使えるようなproto管理レポジトリを構築したのでその紹介をしたいと思います。 proto管理レポジトリで満たしたい要件について はじめに、他社の事例も参考にしつつ、自分たちがprotoを管理するにあたってどのような要件を満たせれば良いのか整理しました。 他社の事例を調査したところ、以下のような構成が多かったように思います。 名称は app-proto や p

                                    proto定義や成果物の管理用レポジトリを構築した話 - Kyash Product Blog
                                  • 継続的に価値を提供するドメイン駆動設計入門 | Hori Blog

                                    Hori Blogフリーランスでバックエンドエンジニアとして活動している Ryota Hori のブログです。 最近はテック系記事より雑記ブログ気味。 世界へ継続的に価値を提供するコストはもっと低くてもいいはずだと思う。 継続的な価値提供への一つの手法としてドメイン駆動設計があるが、特にアプリケーション設計においては大局的な理解を得ることが難しいように思われる。 ドメイン駆動設計によるアプリケーション開発においてどういうことを実現したいのか。 本記事では大局的な思想に注目することで設計の入門となることを期待したい。 ドメイン駆動設計で成したい欲求 アプリケーション提供において、開発は専門化し価値提供欲求と分断されることが起こりがちである。加えて、アプリケーションの大規模化に伴い開発内においても局所的な専門化が生じやすい現状がある。 特定の目的を達成することで価値を提供するアプリケーションに

                                      継続的に価値を提供するドメイン駆動設計入門 | Hori Blog
                                    • Cloud Run で NEWS ランキング API を作った話 - エムスリーテックブログ

                                      エンジニアリンググループ AI・機械学習チームの岩月です。 これは エムスリー Advent Calendar 2019 の12月8日の記事です。 今回は、先日ついにGAになった Cloud Run を利用して、 NEWS のランキング API を作成した件についてまとめます。 NEWS ランキング API の役割 Cloud Run 構成 処理のフロー なぜこの構成になったか (Cloud Run を採用してよかった点) 運用のコストを減らしたかった GKE (Kubernetes) への移行がしやすい Cloud Run を使いたかった Cloud Run を採用したことによる制限 Keep-Alive ができない コールドスタート まとめ We're hiring! NEWS ランキング API の役割 エムスリーでは医療関連のニュースをはじめとする様々なニュースを扱っており、そこで

                                        Cloud Run で NEWS ランキング API を作った話 - エムスリーテックブログ
                                      • プロダクト開発を行いながらOSS活動も緩くやる - ANDPAD Tech Blog

                                        ANDPADボード プロダクトテックリードの土屋(tomtwinkle)です 先日CHIYODA Tech #3 にLT枠で参加してきました! CHIYODA Techとは、千代田区にオフィスを構える企業が運営・登壇するLTイベントです。 今回は弊社9Fのイベントスペースで開催させていただきました! アンドパッド以外にKINTOテクノロジーズさん、日本経済新聞社さん、スタディストさんがLTで参加されていました。 他社さんのLTも拝見させてもらって皆さんそれぞれOSSに対する様々な想いや課題を感じているんだなと勉強になりました。 LT後みんなでスナックミーさんから提供頂いたスナックをつまみに飲みながらテーブル毎に思い思いに喋るアンカンファレンスも非常に楽しかったです。 LT内容について 今回私が発表させてもらったLTについて少しだけ解説させていただきます。 speakerdeck.com ア

                                          プロダクト開発を行いながらOSS活動も緩くやる - ANDPAD Tech Blog
                                        • GCP連載#3 Goでサーバーレスな管理画面アプリを作る | フューチャー技術ブログ

                                          このうち、Cloud Funcionsと、AWSのLambdaはライバルのように言われます。実際機能的には似通っています。LambdaはHTTPのサーバーとして公開しようとすると、API Gatewayが必要なぐらいですね。 Cloud RunとFargateもライバルのように言われますが、Fargateは複数のコンテナを組み合わせたタスク単位で実行しますが、Cloud Runは単体のコンテナの実行になり、そこは少し差があります。 今回は、Go + Vue + Cloud Runでかんたんな管理画面を作ろうと思います。ストレージ側にもサーバーレスがあります。MySQLやPostgreSQLのクラウドサービス(Cloud SQLとかRDS)は、サーバーマシンを可動させて、その上にDBMSが稼働しますので、起動している時間だけお金がかかってしまします。一方、FirestoreやDynamoDB

                                            GCP連載#3 Goでサーバーレスな管理画面アプリを作る | フューチャー技術ブログ
                                          • 【Golang】VSCodeで自動生成されるテストコードをカスタマイズする - magamingのブログ

                                            こんにちは。Goのテスト、書いていますか? 私はめちゃめちゃ書いています。 VSCodeに拡張機能(vscode-go)を入れることで、テストコードを自動生成することができることを最近知ったのですが、これがとても便利です。 使い方は以下の記事でまとめられています。 kdnakt.hatenablog.com これはめちゃめちゃ便利なのですが、デフォルトだと少し物足ないところがあったので、カスタムテンプレートを作成しました。 GitHub - Magaming/gotests-templates vscode-goは内部でgotestsを使っているので、それ用のテンプレートを用意している形です。 具体的には次のようなことをしています。 go-cmpを使う 標準だと reflect.DeepEqualで比較しているが、これだとtime.Time型を含んだ構造体の比較とかで死ぬ go-cmpは、

                                              【Golang】VSCodeで自動生成されるテストコードをカスタマイズする - magamingのブログ
                                            • sync.Cond/コンディション変数についての解説

                                              sync.Cond(コンディション変数)について、Goをよく使ってる人たちですら「うまく説明できん」という話がmercarigoで出てたので、あとで誰かの役に立てばよいな、という気持ちで新たな解説記事を書いてみたいと思います。 自分はPerl5をバリバリ書いていた時代ではAE::Cond、Goを使うようになってからはsync.Condと、とにかく非同期処理でピタゴラ装置を作らないといけない時はこの仕組みがあったことでロジックを無駄に小難しくしないで実装することができたので、この仕組みは是非広く知られて欲しいのです。 というわけでまたあらたにGoのsync.Condを解説してみます。 なお、Web+DB Press vol 113の私の連載、「Goにいりては…」でもこの話を書いていますが、あちらの記事では Broadcast を使った方法ではなく、 Signal を使った方法について書いてあ

                                                sync.Cond/コンディション変数についての解説
                                              • 【GraphQL × Go】 N+1問題を解決するgqlgen + dataloaderの実装方法とCacheの実装オプション - LayerX エンジニアブログ

                                                こんにちは。バクラク事業部でバクラク申請の開発を担当している@sh_komineです。 この記事は、6月から始まっている #LXベッテク月間 9日目の記事です。 前回はPrivacyTech事業部の@cipepserさんによる 合成データとは - 統計的な有用性を維持する架空のパーソナルデータ でした。 ものすごくBet Technologyな合成データのお話で読んでいてワクワクする記事です。気になる方は是非読んでみてください! 本日は、一般的なWebアプリケーション開発の技術で、バクラク事業部の開発で実際に使っているgqlgenとdataloaderの実装について紹介したいと思います。 gqlgen + dataloaderの記事自体は巷にだんだんと出揃ってきていると思いますが、弊社が使っている技術として改めてご紹介できたらと思います。 前提の話 今回の記事は自分が前回のエンジニアブログ

                                                  【GraphQL × Go】 N+1問題を解決するgqlgen + dataloaderの実装方法とCacheの実装オプション - LayerX エンジニアブログ
                                                • Go公式の構造化ロガー(として提案されている)slogを触ってみたメモ

                                                  Go言語ではながらく公式のロガーとして log パッケージがありました。これは非常にシンプルなもので構造データをうまく表現できなかったりログレベルを分けるということができません。CLIで使うシンプルなインタラクションであればこれで十分なのですが、クラウド上のバックエンドで動かすサービスにとっては構造化ロギングやログレベルの出し分けは事実上必須であり、そのための機能は十分と言えませんでした。 これに対して様々なロガーが3rd party packageとして公開されてきましたが、一方で公式に導入されようとしているロガーもあります。それがslogです。まだ提案の段階ではありますが、現状で使える実装を触ってみたところかなり実用的な段階だなと感じたので、自分用の備忘録を兼ねてメモを残してみます。 サンプルコードはここにも置いてあります。 基本的な使い方 まず基本的な使い方を見てみます。ログ出力用に

                                                    Go公式の構造化ロガー(として提案されている)slogを触ってみたメモ
                                                  • FrankenPHP: the modern PHP app server

                                                    Ryan Weaver, long-time contributor to the PHP ecosystem, needs our help! Please consider making a donation now to support him.

                                                      FrankenPHP: the modern PHP app server
                                                    • Go1.19に採用されたPattern-defeating Quicksortの紹介 - エムスリーテックブログ

                                                      エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(po3rin) です。検索とGoが好きです。 最近、Go1.19でsortパッケージのアルゴリズムが一部変更されました。 Pattern-defeating Quicksortが入った時のdiff 1.19リリースノートではPattern-defeating Quicksortが採用されたと紹介があります。実際にsort/zsortfunc.go、sort/zsortinterface.goにそれぞれpdqsort_func、pdqsortという関数があります。 // pdqsort sorts data[a:b]. // The algorithm based on pattern-defeating quicksort(pdqsort), but without the optimizati

                                                        Go1.19に採用されたPattern-defeating Quicksortの紹介 - エムスリーテックブログ
                                                      • Terraform Modules で再利用できるので最高ではないでしょうか? - じゃあ、おうちで学べる

                                                        概要 ModuleはTerraformの複数のリソースをまとめて再利用可能な単位として扱うことができます。Moduleを使うことで複雑なリソース構成を抽象化し、システムの構造の把握やリソース構成の再利用が可能になり、読みやすさや可読性が向上し、修正箇所が単一になるなどのメリットがあります。 ただし、理解には初期コストが必要です。Moduleの設計では、1つの機能を持つように小さくシンプルに保つことが重要で、それが難しい場合は大抵複雑と言えます。 また、公式のModuleを利用することで、自身で定義やドキュメントの整備、メンテナンスの手間を省きつつ、プロジェクトを超えて共通認識として扱えるため、Module理解のコストが減ります。 しかし、どのタイミングでModuleに組み込むかの正解は、個々のプロジェクトの特性や開発チームの状況により大いに変わるでしょう。 絶えず試行錯誤を繰り返しながら個

                                                          Terraform Modules で再利用できるので最高ではないでしょうか? - じゃあ、おうちで学べる
                                                        • The Next Step for Generics - The Go Programming Language

                                                          Ian Lance Taylor and Robert Griesemer 16 June 2020 Introduction It’s been almost a year since we last wrote about the possibility of adding generics to Go. It’s time for an update. Updated design We’ve been continuing to refine the generics design draft. We’ve written a type checker for it: a program that can parse Go code that uses generics as described in the design draft and report any type err

                                                            The Next Step for Generics - The Go Programming Language
                                                          • Chrome OS搭載の新型Chromebook「Pixelbook Go」が登場

                                                            Googleが開催中の新製品発表会「Made by Google ‘19」の中で、Chrome OS搭載の新型Chromebook「Pixelbook Go」を発表しました。価格は649ドル(約7万円)からです。 An ultra-thin, lightweight laptop that's made to move | Pixelbook Go - YouTube 続いて登場したのは…… 新型ChromebookのPixelbook Go。 ボディカラーは3色。 Pixelbook Goのデザインやカラーがよくわかるムービーも公開されています。 A Thin and Lightweight Laptop with a Distinctive Style | Pixelbook Go - YouTube 握りやすいように、本体底面には溝がついています。金属仕上げのボディはアルミニウムより

                                                              Chrome OS搭載の新型Chromebook「Pixelbook Go」が登場
                                                            • GOの機械学習システムを支えるMLOps事例紹介

                                                              入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation

                                                                GOの機械学習システムを支えるMLOps事例紹介
                                                              • 最近のGoのOpenAPI Generatorの推しはogen - ぷらすのブログ

                                                                はじめに OpenAPI の yaml ファイルから Go のコードを生成する OSS ツールは何種類か存在します。 よく使われるのはOpenAPITools/openapi-generatorやdeepmap/oapi-codegenでしょうか。 ググると日本語の記事もたくさん出てきます。 こんにちは、バクラク事業部 バクラクビジネスカード開発チームでEMとTechLeadを担当している高江 @shnjtk です。 今回は、openapi-generator を使ってOpenAPI定義ファイル(OpenAPI Specification)からGoのコードを生成する方法と、運用時のTipsについてご紹介します。 背景 バクラク事業部では、スキーマ駆動開発によりDBやGraphQLのスキーマ定義、OpenAPI定義ファイルなどから自動生成されたコードを積極的に利用する開発スタイルが採用されて

                                                                  最近のGoのOpenAPI Generatorの推しはogen - ぷらすのブログ
                                                                • go generate のベストプラクティス - Qiita

                                                                  概要 Go 言語におけるコード生成 (go generate) について、自分の中でベストプラクティスと思えるものが増えてきたので、ここでまとめて紹介してみたいと思います。 2020/05/30 初版 2020/06/03 次の節を追加 マップを元データとするときは要素の出力順をソートする 使用するコードジェネレータのバージョンをモジュールに記録する 2020/06/03 次の資料を公開 go generate 完全入門 (プログラミング言語Go完全入門 質問会 発表資料) wtz.go と time について go generate のベストプラクティスを説明するにあたり、この記事では wtz.go と time の 2 つのライブラリを実例としてとりあげます。 wtz.go は筆者が Go 標準ライブラリの time の Windows ランタイム部分を参考にして作成したもので、 Wi

                                                                    go generate のベストプラクティス - Qiita
                                                                  • グーグルはプログラミング言語「Go」で何を目指しているのか - ZDNet Japan

                                                                    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます Googleが「Go」プログラミング言語の野望を実現するための次なるステップを示した。 「Dice 2019 Tech Salary Report」では、Goが最も稼ぎのよいいくつかの職種と関連があることが分かった。現代のデータセンターで運用のオーケストレーション(統制)を支援する主要なオープンソースツール群がGoをベースとしていることを考えると、これは意外なことではない。そうしたツールには、コンテナー展開プラットフォームの「Docker」やGoogleの「Kubernetes」コンテナー管理ソフトウェアが含まれる。 GoogleのGoチームの一員であるRobert Griesemer氏は先頃、チームが今でも同言語の最初の目標の達成に向

                                                                      グーグルはプログラミング言語「Go」で何を目指しているのか - ZDNet Japan
                                                                    • Fastly を導入しました! - ぐるなびをちょっと良くするエンジニアブログ

                                                                      こんにちは、開発 Restaurant Service Dev Unit の寺澤(@locol23)です。 普段は React や Node.js による開発を主としており、パフォーマンス改善や、公開準備中の eslint-config-gurunavi のルール策定やライブラリ化を行っています。今回、Fastly CDN を導入しましたので、その経緯などを書かせて頂きます。 TL;DR 長期開発されているプロダクトのため、課題がいくつかあり、それらを解決するために Fastly CDN を導入しました Terraform を使用し、Infrastructure as Code を実現しました 導入した結果、ストラングラーパターンで改善ができるようになりました Fastly とは CDN や画像の最適化(Image Optimizer)、次世代 WAF などを提供しているサービスになります

                                                                        Fastly を導入しました! - ぐるなびをちょっと良くするエンジニアブログ
                                                                      • Golang is evil on shitty networks

                                                                        This adventure starts with git-lfs. It was a normal day and I added a 500 MB binary asset to my server templates. When I went to push it, I found it interesting that git-lfs was uploading at 50KB per second. Being that I had a bit of free time that I’d much rather be spending on something else than waiting FOREVER to upload a file, I decided to head upstairs and plug into the ethernet. I watched i

                                                                          Golang is evil on shitty networks
                                                                        • Go言語とマイクロサービス、そしてクラウドサインについてCTOに聞いてみた

                                                                          クラウドサインとは?をCTOに聞く -- 自己紹介をお願いします。 市橋: 市橋 立です。弁護士ドットコムのCTOを務めています。 クラウドサインというサービスの開発を中心としながら、エンジニアとデザイナーを横断的にマネジメントしています。 -- クラウドサインについて教えて下さい。 市橋: 「紙と印鑑」を「クラウド」に置き換え、契約作業をオンラインだけで完結できるWeb完結型のクラウド電子契約サービスです。インターネット上で安全に、法的に有効な契約を素早く行えます。 従来の、紙と印鑑で行われている契約は、実はかなりコストのかかる作業です。 企業同士だと、契約書のやり取りだけで1-2週間を要することもざらにありました。その手間や時間を大幅に軽減できるのがクラウドサインです。PDFのアップロードから始まって、早ければ10分もかからず契約完了です。 -- コロナ禍で利用も大幅に増えたのではない

                                                                            Go言語とマイクロサービス、そしてクラウドサインについてCTOに聞いてみた
                                                                          • 【Go】profefeでContinuous Profilingをやっていく話 - Mirrativ Tech Blog

                                                                            こんにちは、サーバーエンジニアの牧野です。 今回はGoで開発しているアプリケーションでContinuous Profilingを実践するために導入した profefe を紹介したいと思います。 Continuous Profilingとは Continuous Profilingとは、ざっくり言うと本番環境で継続的にプロファイリングすることを指します。Continuous Profilingができると、本番環境でのみ発生するパフォーマンスの問題を捉えることができたり、継続的にプロファイリングすることで問題が発生する前後の状態を比較することができます。 Goには pprof というプロファイリングのための標準パッケージがあり、プロファイリング自体は容易に行うことができますが、Continuous Profilingを実現するとなると、以下のような課題と向き合う必要があります。 本番環境でオー

                                                                              【Go】profefeでContinuous Profilingをやっていく話 - Mirrativ Tech Blog
                                                                            • GoでSMTPを使用したメール二段階認証ページを作ってみた - Qiita

                                                                              GoでSMTPを使用したメール二段階認証ページを作ってみた Goでユーザー名/パスワード認証とワンタイムパスワードを使用した二段階認証を作ってみました。イメージをつかむためのテストとして作成したものでそのまま使用できるようなものではありませんが、ご参考になればと思います。 また、駆け出しなのでプログラムのミスや単語の誤用があるかと思いますので、コメントにてご指摘頂けると嬉しいです。 開発環境 OS Microsoft Windows 10 エディタ Visual Studio Code Go SDK go1.20 windows/amd64 SMTPサーバーについて SMTPサーバーは何でもよいのですが、試験的に使うものなのでGmailを利用しました。GmailのSMTPサーバー機能を使用する場合、以前は普段のログインと同じパスワードが使用できたのですが、現在はアプリパスワードを取得する必

                                                                                GoでSMTPを使用したメール二段階認証ページを作ってみた - Qiita
                                                                              • 【第12回】Go言語(Golang)入門~MySQL接続編~ – 株式会社ライトコード

                                                                                package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/jinzhu/gorm" ) func main() { _, err := sqlConnect() if err != nil { panic(err.Error()) } else { fmt.Println("DB接続成功") } } // SQLConnect DB接続 func sqlConnect() (database *gorm.DB, err error) { DBMS := "mysql" USER := "go_example" PASS := "12345!" PROTOCOL := "tcp(localhost:3306)" DBNAME := "go_example" CONNECT := USER + ":"

                                                                                  【第12回】Go言語(Golang)入門~MySQL接続編~ – 株式会社ライトコード
                                                                                • pipeエラーのハンドリング - Carpe Diem

                                                                                  概要 write: broken pipeといったクライアント側の強制的なコネクション切断でのエラーハンドリングをする際の知見まとめ。 環境 golang/go 1.13.3 事前知識 知っておくと良い知識を先に説明します。 そもそもpipeとは pipeはプロセス間通信をするための単方向のデータチャネルです。IOストリームを扱います。 読み出し側と書き込み側それぞれのfdを経由してプロセス間の通信を可能にします。 例えば親子プロセスで通信を行いたい場合、親プロセスでpipeを開きそれをforkして子プロセスを用意します。 ref: https://inzkyk.github.io/ocamlunix-jp/pipes.html そして親プロセスの書き込みfd・子プロセスの読み出しfdをそれぞれクローズすれば、以下のように子プロセス→親プロセスへ通信することができます。 pipeはシンプル

                                                                                    pipeエラーのハンドリング - Carpe Diem