バックエンド

hinataメディアAPIのリファクタリングを通して感じたこと

こんにちは!バックエンドエンジニアの北條です。 23卒大学生で、今はインターンとして業務に携わっています。 現在「hinataメディア(以下メディア)で使用しているAPIをリファクタリングをする」というタスクを行なっているのですが、新しい発見や学びが多…

gqlgenを使ったファイルアップロード機能を実装して感じたこと

キャンプ場を検索・予約できるサービス(以下hinata スポット)などの開発を担当している名嘉眞です。 hinata スポットなどvivitのいくつかのプロダクトでは、フロントエンドとバックエンドの間にBFFが存在しており、BFFではGraphQLを採用しております。 またB…

gRPC Server Streamingでメタ情報も一緒にレスポンスする

キャンプ場を検索・予約できるサービス(以下hinata-spot)の開発を担当している名嘉眞です。 hinata-spotではbackendにGoを、backend間の通信にgRPCを採用しています。 今回はgRPCのServer Streamingでメタデータも一緒にレスポンスする方法をブログにします…

Goでコンストラクタ関数(完全コンストラクタ)を定義する

はじめに vivitで hinata spot というキャンプ場の検索・予約サービスのbackendを担当しています名嘉眞です。 hinata spot のbackendはGoで書かれています。 今回は、Goでコンストラクタ関数(完全コンストラクタ)を定義した際の問題や対応策について書きます…

Goで値オブジェクトを定義してみる

キャンプ場を検索・予約できるサービス(以下hinata spot)の開発を担当している名嘉眞です。 hinata-spot.me hinata spotではbackendにGoを採用しています。 また予約機能では試行錯誤ですがDDDを取り入れて開発をおこなっています。 今回はDDDやオブジェクト…

テスト初心者がRSpecで必要十分なテストを書く

今年の4月から新卒エンジニアとしてvivit株式会社で働いている氏家です。 私は現在、主にアウトドアWebメディアhinataの開発を行うmediaチームに所属しており、Railsを中心にコードを書いております。 最近、ある機能の実装のためコントローラにメソッドを追…

Goでsitemap.xmlを生成する

こんにちは、spotチームの名嘉眞です。spotチームはキャンプ場検索サービス(hinata spot)を開発しております。私はspotチームのバックエンド担当として日々Goを書いてます。 hinata spot 今回はsitemap.xmlをGoで生成する方法についてまとめてみました。標準…

GraphQL DataLoaderライブラリ dataloden の使い方

こんにちは、spotチームの名嘉眞です。spotチームはキャンプ場検索サービス(hinata spot)を開発しております。私はspotチームのバックエンド担当として日々Goを書いてます。 hinata-spot.me spotチームでは、GraphQLのDataLoaderライブラリとしてdataloaden …

vivitにjoinして1ヶ月でやったこと

こんにちは、今年の6月に入社したspotチームの名嘉眞です。spotチームはキャンプ場検索サービス(hinata spot)を開発しております。私はspotチームのバックエンド担当として日々Goを書いてます。 hinata spot vivit入社前は主にRailsを書いていましたので、Go…