サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16e
moneyforward-dev.jp
クラウド経費 の開発を担当している野田 (@quanon_jp) と申します。趣味はヨーヨーで、プログラムを書いてる最中も頭の中はヨーヨーのことでいっぱいです。 同じチームで働くみやむー (@miyamura.koyo) が 2024/10 に以下の記事を執筆しました。 moneyforward-dev.jp 今回はその続編です。Ruby on Rails (以下 Rails) のバージョンを 7.0 から 7.1 に更新しました。前回の記事と重複する内容もありますが、改めてその記録を残しておきます。 Rails 7.0 から 7.1 に更新する動機 進め方 更新内容を調査する Rails を更新する 全件テストを実行する 非推奨警告 (DEPRECATION WARNING) を検知する 実際にやったこと コードの修正 to_s を to_fs に置き換えた Model.table_na
こんにちは。id:Pocke です。最近は並列処理の実装に頭を悩ませています。 この記事では並列処理の実装の中で得た学びについて共有しようと思います。 なお特にことわりがない限り、Rubyのバージョンは記事執筆時点で最新の3.4.1を使用します。 問題 Threadをふんだんに使ったプログラムをデバッグしていると、デッドロックが起きたときに、その原因となったスレッドがどこで停止しているのかを知りたくなることがあります。 例えば以下のようなケースを考えてみます。 # わざとトレースを深くするメソッド呼び出し def f(q) = g q def g(q) = h q def h(q) = q.pop def main q = Thread::Queue.new # `q` にはエンキューされないので、これらのスレッドは停止する th1 = Thread.new { f q } th2 = T
はじめに こんにちは!マネーフォワードでエンジニアをしている寺澤(@locol23)です。 社内で開催された AWS GameDay に参加し、良い経験ができたのでご紹介します。 AWS GameDay とは 公式に AWS GameDay のページがありますので、概要を引用します。 aws.amazon.com AWS GameDay は、チームベースの環境で、AWS ソリューションを利用して現実世界の技術的問題を解決することを参加者に課題として提示する、ゲーム化された学習イベントです。従来のワークショップとは異なり、GameDay は自由で緩やかな形式で、参加者は固定概念にとらわれずに探索し、考えることができます。 なんとなくイメージが掴めたでしょうか? GameDay とあるように、チーム対抗でポイントを競い合うなど、ゲーミフィケーションの要素が詰まっているワークショップイベントとな
この記事は、Money Forward Engineers Advent Calendar 2024の12月20日の記事です。12月19日はちーずさんで「React Flowで叶える柔軟なフローチャートの実装方法」でした。 CTO室の高井といいます。 みなさん、開発生産性を高めていますか? はたして「推測するな、計測せよ」という言葉がこの文脈で適用できるのかはさておき、開発生産性の測定は大きなトピックです。当社では、ソフトウェア生産性の可視化のために Four Keys を採用していたり、開発者体験サーベイ を行ったりしてきました。それでもまだ、開発生産性をどのように捉え、測定するのか悩んでいます。 本記事では、現代的な開発生産性指標を理解するために、 Four Keys からはじまるエンジニアリングの生産性に関わる指標について、ざっと再確認をしていきたいとおもいます。なお、海外では Fo
この記事は、Money Forward Engineering Advent Calendar 2024 12/4 の投稿です。 12/3 は VTRyo さんで SRE Kaigi 2025に 「一人から始めたSREチーム3年間の歩み -求められるスキルの変化とチームのあり方-」で登壇します でした。 adventar.org こんにちは、マネーフォワードでバックエンドエンジニアをしている @hktechno です。 現在、マネーフォワードでは、バックエンド開発においてこれまでの Ruby on Rails に加えて、サーバーサイド Kotlin の導入を推進しています。 私は現在、これからサーバーサイド Kotlin を導入するプロジェクトや、すでに導入したプロジェクトに対して、社内標準の技術スタックを定義して提案したり、社内向けの共通ライブラリ・ベストプラクティスを提供したりすること
こんにちは クラウド経費開発チーム ・ クラウド債務支払開発チーム の 宮村(みやむー) @miyamura.koyo です。 先日、約9年開発されている Rails アプリケーションである、クラウド経費とクラウド債務支払の Rails バージョンを 6.1 から 7.0 へメジャーバージョンアップしました。 Ruby on Rails の EOL ※ 本記事では Ruby on Rails の EOL を 「Ruby on Rails が公開している各バージョンごとの Security Issues のサポート期限」と定義します。 Ruby on Rails の サポートは、シリーズの最初のリリースから2年間のポリシーで運用されています。 より具体的には Ruby on Rails の EOL は以下のように示されています。 rubyonrails.org 「遅くとも上記期限までには対応
こんにちは、 クラウド経費開発チーム ・ クラウド債務支払開発チーム の 宮村(みやむー) @miyamura.koyo です! Ruby には default_value_for という gem があります。 これは以下のように属性のデフォルト値を設定できる便利な gem です。 class User < ActiveRecord::Base default_value_for :name, "(no name)" default_value_for :last_seen { Time.now } end u = User.new u.name # => "(no name)" u.last_seen # => Mon Sep 22 17:28:38 +0200 2008 しかし現在では上記の機能は Rails の標準機能で対応することができます。 本記事では筆者の体験談を基に defa
Money Foward Tech Day 2024 こんにちは、@nov です。 先日 2024/09/20、Money Foward Tech Day 2024 というイベントで Passkey Autofill に賭けるマネーフォワード ID というお話をさせていただきました。 その時に使ったスライドはこちらに公開してあるのですが、スライド内の文章は日英併記が必要で、スライドレイアウトの調整が難しかったため、このスライドにはほとんど文章を入れていません。 結果として、このスライドだけでは、イベントに参加していなかった方々には内容が伝わりにくいと思いますので、ブログにも書き起こしておこうと思います。 マネーフォワード ID について 最初の方は自己紹介とかマネーフォワード ID についての紹介なんで改めてお話しすることはありませんが、マネーフォワード ID における Sign-in M
こんにちは。 id:Pocke です。マネーフォワードでは Rails を用いた Web アプリケーションの開発と、RBS という Ruby の静的型システムの開発を行っています。 最近 RBS の開発をする中で、「不要な処理を削除すると実行速度が遅くなる」という不思議な現象に遭遇しました。この記事ではその現象を解説しようと思います。 なおこの記事は Ruby の知識を前提としないように執筆されており、Ruby の知識が必要となるところには注釈を加えて補足しています。 普段 Ruby を書かない方にも読んでいただければ幸いです。 問題を引き起こした変更 今回の問題は、RBS のメモリ使用量の削減を行っている中で遭遇しました。まずはどんな変更を行おうとしていたかを解説します。 変更の動機 最近私は RBS のメモリ使用量の削減に取り組んでいます。1 その取り組みの中で、RBS のパーサーが作
こんにちは、クラウド会計の開発チームでスクラムマスターをしているasatoです。 私たちのチームでは、以前はフロントエンド(FE)エンジニアとバックエンド(BE)エンジニアがそれぞれの領域だけを担当していましたが、最近では互いに越境し、どちらの領域でも自立して開発を進められるようになりました。このブログでは、その越境のために私たちが取り組んだことを紹介します。同じように悩む方の助けや勇気づけになれば幸いです。 背景 私たちのチームはスクラムでWebアプリケーションを開発しています。エンジニアは職種としてFEエンジニア、BEエンジニア、QAエンジニアに分かれており、FE・BEエンジニアはそれぞれの領域のみを担当していました。 しかし、プロダクトを開発し続けていく中で以下の課題に直面しました。 FEとBE間でのプロダクトバックログアイテム(PBI)の受け渡しの待ちが発生し、スプリント中にPBI
はじめに こんにちは。 マネーフォワード福岡開発拠点でSREとして働いているM-Yamashita です。 今回の記事は、GitHub Actionsを使ったSlackへの自動投稿の話です。 現在、クラウド経費・クラウド債務支払サービスの開発においてクエストという制度を採用しています。クエストを新しく作成するたび、開発メンバーに知らせるために手動で都度Slackに投稿していました。この手動作業を自動化した話をお伝えします。 クエストとは 経費・債務支払サービスでは開発ロードマップに沿って日々開発を進めています。この開発と並行して、内部改善をしていくことも重要です。 弊社ではそのような内部改善を推進する制度として、クエストという制度を導入しています。クエストとは、誰かにしてほしいことをまとめた「依頼」です。受ける人にとっては、業務の合間にチャレンジする「課題」です。 クエストはGitHubの
こんにちは、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{
こんにちは。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の解析対象ファイル数が多い場合に速度が遅くなることが分かり、改善した
はじめに こんにちは、Money Forward CISO室の万萌遠(バン・ホウエン)です。私は主にAWSセキュリティ統制システム「A-SAF(AWS-Security Alert Forwarding system)」の企画、開発、運用を担当してきました。運用も安定してきたので、今回はA-SAFシステムの紹介と、AWSをはじめとしたクラウド環境のセキュリティ統制についての心得を共有したいと思います。 A-SAFを作るモチベーション クラウド環境のセキュリティといえば、CSPM(Cloud Security Posture Management)、CWPP(Cloud Workload Protection Platform)、CNAPP(Cloud Native Application Protection Platform)などが思い浮かぶかもしれません。ですが、今回ご紹介するA-SA
こんにちは、クラウド会計の開発チームでスクラムマスターをしているasatoです。 自作のふりかえりフレームワークがいい感じに機能したので紹介します 🙌 その名も「稲作(Rice Cultivation)」です。 背景 私はスクラムマスターとして、チームのふりかえりをファシリテーションする機会が多いです。当然のようにお気に入りのふりかえりフレームワークがあります。その辺は、個人のブログで語っています。 ブログでも語っている通り、私は「象・死んだ魚・嘔吐」が好きです。メタファーが想像力を掻き立ててくれます。 象🐘:誰も言わないので言いにくいと感じているが、大きな障害物だと思っているもの(英語の慣用句 “Elephant in the room” より) 死んだ魚🐟:今はそこまで気にならないが、放置すると大きな障害物になりそうなもの 嘔吐🤮:その他、自分の中でモヤモヤしているもの い
こんにちは、クラウド会計の開発チームでスクラムマスターをしているasatoです。 新しいチームにジョインするのって、ドキドキしますよね。新しい環境、新しい人々、そして新しい課題。それぞれのチームが直面している問題は異なりますが、スクラムマスターとして私たちが共有する目標は一つです。それは、チームの有効性を最大化し、素晴らしいプロダクトを生み出すこと。 私は今年の1月にマネーフォワードにジョインし、今のチームでスクラムマスターとして働くことになりました。事前に聞いていたチームの情報は以下の通りです。 プロダクトマネージャー、UI/UXデザイナー、複数のバックエンド/フロントエンド/QAエンジニアから成る 従来のプロジェクトの進め方に課題感があり、4ヶ月前からスクラムを実践中 ここで一つの質問です。もし、あなたがスクラムマスターとして新しいチームにジョインしたとしたら、最初に何をしますか?この
こんにちは。 id:Pocke です。最近のマイブームはルピシアのラムレーズンの紅茶です。1 Ruby や Rails のアップグレード情報を共有する場を作ったので、それをご紹介しようと思います。 背景 Ruby や Rails のアップグレードは単純な作業ではありません。 アップグレードには多くの変更が含まれています。変更はそのソフトウェアが成長している証ですが、一方で痛みもあります。Ruby や Rails を使うアプリケーションが、それらの変更に対応する必要があるためです。 そのようなアップグレード作業を楽にする取り組みはすでにいくつか存在します。 例えば Rails ガイドの Rails アップグレードガイドでは、一般的なアドバイスと、各バージョンで注意すべき変更が書かれています。 また 社内版 Rails アップグレードガイドを公開します - Timee Product Team
エンジニアリング戦略室の高井といいます。 みなさん、GitHub Copilot は利用されていますか? GitHub Copilot は GitHub と OpenAI が共同で開発した生成 AI を活用した開発支援ツールです。コードの自動補完、コード生成、ドキュメントの提案など、多岐にわたる機能を提供し、開発者の生産性を向上させることを目的としています。 マネーフォワードでは、昨年度にトライアルとして Copilot の利用を開始しました。本記事では、Copilot を利用して半年以上経過して、その利用がどのような効果をもたらしたかをレポートします。なお、ここで GitHub Copilot として言及されている Copilot のプランは GitHub Copilot Business です。 Copilot 利用状況・分析対象 なお、分析にはエンジニアリング組織のパフォーマンスを可
シニアソフトウェアエンジニアのusadamasaです。 マネーフォワード クラウド会計とそれに関連するマイクロサービス群の開発運用を担当しています。 本記事では、クラウド会計という10年もののRailsアプリの持続可能性をいかにして確保していくかの取り組みをご紹介します。 TL;DR 私が所属するチームでは、クラウド会計の開発運用における課題を整理し、それぞれの課題に対して解決策を検討し、実行するための取り組みを進めています。 最初にクラウド会計の全体の構造を明らかにし、課題を可視化、組織の共通認識としました。 その上で銀の弾丸を求めるのではなく、有期かつ漸進的な改善のプロジェクトとして計画することが成果に繋がります。 クラウド会計の現状 クラウド会計はマネーフォワード クラウドの代表的なプロダクトの一つです。 2013年にリリースされてから10年、多くの機能追加や改善を重ね、現在では沢山
初めに こんにちは、マネーフォワードクラウド連結会計(以降、クラウド連結会計)のバックエンド開発に従事しているTaskと申します。 今回は、クラウド連結会計のコア機能を高速化した話と、それが原因で起こった金額の不整合障害から得られた教訓を紹介しようと思います。 本記事内では、前提として簿記2級相当の知識や用語が頻出します。 連結会計とは まず、クラウド連結会計が扱っている連結会計について説明させてください。 連結会計とは、親会社・子会社など、支配もしくは従属関係にある複数の会社を1つのグループと捉えて、そのグループの決算を行うための会計手続きを指します1。 下の図の「連結グループA」の決算を行うイメージです。 この業務を「連結決算業務」と呼びます。 連結決算を行うことによって、会社の利害関係者(債権者や株主など)は各社単体だけではなく、グループとしての財政状態・経営成績・キャッシュフローの
エンジニアリング戦略室の高井といいます。 みなさん、開発生産性を高めていますか? 近頃、開発生産性という言葉をよく聞くようになってきました。開発生産性について書かれたブログや技術イベントでの発表を目にする機会が増えています。これはソフトウェアの重要性が高まってきていることや、またアメリカの金利政策によってマクロ経済状況が変化したという背景が影響しているようにも感じます。開発生産性という言葉がバズワードのようになりつつあります。 誰もが重要だと考えている開発生産性ですが、それが何であるのか、またどのように改善していくのか、という具体的な話になると喧喧諤諤の議論になってしまうようです。開発生産性とは、どうにも茫漠としていて、とらえどころがない、そしてなかなか難しいものです。 本エントリーでは、いくつかの研究を補助線にしつつ、開発生産性というよりも開発者体験にフォーカスしてみた私たちの経験につい
English version of this article is available here. はじめに こんにちは、マネーフォワード ID 開発チームの @nov です。 さて、みなさま、バレンタインデーいかがお過ごしでしょうか? おおよそ四半期毎のペースで公開している、パスキー利用状況レポートの時期がやってきました。 この3ヶ月、マネーフォワード ID ではパスキー周りで以下のような変化がありました。 パスキーでのログイン数が Google Sign-in を超えて、パスワードに次ぐ第二位のポジションへ ログイン直後以外のコンテキストでのパスキープロモーションを開始 パスキープロモーションページ内での文言変更 メールアドレスを持たないユーザーへのパスキーサポート それぞれの詳細については追々見ていくとして、まずは毎回恒例のこのコーナーから行きましょう。 パスキー登録状況 @ 20
はじめに あけましておめでとうございます。k0iです。 皆さんは年末年始、いかがお過ごしでしたでしょうか。 私は久しぶりに会った高校の友達と飲んで帰省の列車に乗り遅れ、更にスマホを落として壊してしまい中々痺れる年越しとなりました。 2024年も良い年になると良いですね.....! さて、Rails 7.1 で trilogy という MySQL 互換の Database Adapter が追加されました。 しかし我々はすでに MySQL 互換の Database Adapter として mysql2 を使っています。 一体なぜ新しい Adapter が必要なのか。trilogy は何を解決するために開発されたのか。 気になりませんか?(なりますよね?) そこで、trilogy について開発の背景や、採用すると何が嬉しいのかを調査してみました。 タイトルにもある通り、調査の過程で Activ
はじめに こんにちは、マネーフォワード 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を利用したパスワードレスログイン導入で得たものと、得られなかったもの
こんにちは、マネーフォワード CTO の中出(なかで)です。 CTO の私が、普段「なにを感じて、どんなことを考えているか」について、四半期に一回社内へ共有している内容を一部編集し、 Developers Blog に公開したいと思います。 前回はこちら:マネーフォワード CTO が考えていること(2023 年 9 月) 技術的負債とその返済 7年前、2016年12月にCTOになって、最初の大きな決断は、すべてのサービスが一つの大きなデータベースに依存している状態から抜け出すことでした。私たちは小さなベンチャー企業でしたから、素早くサービスを立ち上げるためにデータベースを分割せず、大きなデータベースを共有するという技術的な意思決定がされていました。 しかし、その決定はサービスが軌道に乗るにつれて問題を引き起こすようになります。毎月、給料日になるとデータベースの負荷が高まり、全サービスがスロ
この記事はMoney Forward Engineering 2 Advent Calendar 2023の14日目の投稿です。 前日はnakamoriさんで Airflowの新機能Airflow Datasetによる新しいデータリネージでした。 はじめに こんにちは!HiroVodka です。 私は2022年6月1日にマネーフォワードへ中途入社し、そこから約1年半の間、『桃園の誓いアーキテクチャ』と呼ばれている技術的負債解消活動を行ってきました。 桃園の誓いアーキテクチャについては、CTOのブログを読んでいただければと思います。 CTOになって5年経った感想、振り返りなど - Money Forward Developers Blog 色々あるので細かいことは省きますが、当時は一つのサービス(主にマネーフォワードME)から発行されるSQLがDBサーバーの負荷を上げてしまって全てのサービス
この記事は Money Forward Engineering 2 Advent Calendar 2023 の記事です。 こんにちは!tatsuo48 です。 マネーフォワードのサービス基盤本部には私が所属する Enabling SRE というチームがあります。 この記事では、以前に紹介された組織に SRE の文化を作り上げていく Enabling SREの内容にも触れながら、Enabling SRE の現在地点と今後の方向性について詳しくお話ししていきます。 Enabling SRE とは Enabling SRE の目的は組織に SRE の文化を作り上げていく Enabling SRE にある通り、以下のギャップを埋めていくことにあります。 各プロダクトの開発チームは、自分たちで開発のサイクルを回し、非機能面も含めて見るべきだと考えている。しかしながら、権限を渡されても非機能面を見て
English version of this article is available here. はじめに こんにちは、マネーフォワード ID 開発チームの Yamato(@8ma10s)です。 マネーフォワード IDでPasskey autofillを利用したパスキー対応をリリースしてから、早いもので半年ほど経過しました。 今年5月にリリースしたパスキー利用状況レポート vol.1、8月にリリースしたパスキー利用状況レポート vol.2に続き、11月時点でのパスキー登録や利用状況のレポートをまとめます。 Vol.2以降に加えた変更 Vol.2 時点では、マネーフォワード MEを利用しているユーザーのみにプロモーションページを表示しており、法人向けプロダクトにログインしようとしているユーザーへのプロモーションは行っていませんでした。 8月末頃からは、マネーフォワード クラウドの各種プロ
はじめに 先月までの暑さがなりを潜め、秋の訪れを感じつつも冬の息吹を感じる今日このごろ皆さん、どうお過ごしですか? どうも、1ヶ月ぶりくらいの登場となりました、マネーフォワード技術広報をしている @luccafort です。 技術書典15の原稿をなんとか書き上げたのでようやく先日マネーフォワード社内で開催したAWS GameDay(以降、GameDay)の開催ブログを書くことができます。 本記事はAWS GameDayってなんなの?や、どういうことをしていたの?を、実際のイベントの雰囲気を画像多めでお伝えしていこうと思います。 Approvedをもらってから2週間以上放置した著者の図。 懺悔の意味を込めてここに紹介しておきます。 AWS GameDayとはなにか? 公式のAmazon Web Servicesから概要を引用します。 AWS GameDay GameDay は、ゲーム化された
次のページ
このページを最初にブックマークしてみませんか?
『Money Forward Developers Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く