サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
どうなる?Twitter
tech.yappli.io
SREチームの中原です。 Aurora MySQL 2.x で運用している本番DBから Aurora Serverless v2 な調査用DBを作成する方法について書いてみます。 TL;DR Aurora MySQL 2.x で運用しているDBでも Serverless v2 な調査用DB立てられるよ ただし毎回メジャーバージョンアップの処理が必要なので時間かかるよ (弊社の環境で1.5〜3時間) Aurora Serverless v2 だとクエリーの途中でもスケールアップしてくれるのでハッピーだよ AWS さん Aurora Serverless v2 の Aurora MySQL 2.x 対応はよ! Aurora MySQL 3.x の LTS 版提供はよ! 経緯 弊社の本番DBは Aurora MySQL 2.x の LTS バージョンで運用しています。 これまで本番影響なく調査用
皆さんこんにちは。プロダクト開発本部・フロントエンドチームの平川です。 Yappli Tech Conference 2022で 「フロントエンドにおけるテスト戦略」というテーマで登壇しました。 アーカイブ動画 youtu.be スライド 発表概要 ヤプリのフロントエンドは管理画面であるCMSを開発しています。 歴史的経緯もありフロントエンドのテストが十分に足りていない、どのレベルでテストを書けば良いか不明瞭な状態になっているといった課題がありました。 そのような課題を解決するためにヤプリにおけるフロントエンドのテスト戦略について、テスト戦略を考える上で参考にした一般的な知識も交えながらお話ししました。 詳しくはアーカイブ動画・スライドをご覧ください。 最後に 発表を見ていただいた皆様ありがとうございました! 個人としては入社半年も経たないタイミングでこのような大きな舞台に登壇する機会を頂
サーバーサイドエンジニアの @shuymn です。 Yappliではサーバーサイド領域で利用するプログラミング言語のうちの1つとしてGoを採用しています。 Goには様々な言語機能がありますが、その中の1つにdefer文(defer statement)と呼ばれる機能があります。 本記事ではdefer文の簡単な紹介と実際にプロダクトコードで利用する際に気をつけるべきことを紹介します。 defer文の紹介 defer文を使う時に気をつけること defer文の中身が実行される順番を把握する os.Exitするとdefer文は実行されない defer文で発生するエラーをどうするか defer文に渡した関数の引数は即時評価される forループでループごとにdefer文を実行する方法 defer文はエラー処理より先に書かない さいごに 参考記事 defer文の紹介 defer文はifやforなどの制御
ヤプリの新卒Androidエンジニアの近藤(ふなち/@_hunachi)です。 AndroidでVPNに接続する一般的な方法とその問題点 皆さんは、AndroidでVPN接続するときはどのようにしていますか? 私は、OSに標準で搭載されているVPN接続機能を使用するのが一般的な方法かなと思います! 一般的なVPNの設定方法 この方法ですね↑ ですがAndroid 12以降では、この方法だと使われているプロトコルが IKEv2/IPsec 系の場合しか対応できなくなってしまいました😭 設定できるプロトコルを表示 しかもAndroid 12ではAndroid 11以前で設定できていたものを使用して接続できるのですが、Android 13ではその方法での接続もできなくなっています。 でもAndroid 11以前で使用していたプロトコルなど、違うプロトコルを使っているVPNを使いたい時ってありま
はじめに こんにちは。サーバサイドエンジニアの窪田です。 前回の 戦術的DDDをGoで実現する【entity編】 - Yappli Tech Blog に続き、 今回は戦術的DDDにおける、Value ObjectがGoでどのように書けるのかを考えていきます。 例によってTypeScriptとの書き方の違いも一緒に考えていきます。 要件・目指す状態 ドメインルールを表したドメインモデルが定義されている 値の性質を満たした実装がされている という状態を目指します。 書いてみる ドメインモデルを定義する 例えば、ある登録制のサービスでのユーザーネームについて考えます。 そのユーザーネームが 5文字以内でなくてはいけない 半角英数字のみでなくてはいけない というドメインルールがあるとします。 TypeScriptでは以下のように書けます。 class UserName extends Strin
データサイエンティストの阿部です。妻に誘われて俳句を始めました。『プレバト!!』でお馴染みの夏井いつき先生が評価してくれるおウチde俳句クラブに加入して楽しんでます。 さて、明日から使いたくなるデータハンドリング術を紹介する "Sexy Tech for You" の第12話を配信しました。最近ヤプリでは、手動運用するスプレッドシートをBigQueryに連携してマスタとして活用するケースが増えてきました。そんなとき、ユニーク性を担保するのに便利なQUALIFY句を紹介しました。 動画中に記載したクエリや補足事項を本ブログに掲載しますので、少しでも皆様のお役に立てたら幸いです。 Youtube BigQuery クエリ QUALIFY句例 WITH dat AS ( SELECT "A" AS id, "部署1" AS group_name UNION ALL SELECT "B" AS i
サーバーサイドエンジニアの @shuymn です。 2022年5月現在Yappliではサービスのソースコードをサービス単位でリポジトリとして分割するmultirepo*1スタイルでソースコードを管理しています*2。 この記事では、複数ブランチを行き来しながら開発をするときに困ったことと、それに対処する方法として利用したgit-worktreeの紹介に加えてmultirepoでの活用例を紹介します。 実行環境について 本記事に記載しているGitコマンドは以下のバージョンで動作確認をしています。異なるバージョンの場合、動作が異なる可能性がありますので実行前に公式のリファレンスをご確認ください。 $ git --version git version 2.36.1 困ったこと Yappliのソフトウェアエンジニアは常にそのとき所属しているプロジェクトで担当しているタスクだけに取り組むのではなく、
ヤプリの望月です。 最近結婚10年を迎えましたが、スイートテンダイヤモンドという古来からある風習の圧力に屈していました。 話は変わりますが、先日2022-05-14,15に開催されたSRE NEXT 2022で、ヤプリのセキュリティの取り組みについて発表させていただきました。 speakerdeck.com 発表の概要 発表内容としては、これまでヤプリのSREが取り組んできたセキュリティの取り組みについてお話しさせていただいております。 現在ヤプリにはセキュリティエンジニアが在籍していません。 そういった状況のなか、SREに限らずIT(情シス)エンジニアやサーバーサイドエンジニアが、個々の強みを活かしながら会社全体としてセキュリティを推進しています。 open.talentio.com 振り返ってみると、セキュリティ対策が進んだきっかけの一つとして、2020-12の株式上場が挙げられます。
サーバーサイドエンジニアの田実です! Yappliでは各APIの通信にgRPC, Protobufを採用しています。 本記事ではYappliにおけるgRPC, Protobufの利用方法・運用方法についてご紹介します! 利用箇所 以下のAPI通信においてgRPCを利用しています。 用途 プロトコル クライアント サーバー ネイティブアプリ用API gRPC(gRPC-Gateway経由) アプリ Go Webフロントエンド用API gRPC-Web TypeScript Go サーバー間通信 gRPC Go Go gRPCだけではなくgRPC-Gateway, gRPC-WebとgRPC系をフル活用しています! 運用方法 全容はこんな感じになります。 それぞれのインターフェースを変更する場合は、開発者がprotoファイルを修正してprotoファイル用のリポジトリにpushします。 push
サーバーサイドエンジニアの田実です! Yappliのネイティブアプリ向けのAPIは一部gRPC-Gatewayで実装されています。 インターフェース仕様の共有・確認はprotoファイルやwiki*1、Slackを使って行っていましたが、protoファイルだとリクエスト・レスポンスの全容が一見して把握しづらく、wikiやSlackだと反映漏れや最新の仕様が追いづらい等の課題がありました。 本記事ではこれらの課題を解決するために、Swaggerを使ってgRPC-GatewayのAPIドキュメントを自動生成した話を紹介したいと思います! protocを使ってOpenAPIのドキュメントを自動生成 gRPC-Gatewayのprotoc-gen-openapiv2のプラグインを使うと、protoファイルからOpenAPIの定義ファイルを書き出せるようになります。 $ go get -u githu
iOSエンジニアの三縞です。 ヤプリでは2週間に1度木曜日、普段なかなか手を付けられずにいる改善系のタスクに取り組む「Yappdate Day」を実施しています。 私は今日の Yappdate Day で Xcode 10.2 および Swift 5 への対応を行ったので、その内容を紹介しようと思います。 前提 移行前は Xcode 10.1, Swift 4.2 でした。 ライブラリ管理ツールにはCarthageを使用しています。CocoaPodsは使用していません。 行った手順 Xcode 10.2 をインストールして開く Preferences > Locations > Command Line Tools を「Xcode 10.2」に設定 Carthageのアップデート $ brew upgrade carthage Carthage管理のライブラリの再ビルド $ carthag
こんにちは、ヤプリの三縞です。 Xcode 11 からはiOSプロジェクトを新規作成すると AppDelegate と同時に SceneDelegate も自動生成されます。 この記事ではこの SceneDelegate について、その役割や AppDelegate との違いについて調べたことを残しておきます。 SceneDelegateの役割 SceneDelegate によって、1つのアプリに対して複数のUIのインスタンスを作れるようになります。 今秋にリリースされるiPadOSでは Slide Over / Split View 機能で1画面の中に同じアプリを2つ並べることができるようになりますが、これはこの「1つのアプリに対して複数のUIのインスタンスを作れるように」なることで実現可能となります。 Xcode 11 からはiOSプロジェクトの新規作成時に自動で SceneDeleg
こんにちは、ヤプリでAndroidエンジニアをしている白井です。 ARCoreを試してみる流れでOpenGLを触る機会があり、勉強も兼ねて動画と画像を合成してみましたので紹介したいと思います。 OpenGL ESとは OpenGL for Embedded Systems (OpenGL ES)とはKhronos Groupによって開発されたコンピュータグラフィックスAPIで、スマホなどの組み込みシステムで利用されています。 iOSやAndroidでも特にゲーム系アプリで多く使われています。 UnityやARCore Sceneformなどゲームエンジンやグラフィックエンジンの中で実装されており、開発者がこのAPIを直接叩く機会はそれほどないかもしれません。 OpenGL ESを直接利用するには学習コストも高く容易ではありませんが、それでも特殊な処理(例えばARCoreでトラッキングした座
このページを最初にブックマークしてみませんか?
『Yappli Tech Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く