Yappli Tech Blog

株式会社ヤプリの開発メンバーによるブログです。最新の技術情報からチーム・働き方に関するテーマまで、日々の熱い想いを持って発信していきます。

Discordを導入して社内コミュニケーションに使ってみた

はじめまして、フロントエンドエンジニアのこん(@k0n_karin)です 2021年の12月に入社して早々に、Discordというアプリを社内のコミュニケーションツールとして試す提案をしました。 試験的に導入して半年ほど経ったので、弊社でどのように運用しているか、使…

YappliのGoのテストについて

Go

サーバーサイドエンジニアの田実です! 今回はYappliのGoのテストコードについて紹介したいと思います。 基本編 基本的には標準ライブラリを使ってテストを書いています。 ただし、assert周りは標準ライブラリだけでカバーするのが厳しいため、 stretchr/tes…

NewRelicをYappliのサービスに適用してみた

サーバーサイドエンジニアの田実です! Yappliではインフラ・アプリケーションの監視、メトリクスの計測にNewRelicを使っています。 今回、YappliのサーバーサイドアプリケーションにNewRelicを適用したので紹介したいと思います。 Go x gRPCなアプリケーシ…

戦術的DDDをGoで実現する【entity編】

概要 こんにちは。サーバーサイドエンジニアの窪田です。 最近入社して、初めてGoを業務で使うことになりました。 ヤプリではDDDでサーバーサイドの設計を行なっています。 これまで、Nest.jsというTypeScript製のフレームワークでDDD設計をしてきた経験があ…

Yappliに中途入社したエンジニアが3ヶ月のオンボーディング期間で取り組んだ事

こんにちは、サーバサイドエンジニアの中川(@taku-0728)です。 最近ネット麻雀にハマっているのですが、負けるとフラストレーション溜まるのでそもそも向いてないんじゃないかと思い始めてます。 いい精神統一の方法があれば知りたいです。 さて、今回は20…

CloudFront署名付きURLを用いたS3コンテンツの配信をGoで実装する

サーバーサイドエンジニアの森谷です。 画像ファイルなどS3に置いてあるコンテンツの配信の仕方として、S3バケットは非公開にしておきつつも許可されたユーザーに対しては署名付きURLを用いて限定的なアクセスを許可する方法がよく用いられているかと思いま…

BigQueryでドットを含むJSON Path文字をエスケープする方法まとめ【Sexy Tech for You #13】

データサイエンティストの阿部です。今年は大河ドラマを毎週見ています。三谷幸喜の代表作として長く語り継がれるのではないかと思っています。 さて、明日から使いたくなるデータハンドリング術を紹介する "Sexy Tech for You" の第13話を配信しました。Big…

Google Material IconsをVueコンポーネントとして書き出す

こんにちは。フロントエンドエンジニアの小林(baco16g)です。 デザインシステムの構築を進めるにあたり、各種アイコンの再設計する必要があります。 再設計の手段としてGoogle Material Iconsを利用する案が生まれたため、Vueコンポーネントとして自動出力…

BigQueryのQUALIFY句でユニーク性を担保する【Sexy Tech for You #12】

データサイエンティストの阿部です。妻に誘われて俳句を始めました。『プレバト!!』でお馴染みの夏井いつき先生が評価してくれるおウチde俳句クラブに加入して楽しんでます。 さて、明日から使いたくなるデータハンドリング術を紹介する "Sexy Tech for You"…

「みんなでGoogle I/Oの動画を見る会」をしています!

こんにちは、ヤプリの近藤(Hunachi)です。 先月Google I/O 2022が開催されましたね。 io.google 近年のGoogle I/Oでは全体のKeynoteとDeveloper Keynoteが放送された後に、その他の動画が沢山公開されるという形になっています。話がそれますが私はオフラ…

【小ネタ】TerraformでAWS WAFのログ取得設定を行う際の注意点

SREチームのはぶちです。 今回はTerraformからAWS WAFのログ取得設定を行う手順と、ちょっとした注意点について記事にしたいと思います。 はじめに AWS WAFのログの出力設定する際に条件を絞って出力したいケースがあると思います。 その際に、INFO以外の全…

git-worktreeでmultirepoの開発体験を向上させる

この記事では、複数ブランチを行き来しながら開発をするときに困ったことと、それに対処する方法として利用したgit-worktreeの紹介に加えてmultirepoでの活用例を紹介します。

Goのnet/httpパッケージを理解する

Go

はじめに こんにちは、サーバーサイドエンジニアの喜田です。 Goにはnet/httpというHTTP クライアントとサーバーの実装を提供してくれるパッケージがあります。 普段の開発でnet/httpパッケージを使っているのですがGoの経験がまだ浅いということもあり、仕…

SRE NEXT 2022でヤプリのセキュリティの取り組みについて発表しました

SRE

ヤプリの望月です。 最近結婚10年を迎えましたが、スイートテンダイヤモンドという古来からある風習の圧力に屈していました。 話は変わりますが、先日2022-05-14,15に開催されたSRE NEXT 2022で、ヤプリのセキュリティの取り組みについて発表させていただき…

Go Conference 2022 SpringでPHPからGoへの移行について発表しました

Go

サーバーサイドエンジニアの森谷です。 Go Conference 2022 Springに"Go"ldスポンサーとして登壇してきましたので、その後日談記事になります! 登壇内容 「創業以来のPHPシステムが生み出した混沌をGoへの移行で乗り越えた話」について発表しました。 gocon…

