Go
GitHub Actions は CI/CD パイプラインの自動化に不可欠なツールで、Go の開発者にも大変便利です。特に、依存ライブラリのキャッシュはプロジェクトの CI/CD 時間を短縮し、開発効率を向上させるために重要な機能です。最近リリースされた GitHub Actions …
はじめに こんにちは、サーバサイドエンジニアの中川(@tkdev0728)です。 2023年も早いもので1ヶ月がすぎようとしていますね。2023年は何よりも姿勢にこだわろうと思っています。いい猫背解消の方法があればぜひコメントにて教えてください。 さて、今回はタ…
先日 Go の独自エラーについての記事を投稿しました。そこで error インターフェースを実装する時はポインタレシーバで実装しましょうという話をしました。そちらでは詳細は長くなるので割愛させていただきましたが、この記事では Go のインターフェースにつ…
Goで独自エラーを扱う方法についてサンプルコードを交えて解説します。
はじめに こんにちは、サーバサイドエンジニアの中川(@tkdev0728)です。 Yappliに入社して半年が経とうとしていて、時の流れは早いなと感じている今日この頃です。 さて、今回はタイトル通りとある業務にてJSONで格納されている値から特定のキーを抽出したい…
Goのdefer文の基本的な使い方と、プロダクションで使うときに気をつけるべきポイントをまとめました。
こんにちは、サーバサイドエンジニアの中川です。 この記事を執筆している2022年9月はちょうどスプラトゥーン3が発売された時期ですね。自分は今作から本格的に遊んでいるのですがすぐやられてしまうので、塗っている時間よりも塗る場所に移動している時間が…
こんにちは。インテグレーション・エンジニアの尾宇江(おうえ)です。 今回は、GoでJiraのチケットをエクスポートしてみた件について、テックブログに記載いたします。 はじめに Yappliでは2週間に1度、エンジニアが自分たちが主体となってプロダクトや業務に…
はじめに こんにちは。サーバサイドエンジニアの窪田です。 前回の 戦術的DDDをGoで実現する【entity編】 - Yappli Tech Blog に続き、 今回は戦術的DDDにおける、Value ObjectがGoでどのように書けるのかを考えていきます。 例によってTypeScriptとの書き方…
サーバーサイドエンジニアの田実です! 今回はYappliのGoのテストコードについて紹介したいと思います。 基本編 DBを使ったテスト HTTPリクエストのテスト インテグレーションテスト テストの実行とカバレッジの集計 その他 まとめ 基本編 基本的には標準ラ…
サーバーサイドエンジニアの田実です! Yappliではインフラ・アプリケーションの監視、メトリクスの計測にNewRelicを使っています。 今回、YappliのサーバーサイドアプリケーションにNewRelicを適用したので紹介したいと思います。 Go x gRPCなアプリケーシ…
概要 こんにちは。サーバーサイドエンジニアの窪田です。 最近入社して、初めてGoを業務で使うことになりました。 ヤプリではDDDでサーバーサイドの設計を行なっています。 これまで、Nest.jsというTypeScript製のフレームワークでDDD設計をしてきた経験があ…
サーバーサイドエンジニアの森谷です。 画像ファイルなどS3に置いてあるコンテンツの配信の仕方として、S3バケットは非公開にしておきつつも許可されたユーザーに対しては署名付きURLを用いて限定的なアクセスを許可する方法がよく用いられているかと思いま…
はじめに こんにちは、サーバーサイドエンジニアのKidaです。 Goにはnet/httpというHTTP クライアントとサーバーの実装を提供してくれるパッケージがあります。 普段の開発でnet/httpパッケージを使っているのですがGoの経験がまだ浅いということもあり、仕…
サーバーサイドエンジニアの森谷です。 Go Conference 2022 Springに"Go"ldスポンサーとして登壇してきましたので、その後日談記事になります! 登壇内容 「創業以来のPHPシステムが生み出した混沌をGoへの移行で乗り越えた話」について発表しました。 gocon…
サーバーサイドエンジニアの森谷です。 もうすぐGo Conference 2022 Springが始まりますね。 前回とはまた打って変わったセッションが並んでおり非常に楽しみです! gocon.jp ヤプリはGo Conference 2022 Springに"Go"ldスポンサーとして協賛しています!! …
サーバーサイドエンジニアの森谷です。 前回の記事に続いて、今回はsqlxパッケージについて見ていこうと思います。 簡単なおさらい 前回はdriverパッケージとsqlパッケージを読みました。 driver.Driver インターフェースを満たす型を実装し sql.Register で…
サーバーサイドエンジニアの森谷です。 弊社ではDBの一部にSQLiteを使っており、SQLiteからのSELECT結果を構造体にパースする部分の処理について調べごとをしていたのですが、その中で「SELECT結果をモックできたら楽に手元で色々確認できないかな」という疑…
こんにちは、エンジニアの尾宇江です。 goでプルリク作ってリリース作業を改善してみた。のエントリーに引き続き、Goを使ったちょっとした改善をした話です。 最初に 書いたコードをcommitした後、「あープリントデバッグで仕込んでたvar_dump消し忘れた」っ…
こんにちわ、エンジニアの山田です。 2022年始まって1ヶ月ですが、これだけWeb3がもてはやされると、自分もヤマダ2ぐらいにはならないとヤバいのではという危機感を覚えますね。 これだけWeb3がもてはやされると、自分もツノダ2ぐらいにはならないとヤバいの…
サーバーサイドエンジニアの田実です! YappliではネイティブアプリのAPIでgRPC-Gatewayを使って実装しています。 今回は、gRPC-Gatewayをv1からv2にアップグレードしたときに対応したことを紹介します! マイグレーションガイドはこちら↓ github.com 1. Go…
サーバーサイドエンジニアの田実です! 今回はGoの json.Unmarshal 関数で map[string]interface{} の型を指定したときに発生していた事象とその対策を併せて紹介します! なにが起きていたか 以下のように任意のキー、バリューを含むJSON文字列を map[strin…
サーバーサイドエンジニアの森谷です。 業務の中でS3からS3への大量オブジェクトコピーを行う必要が生じたのですが、これが思いの外簡単には実現できず、またGoから利用している記事もあまりなかったため今回はその実装などについて備忘録的にまとめようと思…
こんにちは。はじめましての方ははじめまして。 サーバーサイドエンジニアの加納です。 もういくつ寝ると、お正月~♬ と歌ってもいいような時期で、早い人は来週末から年末年始のお休みに入る方もいらっしゃるのではないでしょうか? 昨今の状況だと、お休み…
サーバーサイドエンジニアの田実です! ヤプリではPHPとGoを使っています。ということで(?)、PHPからGoを呼び出す方法について紹介します。 なおこの記事はGoからPHPを呼び出す方法の姉妹投稿(?)となっております。 ※この記事は PHP Advent Calendar 2…
サーバーサイドエンジニアの田実です! ヤプリではGoとPHPを使っています。ということで(?)、GoからPHPを呼び出す方法について紹介します。 なおこの記事はPHPからGoを呼び出す方法の姉妹投稿(?)となっております。 ※この記事は Go Advent Calendar 20…
サーバーサイドエンジニアの森谷です。 ヤプリではtenntennさんに技術顧問を務めていただいており、tenntennさん同席の元に隔週ペースでGoの社内勉強会を行なっています。 news.yappli.co.jp tenntennさん主導のレクチャーから業務コードの実装相談・モブプ…
サーバーサイドエンジニアの森谷です。 11/13 にGo Conference 2021 Autumnが開催されました。 ヤプリもSiliverスポンサーとして参加していたのですが、みなさんもうご覧になりましたか? 今回は個人的に気になったセッションをまとめてみたので、もしまだ視…
サーバーサイドエンジニアの田実です! Yappliではメールテンプレートや多言語化の設定ファイルをGoに埋め込んで使うためにstatikを使っていました。Go 1.16から導入されたgo:embedによってビルド時にファイルコンテンツを埋め込めるようになったので、stati…
サーバーサイドエンジニアの森谷です。 先日、開発中に面白い実装を見つけたため小ネタとしてご紹介します。 例として駐輪場に駐められている自転車とバイクを管理するsliceを考えます。 以下の構造体を定義したとして、これらを1つのsliceで扱いたいとした…