ユアマイスター株式会社エンジニアブログ

ユアマイスター株式会社のエンジニアが日々徒然。

PAYJP API の高負荷対策で出てきた「リーキーバケット(leaky bucketアルゴリズム)」について調べてみました。

どうも。ユアマイスター星(@inase17000)です。 どうやら世のエンジニアのQiita離れが少し進んできているようなので、技術的内容もこのブログに書いておこうかと。。。

先日、このようなアナウンスがありました。

payjp-announce.hatenablog.com

この中に登場する公式のPAY.JP API リファレンスで、以下のように言及されていました。

レートリミットは、leaky bucketアルゴリズム に従って実装されています。

恥ずかしながら、いままでこのリーキーバケットというものが何かを知らなかったので、ドキュメントにある例がなかなか頭に入ってきませんでした。こういうときは一度立ち止まって図にするなら自分の言葉にするなりアウトプット前提のインプットをすることで理解を進めたくなります。

ということで、簡単に調査した結果をまとめておこうと思います!

続きを読む

「Clean Architecture 達人に学ぶソフトウェアの構造と設計」輪読会 はじめます

f:id:yourmystar_engineer:20200903111227p:plain

どうも。ユアマイスター星(@inase17000)です。

先日ユアマイスター で輪読会をはじめました。

yourmystar-engineer.hatenablog.jp

無事、「テスト駆動開発」の輪読会が最終回を迎えました。各自、文章からの学びや実践の難しさを感じ取った全7回でした。 学びに加えて、社外の参加者の方からも「次回はまた輪読会をやるんですか?」とご期待の声もあり、嬉しい限りです。

ということで、新たに輪読会新シリーズをはじめます!

yourmystar.connpass.com

前回の輪読会では、「TDDは設計手法である」ということを学んだこともあり、エンジニアの中で設計にまつわる力を伸ばしたい!という意志が芽生えてきました。また、会社・プロダクトともにグングン成長中のユアマイスター 。今後エンジニア人数が増えていってもメンテナンスしやすいきれいなソースコードを書けるようになっておくことが必要とされているような状況です。

すでにClean Architectureを参考に、一部実装しはじめている部分もあり、ソフトウェア開発において基本的な考え方を身に付けるために、今回は書籍「Clean Architecture 達人に学ぶソフトウェアの構造と設計」を輪読会の対象にしていこうと思います。

今回は以下のような輪読会となります。

概要

書籍「Clean Architecture 達人に学ぶソフトウェアの構造と設計」を輪読していき、実装時のアーキテクチャ設計の理解を深めていく会です。

対象者

  • 書籍「Clean Architecture 達人に学ぶソフトウェアの構造と設計」を積読している方
  • 実装時のアーキテクチャ設計について深く学習したい方

参加方法

本イベントに応募の上、後日送られてくるURLからZoomオンライン会議に参加してください。

持ち物

Clean Architecture 達人に学ぶソフトウェアの構造と設計」 ※各自持参をお願いします。

進め方

  • 各自で書籍を準備し、その日の対象章を読んでおいて下さい。
  • 各回ごとに1〜3章ずつ進め、議論をしていきます。
  • 終了時に次回の進度と発表者を選びます。

今後のスケジュール予定

開催日 第N回目 内容
2020/09/09(水) #1 まえがき + 第1章〜第2章
2020/09/16(水) #2 1~3章ずつを予定
2020/09/23(水) #3 1~3章ずつを予定
2020/09/30(水) #4 1~3章ずつを予定
#5 以降は調整中です

注意事項

  • オンライン接続にはZoomを使用します。インストールがまだの方は事前にインストールをお願いします。招待用URLは参加者にのみ送付します。
  • 輪読内容のブログ・ツイッター等での発信はOKです。ハッシュタグ #ymsdev

ご興味ありましたら、是非ご参加ください! お待ちしております!

「テスト駆動開発」輪読会 はじめました

f:id:yourmystar_engineer:20200709112716p:plain

どうも。ユアマイスター星(@inase17000)です。

先日ユアマイスター で輪読会をはじめました。

yourmystar.connpass.com

ユアマイスターではテストコードを書く習慣は徐々についてきているものの、もっとコードをよくしたい気持ちがあり、そのきっかけづくりにテスト駆動開発について学習しようという狙いがありました。

今回は以下のような輪読会となります。

概要

書籍「テスト駆動開発(Kent Beck著,和田卓人訳)」を輪読していき、テスト駆動開発(Test Driven Development)について理解を深めていく会です。 これまでなんとなく理解していた

対象者

想定の対象者は下記の通りです。

参加方法

Zoomオンライン会議で行います。

進め方