Go Conference 2022 Springに"Go"ldスポンサーとして協賛・登壇します!

Go

サーバーサイドエンジニアの森谷です。 もうすぐGo Conference 2022 Springが始まりますね。 前回とはまた打って変わったセッションが並んでおり非常に楽しみです! gocon.jp ヤプリはGo Conference 2022 Springに"Go"ldスポンサーとして協賛しています!! …

PHPerKaigi 2022 にダイアモンドスポンサーとして協賛しています!

PHP

サーバーサイドエンジニアの田実です。 もうすぐ PHPerKaigi 2022 が始まりますね! 今回も面白そうなセッションばかりで非常に楽しみです。 phperkaigi.jp ヤプリは PHPerKaigi 2022 にダイアモンドスポンサーとして協賛しています!! ヤプリは創業期からP…

Goのsqlxパッケージを理解する

Go

サーバーサイドエンジニアの森谷です。 前回の記事に続いて、今回はsqlxパッケージについて見ていこうと思います。 簡単なおさらい 前回はdriverパッケージとsqlパッケージを読みました。 driver.Driver インターフェースを満たす型を実装し sql.Register で…

デザインシステム構築に向けた Figma API によるCSSカスタムプロパティの自動生成

こんにちは。フロントエンドエンジニアの小林(baco16g)です。 この記事では、YappliのCMSにおけるデザインシステムを構築に向けた準備をしている話を、エンジニア視点でお伝えします。 デザインシステムが求められた背景 YappliのCMSは、2019年にシステム…

Goのsqlパッケージを理解する

Go

サーバーサイドエンジニアの森谷です。 弊社ではDBの一部にSQLiteを使っており、SQLiteからのSELECT結果を構造体にパースする部分の処理について調べごとをしていたのですが、その中で「SELECT結果をモックできたら楽に手元で色々確認できないかな」という疑…

YappliにおけるgRPC, Protocol Buffers運用について

サーバーサイドエンジニアの田実です! Yappliでは各APIの通信にgRPC, Protobufを採用しています。 本記事ではYappliにおけるgRPC, Protobufの利用方法・運用方法についてご紹介します! 利用箇所 以下のAPI通信においてgRPCを利用しています。 用途 プロト…

BigQueryで異なる粒度の集計をまとめて実施する【Sexy Tech for You #11】

データサイエンティストの阿部です。この1年間、毎週土曜日に8時間副業していました。結果、週休二日制のありがたみがわかりました。 さて、明日から使いたくなるデータハンドリング術を紹介する "Sexy Tech for You" の第11話を配信しました。例えばDAUとMA…

[Swift] 親クラスのプロパティへのアクセスを禁止したい

こんにちは、ヤプリの三縞です。 iOSアプリの開発を進める中で、クラスの外からそのクラスの親のプロパティへのアクセスを禁止したい状況がありました。 今回の記事では実際の事例を紹介しながら、どのように解決したのかを説明したいと思います。 実際にあ…

ヤプリの開発体制について

こんにちは、エンジニアの山田です。 前振り一切無しですが、弊社オフィスから徒歩3分のところにイケてるスタバが出来たらしいです。 仕事帰りのフラペチーノが楽しみですね ( ゚∀゚)レッツトッピング!! オフィスから徒歩3分の所にイケてるスタバがオープンしたと聞…

BigQueryのJSONデータで、同一のJSONキー名がある場合に全ての値を取得する【Sexy Tech for You #10】

データサイエンティストの阿部です。今さらながら『劇場版 少女☆歌劇 レヴュースタァライト』を映画館で観たのですが衝撃的でした。 さて、明日から使いたくなるデータハンドリング術を紹介する "Sexy Tech for You" の第10話を配信しました。僕は「とりあえ…

SQLite3入門

サーバーサイドエンジニアの田実です! YappliはSQLite3を使ったマルチテナントアーキテクチャを採用しています。 今回は、SQLite3の運用でよく使うコマンドやちょっとマニアックな仕様についてまとめてみました! CLIでクエリ結果を縦に表示したい MySQLで…

ヤプリのフロントエンドチーム@2022年を紹介します

こんにちは、フロントエンドの山田です。 補足すると別記事にも登場する「サーバサイドの山田」と同一人物です。 現在はサーバサイドとフロントエンドを兼務してます。 tech.yappli.io さて、今回はフロントエンドの山田として、私達フロントエンドチームに…

PHPのちょっとした静的解析をGo+GitHub Actionsで実施するようにしてみた

こんにちは、エンジニアの尾宇江です。 goでプルリク作ってリリース作業を改善してみた。のエントリーに引き続き、Goを使ったちょっとした改善をした話です。 最初に 書いたコードをcommitした後、「あープリントデバッグで仕込んでたvar_dump消し忘れた」っ…

goでプルリク作ってリリース作業を改善してみた。

Go

こんにちわ、エンジニアの山田です。 2022年始まって1ヶ月ですが、これだけWeb3がもてはやされると、自分もヤマダ2ぐらいにはならないとヤバいのではという危機感を覚えますね。 これだけWeb3がもてはやされると、自分もツノダ2ぐらいにはならないとヤバいの…

突撃!隣のリモートワーク環境

プロダクト開発本部 インテグレーションエンジニアの尾宇江です。 職種も名前も珍しいので…オーイェーって覚えてください。 Yappliでもリモートワークを行っているのですが、「そういえばあの人とリアルであったこと一度もないかも」って状況も出てきました…

Copyright © 2021 Yappli, Inc. All rights reserved