ブックマーク / developers.freee.co.jp (8)

  • セッションキャッシュによる SPOF(単一障害点)問題の解消 - freee Developers Hub

    こんにちは、サービス基盤の横塚です。 freee のサービス基盤は、各チームがアプリケーション開発に専念できる環境を作ることをミッションに掲げるチームです。開発者の生産性を高めるような共通コンポーネントを整備したり、freee 全体が堅牢なシステムとなるような取り組みを日々続けています。 今回のテーマは、「認証サーバーの単一障害点問題を克服する」です。 freee の認証基盤 freee の中心にはログインするためのID情報や認証情報の管理を一手に引き受ける gRPC サーバーがあります。 freee の全アプリケーションはこの認証サーバーにアクセスしないと始まらないので非常に重要なコンポーネントです。もし認証サーバーがダウンしていたら、外からやってきたリクエストがどのユーザーからのものなのかさっぱりわからなくなってしまいます。当然アプリケーションは動かなくなるでしょう。 freee は会

    セッションキャッシュによる SPOF(単一障害点)問題の解消 - freee Developers Hub
    zu2
    zu2 2023/04/04
  • VSCode から Neovim に挫折せず移行する - freee Developers Hub

    freee Developers Advent Calendar 2022 1日目の記事です! ついに今年も始まりました freee Developers Advent Calendar、一日目は会計チームの hachi (@hachiblog) からお送りします。 エディタはソフトウェアエンジニアにとって毎日使う道具です。あなたはどんなエディタを使っていますか?そのエディタに満足していますか? 自分は3年ぐらい VSCode を使っていて大方満足はしていたのですが、細かいところで不満が出てきていました。 そのため思い切って Neovim にエディタを移行しました。 移行して、超快適!という状態ではまだないのですが、VSCode と同等ぐらいまでには使いこなせるようになりました。 自分は今まで何度か VSCode から Vim/Neovim に移行しようとして何度か挫折していて今回始めて成

    VSCode から Neovim に挫折せず移行する - freee Developers Hub
    zu2
    zu2 2022/12/01
  • 大量データの JSON serialize 処理を高速化し、レスポンスが倍速になった話 - freee Developers Hub

    こんにちは、freee会計でワークフロー機能の開発をしている @mitubaEX です。 先日 freee会計のパフォーマンスチューニングに取り組みました。記事では、調査の流れ、改善の事例を紹介します。 問題発覚までの流れ freee では自社の経理業務に freee会計を利用しており、その中でも経費精算の機能はほぼすべての従業員が利用しています。そのため日々多くのフィードバックをもらえます。そのフィードバックの1つで、「経費精算の一覧を開くのが遅い」という報告をもらいました。幸い表示件数を指定できるので調整すれば遅くはならないのですが、一覧性が下がってしまうため有用な解決策ではありません。 そこでワークフローを開発しているチームで、このパフォーマンスイシューの調査を始めました。 調査する まず事前調査として Datadog*1 で一覧画面を表示するリクエストの処理を確認しました。 一覧

    大量データの JSON serialize 処理を高速化し、レスポンスが倍速になった話 - freee Developers Hub
    zu2
    zu2 2022/04/28
  • pingcap/parser (MySQL互換) で SQL を手軽に解析 - freee Developers Hub

    この記事は freee Developers Advent Calendar 2021 の23日目の記事です🎄 freeeDBRE チームに所属している caterpillar です. なんだか大きなデータベースを眺める仕事をしています. 突然ですが, pingcap/parser を使って SQL を簡単に解析していきたいと思います. Go 製 の SQL Parser で, MySQL への高い互換性を謳う TiDB で利用されています. この parser の嬉しい点はこんな感じです. シンプルで使いやすい TiDB に利用されていることから, ある程度結果を信頼できる mask 済 SQL もおおよそ構文解析可能 3つ目について, mask済の SQL は select * from users where id = ? のように一部が別の文字に置き換わっているものを指しま

    pingcap/parser (MySQL互換) で SQL を手軽に解析 - freee Developers Hub
    zu2
    zu2 2021/12/24
  • MySQLでIN句の中に大量の値の入ったクエリがフルスキャンを起こす話 - freee Developers Hub

    こんにちは、freee Developers Advent Calendar 2021、19日目のid:shallow1729です。昨日はtdtdsさんで【マジで】サイバー演習シナリオの作り方【怖い】でした!障害訓練後に攻撃方法を解説された時はリアリティの高さに驚きました。 僕はMySQLを使っていて発生した不思議な挙動の調査の話をしようと思います。 今回問題となったクエリ 今回話題にするクエリは以下のようなシンプルなものです。 SELECT * FROM hoge WHERE id IN (...) MySQLのパラメーター次第ですが、デフォルトの設定だとこのIN句の中の値の数が数万になると適切なインデックスが用意されていてもフルスキャンが発生する事がありました。このクエリがテーブルのほとんどのレコードを網羅するような場合や高速でレコードを大量にinsertして統計情報が追いつかないケー

    MySQLでIN句の中に大量の値の入ったクエリがフルスキャンを起こす話 - freee Developers Hub
    zu2
    zu2 2021/12/20
    “MySQLのパラメーター次第ですが、デフォルトの設定だとこのIN句の中の値の数が数万になると適切なインデックスが用意されていてもフルスキャンが発生する事がありました”
  • 建設的相互作用の論文を読むと「完全に理解した」を完全に理解できる。そして効果的なペアプログラミングの心得。 - freee Developers Hub

    この記事はfreee Developers Advent Calendarの3日目です。 皆様こんにちは。freeeスクラムマスターをやってます ichy こと Takeru Ichiiです。過去にアジャイル開発関連の記事を2ほど書かせて頂いており、去年のアドベントカレンダーでは私のスクラム開発と無関係なペペロンチーノを混ぜて書かせていただきました。 developers.freee.co.jp 今年もなにか無関係なものを混ぜつつ新作を書こうかと思ったんですが、ちょっと業が立て込んでおり、間に合いませんでした。そこで、今回は社内Blogの転載に近い形になってしまうのですが、小噺を楽しんでいただこうかと思います。なお来であればビーフシチューのレシピを紹介しようかと思っていましたが、そのお話はまた今度させていただこうかと思います。 今回の記事の元ネタのご紹介 今回の記事は2021/10

    建設的相互作用の論文を読むと「完全に理解した」を完全に理解できる。そして効果的なペアプログラミングの心得。 - freee Developers Hub
    zu2
    zu2 2021/12/03
  • Rubyの型チェッカーのSorbetを導入しました - freee Developers Hub

    申告チームでテックリードをやらせてもらっている id:nanjakkun です。 freeeではfreee会計をはじめ多くのプロダクトがRuby on Rails(以下Rails)のアプリケーションとして実装されています。 日々の開発の中で、Rubyでも静的な型の解決ができればなあと思うことがあります。 ということで、Rubyの型チェッカーのSorbetをfreee申告に導入してみました。 Sorbet(ソルベ)とは sorbet.org 決済代行サービスのStripeを運営しているStripe社が公開している漸進的型チェッカーです。 ※余談ですがfreeeアプリストアではStripeを決済手段としたアプリの有料販売ができます。 developers.freee.co.jp 有料アプリ販売の準備をする | freee Developers Community 漸進的型付けとは 漸進的型付け

    Rubyの型チェッカーのSorbetを導入しました - freee Developers Hub
    zu2
    zu2 2021/10/27
  • プロダクトコードの静的解析にhorusecを入れた話 - freee Developers Hub

    この記事はfreee アドベントカレンダー16日目です。 みなさんこんにちは。PSIRTというチームでエンジニアをしているlivaです。PSIRTという聞き慣れない単語ですが「Product Security Incident Response Team」の略で、文字通りプロダクトのセキュリティにフォーカスしたチームです。元はCSIRT(Computer Security Incident Response Team)でまとめてやっていたんですが、今年の夏頃から分かれて動いています。業務内容は今までと何一つ変わっておらず、AWS触ったりGCP触ったりプロダクトチームへセキュリティ関係のことで首突っ込んだりとプロダクトのセキュリティに関することは色々やっています。 さて、今回の話題はタイトル通り「プロダクトコードの静的解析」についてです。 今まで各プロダクトごとにツールが運用されていたりいな

    プロダクトコードの静的解析にhorusecを入れた話 - freee Developers Hub
    zu2
    zu2 2020/12/16
  • 1