connpassに記載の進め方を抜粋します。事前準備ありきの進め方を考えています。

  • 各自で書籍を準備し、その日の対象章を読んでおいて下さい。
  • 本書籍では写経(本を見ながら実際にコードを真似て書くこと)が推奨されています。事前準備としてご自身の環境で写経を進めておくことを強くお勧めします。
  • 本書籍ではJavaでサンプルコードを提示されていますが、主催社におけるPHP環境での活用を想定して、PHPでの写経を行いながら各回を進めていきます。
  • 各回ごとに4〜5章ずつ進め、議論をしていきます。
  • 終了時に次回の進度と発表者を選びます。

第1回をやった感想として、

  • 社外の方の参加もあり、刺激をもらえた
  • ただ本を読むだけではなく、「実務に活かすには」という観点で議論できたのがよかった
  • テストから先に書くのがTDD、ではなく、詳細設計やアーキテクチャーをいいものにしていくことがTDDの本髄だと感じた

などいろいろな気付きを得られた、とてもいいスタートでした。

第2回も予定していますので、興味ある方はお気軽に参加してください!

yourmystar.connpass.com

以上、イベントのレポートでした!

エンジニアNight#1 スタートアップのエンジニアがSIerと事業会社の違いをぶっちゃけ!を開催しました #meetup

f:id:yourmystar_engineer:20200216224126p:plain

どうも。ユアマイスター星(@inase17000)です。

先日ユアマイスター で初のエンジニア向けミートアップを開催しました。

https://yourmystar.connpass.com/event/165407/

今回のテーマは、 ・SIerや受託開発の場合と、事業会社の場合の「違い」について話す ことに設定し、私と弊社エンジニアの@fiririceの参加です!

ひさしぶりに人前で話すことになった@firirice氏の緊張の表情です。

本題でお話しさせていただいたテーマの一部をご紹介します。

f:id:yourmystar_engineer:20200216225339j:plain

f:id:yourmystar_engineer:20200216225407j:plain

事業会社で働く面白さの一つとして、エンドユーザーからのフィードバックをダイレクトに受け取れることが挙げられます。 ダイレクトに受け取れるということは、時と場合によって良し悪しはあるものの、サービスを使ってくれる人の想いがもらえるとやりがいに変わっていくので、その部分を強調してお話しさせてもらいました。

他にも複数のテーマを用意しており、予定時間をオーバーしてしまったようです🙇🏻‍♂️

また懇親会では、世田谷随一のアットホーム感で有名なフリースペースでの楽しいひと時。

参加者の方々のこれまでの現場のお話や、ユアマイスターの内部事情などをお話しできました。

アンケートの結果も前向きなご意見をたくさんいただけたので、エンジニアNightシリーズの幸先の良いスタートが切れたと思います。

このようなイベントは今後も継続的に開催するつもりです。(その決意の表れとして、#1というナンバリングもつけましたw)

多くの方にユアマイスター を知ってもらいファンになってもらえるよう積極的に行動していこうと思います!

以上、イベントのレポートでした!

CakePHP3 の Middleware 実装応用編 ログ出力Middlewareを作ってみた

f:id:yourmystar_engineer:20191218105844p:plain


この記事は、 ユアマイスター Advent Calender 2019 18日目の記事です。


どうも。ユアマイスター星(@inase17000)です。 過去2回にわたり、CakePHP3のMiddlewareについて紹介してきました。

yourmystar-engineer.hatenablog.jp

yourmystar-engineer.hatenablog.jp

馴染みのない方は、合わせてご覧いただけますと幸いです!

続きを読む

LighthouseレポートをCircle CIで自動実行 #lighthouse

f:id:yourmystar_engineer:20191206165313j:plain


この記事はCircleCI Advent Calendar 2019 18日目の記事です。


どうも。ユアマイスター星(@inase17000)です。

ユアマイスターでは定期的にPage Speed Insightsを活用して、フロントエンドのパフォーマンスを定点観測しています。Page Speed Insightsは、内部的にLighthouseを活用しており結局見ていくべきはLighthouseレポートであると考えています。

Circle CIを絡めて、リリースとともに定点観測を行えるような仕組みを導入したくて今回お手軽版で実装を試してみました。めちゃくちゃ簡単にできたのでおすすめです。

続きを読む

「今年の汚れ今年のうちに」合宿2019に行ってきました

f:id:yourmystar_engineer:20191209101315p:plain


この記事は、 ユアマイスター Advent Calender 2019 11日目の記事です。


どうも。ユアマイスター星(@inase17000)です。

ということで、ユアマイスター 4回目の合宿のレポートです。毎回目的を持って選手を選抜していくのですが、今回は初めてエンジニアのみという構成。これがまたなかなかどうして楽しいものでしたので簡単に記録残しておきます。

続きを読む