ブックマーク / moneyforward-dev.jp (86)

  • Passkey Autofill に賭けるマネーフォワード ID ~ Money Forward Tech Day 2024 - Money Forward Developers Blog

    Money Forward Tech Day 2024 こんにちは、@nov です。 先日 2024/09/20、Money Forward Tech Day 2024 というイベントで Passkey Autofill に賭けるマネーフォワード ID というお話をさせていただきました。 その時に使ったスライドはこちらに公開してあるのですが、スライド内の文章は日英併記が必要で、スライドレイアウトの調整が難しかったため、このスライドにはほとんど文章を入れていません。 結果として、このスライドだけでは、イベントに参加していなかった方々には内容が伝わりにくいと思いますので、ブログにも書き起こしておこうと思います。 マネーフォワード ID について 最初の方は自己紹介とかマネーフォワード ID についての紹介なんで改めてお話しすることはありませんが、マネーフォワード ID における Sign-in

    Passkey Autofill に賭けるマネーフォワード ID ~ Money Forward Tech Day 2024 - Money Forward Developers Blog
  • Rails アプリの不要なテストデータをガっと消した🚮 - Money Forward Developers Blog

    こんにちは、id:Pocke です。マネーフォワードではクラウド会計Plusというプロダクトの開発と、RBS という Ruby の静的型のためのライブラリの開発の両方を行っています。今回の記事では、クラウド会計Plusの開発の話を書こうと思います。 TL;DR spec/fixtures/下に想像以上に多くのファイルがあることに気がついた inotify を使って不要なファイルを検出し、削除した 問題の発見 クラウド会計Plusの開発業務として、私は最近不要なコードの削除に取り組んでいます。その一環としてリポジトリの状況を調査していました。その中で以下のコードを用いて「拡張子ごとのファイル数」を計測しました。 $ git ls-files -z | ruby -e 'pp ARGF.read.split("\x0").map{File.extname(_1)}.tally.sort_by{

    Rails アプリの不要なテストデータをガっと消した🚮 - Money Forward Developers Blog
  • 不要な処理が実行速度を速くする謎を追う - Money Forward Developers Blog

    こんにちは。 id:Pocke です。マネーフォワードでは Rails を用いた Web アプリケーションの開発と、RBS という Ruby の静的型システムの開発を行っています。 最近 RBS の開発をする中で、「不要な処理を削除すると実行速度が遅くなる」という不思議な現象に遭遇しました。この記事ではその現象を解説しようと思います。 なおこの記事は Ruby の知識を前提としないように執筆されており、Ruby の知識が必要となるところには注釈を加えて補足しています。 普段 Ruby を書かない方にも読んでいただければ幸いです。 問題を引き起こした変更 今回の問題は、RBS のメモリ使用量の削減を行っている中で遭遇しました。まずはどんな変更を行おうとしていたかを解説します。 変更の動機 最近私は RBS のメモリ使用量の削減に取り組んでいます。1 その取り組みの中で、RBS のパーサーが作

    不要な処理が実行速度を速くする謎を追う - Money Forward Developers Blog
  • Steepのメモリ使用量を改善するつもりが、実行速度の改善をしていた - Money Forward Developers Blog

    こんにちは。id:Pocke です。 私は最近、Steep のメモリ使用量の改善に取り組んでいます。その過程で(意図せず) Steep の実行速度の改善に成功しました。 その中で行った、メモリ使用量の調査や、結果として実行速度が改善されたことは自分にとって中々楽しい体験でした。この記事では実行速度の改善に至るまでの経緯を紹介します。 記事中のソフトウェアは、執筆時点で最新のものを使用しています。具体的なバージョンは以下の通りです。 Ruby: 3.3.4 MemoryProfiler: 1.0.2 Steep: 1.8.0.dev.1 TL;DR メモリ使用量の調査のために、memory_profiler gem を使った それだけだと不十分なので、Ruby にパッチを当てた上で計測をした 結果としてsteep checkの解析対象ファイル数が多い場合に速度が遅くなることが分かり、改善した

    Steepのメモリ使用量を改善するつもりが、実行速度の改善をしていた - Money Forward Developers Blog
  • 10年もののRailsアプリの持続可能性を求めて -なぜ初手でCoffeeScript廃止を選んだのか- - Money Forward Developers Blog

    シニアソフトウェアエンジニアusadamasaです。 マネーフォワード クラウド会計とそれに関連するマイクロサービス群の開発運用を担当しています。 記事では、クラウド会計という10年もののRailsアプリの持続可能性をいかにして確保していくかの取り組みをご紹介します。 TL;DR 私が所属するチームでは、クラウド会計の開発運用における課題を整理し、それぞれの課題に対して解決策を検討し、実行するための取り組みを進めています。 最初にクラウド会計の全体の構造を明らかにし、課題を可視化、組織の共通認識としました。 その上で銀の弾丸を求めるのではなく、有期かつ漸進的な改善のプロジェクトとして計画することが成果に繋がります。 クラウド会計の現状 クラウド会計はマネーフォワード クラウドの代表的なプロダクトの一つです。 2013年にリリースされてから10年、多くの機能追加や改善を重ね、現在では沢山

    10年もののRailsアプリの持続可能性を求めて -なぜ初手でCoffeeScript廃止を選んだのか- - Money Forward Developers Blog
  • Ruby や Rails のアップグレード情報を共有する場を作りました。 - Money Forward Developers Blog

    こんにちは。 id:Pocke です。最近のマイブームはルピシアのラムレーズンの紅茶です。1 RubyRails のアップグレード情報を共有する場を作ったので、それをご紹介しようと思います。 背景 RubyRails のアップグレードは単純な作業ではありません。 アップグレードには多くの変更が含まれています。変更はそのソフトウェアが成長している証ですが、一方で痛みもあります。RubyRails を使うアプリケーションが、それらの変更に対応する必要があるためです。 そのようなアップグレード作業を楽にする取り組みはすでにいくつか存在します。 例えば Rails ガイドの Rails アップグレードガイドでは、一般的なアドバイスと、各バージョンで注意すべき変更が書かれています。 また 社内版 Rails アップグレードガイドを公開します - Timee Product Team

    Ruby や Rails のアップグレード情報を共有する場を作りました。 - Money Forward Developers Blog
  • 開発生産性が上がるって分かったので GitHub Copilot Business を積極活用しています - Money Forward Developers Blog

    エンジニアリング戦略室の高井といいます。 みなさん、GitHub Copilot は利用されていますか? GitHub Copilot は GitHubOpenAI が共同で開発した生成 AI を活用した開発支援ツールです。コードの自動補完、コード生成、ドキュメントの提案など、多岐にわたる機能を提供し、開発者の生産性を向上させることを目的としています。 マネーフォワードでは、昨年度にトライアルとして Copilot の利用を開始しました。記事では、Copilot を利用して半年以上経過して、その利用がどのような効果をもたらしたかをレポートします。なお、ここで GitHub Copilot として言及されている Copilot のプランは GitHub Copilot Business です。 Copilot 利用状況・分析対象 なお、分析にはエンジニアリング組織のパフォーマンスを可

    開発生産性が上がるって分かったので GitHub Copilot Business を積極活用しています - Money Forward Developers Blog
  • DB呼び出し回数を減らしてコア機能を高速化した話。そして起こった悲劇と教訓 - Money Forward Developers Blog

    初めに こんにちは、マネーフォワードクラウド連結会計(以降、クラウド連結会計)のバックエンド開発に従事しているTaskと申します。 今回は、クラウド連結会計のコア機能を高速化した話と、それが原因で起こった金額の不整合障害から得られた教訓を紹介しようと思います。 記事内では、前提として簿記2級相当の知識や用語が頻出します。 連結会計とは まず、クラウド連結会計が扱っている連結会計について説明させてください。 連結会計とは、親会社・子会社など、支配もしくは従属関係にある複数の会社を1つのグループと捉えて、そのグループの決算を行うための会計手続きを指します1。 下の図の「連結グループA」の決算を行うイメージです。 この業務を「連結決算業務」と呼びます。 連結決算を行うことによって、会社の利害関係者(債権者や株主など)は各社単体だけではなく、グループとしての財政状態・経営成績・キャッシュフローの

    DB呼び出し回数を減らしてコア機能を高速化した話。そして起こった悲劇と教訓 - Money Forward Developers Blog
  • Passkey の動向 2023年ふりかえり - Money Forward Developers Blog

    はじめに こんにちは、マネーフォワード ID 開発チームの @nov です。 2023年はマネーフォワード ID として格的にパスキーのサポートを開始した年でした。 2023年4月にリリースしたマネーフォワード ID のパスキー実装ですが、2023年末の時点でマネーフォワード ID へのログインアクションの7%ほどがパスキーによるログインになっており、Google Sign-in や Sign in with Apple などを抜いてパスワードに次ぐ第二位の認証手段となっています。 この一年で、Money Forward Developers Blogにも、最初に Passkey Autofill に全面対応した実装でリリースに至った経緯や、定期的な利用状況レポートなどを挙げてきました。 Passkey autofillを利用したパスワードレスログイン導入で得たものと、得られなかったもの

    Passkey の動向 2023年ふりかえり - Money Forward Developers Blog
  • マネーフォワード CTO が考えていること(2023 年 12 月) - Money Forward Developers Blog

    こんにちは、マネーフォワード CTO の中出(なかで)です。 CTO の私が、普段「なにを感じて、どんなことを考えているか」について、四半期に一回社内へ共有している内容を一部編集し、 Developers Blog に公開したいと思います。 前回はこちら:マネーフォワード CTO が考えていること(2023 年 9 月) 技術的負債とその返済 7年前、2016年12月にCTOになって、最初の大きな決断は、すべてのサービスが一つの大きなデータベースに依存している状態から抜け出すことでした。私たちは小さなベンチャー企業でしたから、素早くサービスを立ち上げるためにデータベースを分割せず、大きなデータベースを共有するという技術的な意思決定がされていました。 しかし、その決定はサービスが軌道に乗るにつれて問題を引き起こすようになります。毎月、給料日になるとデータベースの負荷が高まり、全サービスがスロ

    マネーフォワード CTO が考えていること(2023 年 12 月) - Money Forward Developers Blog
  • マネーフォワード MEのモバイル開発の生産性を爆上げした事ランキング - Money Forward Developers Blog

    マネーフォワード ME(以降ME)のモバイルエンジニアの椎名です 今回、MEのモバイル開発のコストを大きく削減し、生産性を向上させた話をします どれくらいかというと、体感値ですが少なく見積もって 1/5くらい にはなったかな、とは思います(2018年頃と比較) この事は何か1つの取り組みによって達成されたのではなく、いくつもの取り組みによって数年かけて達成されました ここでは数々の取り組みの中から、"これは効果があった!"というものを独断と偏見でランキング形式にして紹介します 少しでも皆様のサービスに役立てていただければ幸いです 1位 リファクタリング 1位がありきたりな事で恐縮ですが、今のMEのモバイル開発を支えているのは間違いなく過去に行った大規模なリファクタリングです 2018年頃iOS版MEは、複雑化したアーキテクチャとコードに悩まされていて 当時、行き詰まりを打開するためにフルリ

    マネーフォワード MEのモバイル開発の生産性を爆上げした事ランキング - Money Forward Developers Blog
  • 【Go 1.21】ループ変数が共有される問題への対策(プレビュー)が公開されました - Money Forward Developers Blog

    こんにちは、マネーフォワードエックスカンパニー サービス開発部 バンキングアプリ開発グループの仲川です。 先日Go 1.21がリリースされましたが、以前から多くのGoエンジニアを悩ませてきた「ループ変数が共有される問題」への対策が実験的に盛り込まれたので、今回はそちらについて紹介したいと思います。 Go 1.21 is released! - The Go Programming Language ※記事で紹介するコードの実行結果は全てGo 1.21での挙動です ※記事は主に以下ドキュメントの情報を基に作成しています(8月15日時点) golang/go/wiki/LoopvarExperiment golang/go/issues/60078 go.dev/doc/faq#closures_and_goroutines TL;DR Goのfor文で宣言されるループ変数は、ループ(イテ

    【Go 1.21】ループ変数が共有される問題への対策(プレビュー)が公開されました - Money Forward Developers Blog
  • Passkey autofillを利用したパスワードレスログイン導入で得たものと、得られなかったもの - Money Forward Developers Blog

    English version of this article is available here はじめに こんにちは、CTO室 IDサービス開発部のyamato(@8ma10s)です。 マネーフォワード IDという、当社サービス向けのIdPを開発しています。 今回このマネーフォワード IDにおいて、パスワードを使わずに、生体認証などを利用してログインできる「パスワードレスログイン」という機能をリリースしました。 また、今回のリリースでは、既にいくつかの他社サービスで導入されているような通常のパスワードレスログインUIではなく、「Passkey autofill」という、ブラウザの自動補完を利用する新しいタイプのパスワードレスログインUI を(恐らく日のサービスで初めて。エンドユーザーの目に触れるサービスという意味では、おそらく世界でも初めて)導入しています。 私達がどういった過程で、

    Passkey autofillを利用したパスワードレスログイン導入で得たものと、得られなかったもの - Money Forward Developers Blog
  • ChatGPTのAPIがオープンになったのでSlackに分身を配置した話 - Money Forward Developers Blog

    ※飯テロを要求する社員と飯テロするbotと飯テロにダメだしする社員戯画 ご機嫌よう、世界 なんかもう最近はも杓子もChatGPTじゃないですか? 僕みたいに自然言語処理をかじっていると、社内外問わずいろんな人から「ChatGPT、どうっすか」と まるで宗右衛門町の客引きのように 声をかけられます どうもこうも、それはそれでしょう、そもそもあの子のベースになっているGPT-3.5は単純にパラメータ数がry ChatGPTAPIがついにオープンになったのでSlack botを早速導入する ※とんでもない嘘をつくChatGPT図絵 どうもCTO室AI推進部とグループ会社HiTTOで 二股 兼務中の@ken11です。 いや今回の話は非常にシンプルで掲題の通りなんですが、冗談抜きで社内外問わずChatGPTに対する強い興味と関心のお声を頂戴しており、せっかくなのでAPIが使えるようになったならみ

    ChatGPTのAPIがオープンになったのでSlackに分身を配置した話 - Money Forward Developers Blog
  • STIとautoloadingとRails 7 - Money Forward Developers Blog

    こんにちは。マネーフォワード クラウド会計Plus (以下会計Plus)でエンジニアをしているぽっけです。 しばらく前に、会計PlusのRails 7へのアップグレードが完了しました。その中では様々な対応を行いましたが、この記事では特に印象的だったSTIとautoloadingの対応についてご紹介しようと思います。 STIとautoloadingは相性が悪いです。Rails 7以前は簡単な修正でこれらが共存して動いていましたが、Rails 7ではそのコードが動かなくなってしまいました。この問題は最終的には修正されましたが、それまでに紆余曲折あり修正までに何回ものPull Requestが必要になりました。 ⁠対象読者 Ruby on Railsを使用した開発経験があることを前提としています。また、STIやautoloadingについて詳細な説明はしません。それらを知らない場合は、該当するR

    STIとautoloadingとRails 7 - Money Forward Developers Blog
  • マネーフォワードのこれからのメール送信を支えるマイクロサービス開発 - Money Forward Developers Blog

    はじめに こんにちは、こんばんは。マネーフォワードでCTO室マイクロサービス推進部に所属している木吉です。 マネーフォワードではマイクロサービス化のために様々な活動を行っています。 私の部署でもプロダクトから技術要素に特化した機能をサービスとして切り離し、複数のプロダクトから共通機能として使ってもらうための開発を行っています。 今回はその中でもメール送信APIを提供するサービス(以下メール送信API)に関する活動について紹介します。 メール送信API 技術スタック 言語: Go インフラ: AWS(RDS,SNS,SQS)/Kubernetes(EKS) サービスについて ここで今回のメール送信APIについて説明します 機能としては非常にシンプルなもので、APIリクエストとしてプロダクトから送信したいメールの情報を受け取り送信します。 もともとプロトタイプとして作ったサービスであるため、当

    マネーフォワードのこれからのメール送信を支えるマイクロサービス開発 - Money Forward Developers Blog
  • マネーフォワード CTO が考えていること(2022 年 9 月) - Money Forward Developers Blog

    こんにちは、マネーフォワード CTO の中出(なかで)です。 CTO の私が、普段「なにを感じて、どんなことを考えているか」について、四半期に一回社内へ共有している内容を一部編集し、エンジニアブログに公開したいと思います。 6 月の内容は社内向けのものばかりだったので、今回は半年ぶりの投稿になります。 前回はこちら:マネーフォワード CTO が考えていること(2022 年 3 月) エンジニア組織のグローバル化ついて エンジニア組織の共通言語を英語にすることを発表してから、ちょうど一年が経過しました。一年はあっという間でしたが、私たちの英語化の取り組みは大きく前進していると感じています。 いくつかの部で先行して進められている英語化は、さまざまな課題を克服しながら進んでいます。先行チームのうちほとんどでミーティングをできるものから英語に変更しています。全体のミーティングを英語に切り替える

    マネーフォワード CTO が考えていること(2022 年 9 月) - Money Forward Developers Blog
  • 【クラウド人事管理】E2Eテスト自動化導入のすべて - Money Forward Developers Blog

    みなさんこんにちは!人事労務領域(HR)のQAエンジニア(テスト自動化担当)をしています!honamin @hona_sukeです。 今回は2021年7月から携わってきたクラウド人事管理のE2Eテスト自動化を通して見えてきたことをご紹介できればと思います。と、その前に、クラウド人事管理がどんなサービスなのかを紹介させてください😋 クラウド人事管理について マネーフォワード クラウド人事管理では、従業員や組織の情報を一元管理することができます。入退社や人事異動の手続きに対応、また、従業員はPCやスマホを介して情報を送信することができるので、ペーパーレスなやり取りを実現することができます。 さらに、クラウド給与やクラウド勤怠などのサービスと併用することにより、クラウド人事管理の従業員情報をワンクリックで連携することも可能です。 このように、クラウド人事管理はさまざまなサービスの入り口にもなる

    【クラウド人事管理】E2Eテスト自動化導入のすべて - Money Forward Developers Blog
  • Railsのnew_framework_defaultsとの向き合い方 - Money Forward Developers Blog

    こんにちは、ぽっけです。マネーフォワード クラウド会計Plusでエンジニアをしています。 この記事ではRailsのnew_framework_defaultsとの向き合い方を整理します。私は最近Railsアップグレード業をしています。その中でこの設定との向き合い方を考える機会があったため、それを記事にしたためました。 new_framework_defaults とは まずはnew_framework_defaultsとは何か、について説明します。 この記事では便宜上、以下の2つの要素をまとめてnew_framework_defaultsと表現しています。 Rails::Application::Configuration#load_defaultsメソッド config/initializers/new_framework_defaults_*.rb ファイル これらはRailsのアップ

    Railsのnew_framework_defaultsとの向き合い方 - Money Forward Developers Blog
  • ビジュアルリグレッションテストにChromaticを導入したらデザインレビューが捗った話 - Money Forward Developers Blog

    マネーフォワード関西開発拠点エンジニアの @uenoY4 です。 現在、私のチームではフロントエンドNext.js を使用したプロダクトの開発をしています。 その中でリファクタリングなど既存実装に修正を加えた際に、意図しないUIの崩れが起きることを防ぎたいという思いから、ビジュアルリグレッションテストを行うようにしました。今回はビジュアルリグレッションテストを行うために導入したChromaticについてお話しします。 目次 ビジュアルリグレッションテストとは Chromaticとは Chromatic導入のきっかけ 実際導入してみて まとめ ビジュアルリグレッションテストとは ビジュアルリグレッションテストとは、ページの見た目をテストする仕組みで、変更前のページやコンポーネントの画像と変更後の画像を比較して検証を行います。要素のサイズや配置などのピクセルレベルの変更やテキスト色、背景色

    ビジュアルリグレッションテストにChromaticを導入したらデザインレビューが捗った話 - Money Forward Developers Blog