サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ノーベル賞
moneyforward-dev.jp
こんにちは。 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
こんにちは、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 の記事です。 こんにちは!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 は、ゲーム化された
マネーフォワード ME(以降ME)のモバイルエンジニアの椎名です 今回、MEのモバイル開発のコストを大きく削減し、生産性を向上させた話をします どれくらいかというと、体感値ですが少なく見積もって 1/5くらい にはなったかな、とは思います(2018年頃と比較) この事は何か1つの取り組みによって達成されたのではなく、いくつもの取り組みによって数年かけて達成されました ここでは数々の取り組みの中から、"これは効果があった!"というものを独断と偏見でランキング形式にして紹介します 少しでも皆様のサービスに役立てていただければ幸いです 1位 リファクタリング 1位がありきたりな事で恐縮ですが、今のMEのモバイル開発を支えているのは間違いなく過去に行った大規模なリファクタリングです 2018年頃iOS版MEは、複雑化したアーキテクチャとコードに悩まされていて 当時、行き詰まりを打開するためにフルリ
こんにちは。id:Pocke です。今年は3回ぐらいサンライズ瀬戸・出雲に乗っている気がします。 この記事では RBS に最近追加された構文を紹介します。 RBS は活発に開発をされており、ここ最近も多くの機能が追加されてきました。 一方でそれらの新機能は十分に知られていません。せっかくの新機能が知られず使われていないのはもったいないですね。 この記事ではそれらの新機能から、特に構文の変更に注目して紹介します。 比較的最近となる v2.0.0 以降の構文の変更を CHANGELOG からリストアップしました。 それら構文の変更の中から、主要なものを見ていきましょう。 github.com v2.0.0 (2021-12-24) https://github.com/ruby/rbs/blob/v3.2.1/CHANGELOG.md#200-2021-12-24 Bounded Generi
こんにちは、CTO室AI推進部のこたろうです。 今回は、8/30(水) ~ 8/31(木)の二日間を通して開催されたNLP若手の会(YANS)第18回シンポジウム(2023)に参加したのでその報告です! Money Forward CTO室AI推進部からは私と長期インターンの満石さん、Money Forward Labからは山岸さんが発表を行いました。 発表について Money Forwardからは3名がポスター発表を行いました。以下が発表題目と著者です(発表順となっています)。 [S1-P07] text embeddingを用いたデータ作成支援の検討, 満石風斗, 安立健人, 狩野芳伸 (静大) [S4-P10] 機械学習モデルを用いた構造化文書からの情報抽出, 竹下虎太朗, 安立健人, 狩野芳伸 (静大) [S5-P09] 財務諸表と仕訳データを用いた増減要因の説明文生成の初期検討,
こんにちは。 id:Pocke です。マネーフォワードでは、クラウド会計Plus の開発と、今回お話する RBS のメンテナンスを行っています。 最近、福井県は若狭にある年縞博物館に行って楽しんできました。1 さてこの記事では rbs collection の基本と構成要素を解説します。 この記事を読むことで rbs collection がどのようなもので何をしているのかが理解できるようになるでしょう。 この記事では記事執筆時点での最新の、rbs v3.2.1 を対象としています。 rbs collection の基本的な使い方 rbs collection の基本的な使い方は簡単です。 設定ファイルの生成 まず、rbs collection initコマンドで設定ファイルを生成します。この生成は rbs collection を使い始める初回にのみ行います。 $ rbs collect
こんにちは、マネーフォワード CTO の中出(なかで)です。 CTO の私が、普段「なにを感じて、どんなことを考えているか」について、四半期に一回社内へ共有している内容を一部編集し、 Developers Blog に公開したいと思います。 前回はこちら:マネーフォワード CTO が考えていること(2023 年 6 月) ドメイン理解の重要性 サービス開発に関わるエンジニアは、担当するドメインについて深い理解が求められます。 マネーフォワードはB2CとB2Bの両方で、ユーザーの課題解決や生産性の向上を目的としたサービスを提供しています。それこそが、まさにマネーフォワードが社会に提供している価値です。私たちはエンジニアとしてプロダクトを開発することで、こうした価値を生み出すことに貢献することができます。 ユーザーが、私たちのサービスを活用し、ユーザーの課題解決や生産性の向上を実現することによ
半年ぶりのカキコ……ども……。気づいたらHRソリューション本部からMFBC-CTO室に異動していたVTRyoです。兼任で引き続きHR系のマネーフォワード クラウドシリーズも担当しています。 ソフトウェアエンジニアとしての経験値が増えてくると、次第にレビュー担当者になることが増えてくるでしょう。私が所属するSREチームでもTerraformの相互レビューが頻繁に実施されています。そこで、事件は起きたのです。 自信を持ってApproveしたPull Requestで次々に事故が起きてしまった 現在HR内のマネーフォワード クラウドシリーズは、モダンな開発基盤へとリプレイス作業を多く行っています。これまで動いていた基盤に感謝しつつ、新しいPlatformへと移行し、最終的に元あったリソースを削除します。 事件はこの リソース削除 で起きました。 チーム内レビュー OK リポジトリ管理者レビュー
こんにちは、マネーフォワードエックスカンパニー サービス開発部 バンキングアプリ開発グループの仲川です。 先日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文で宣言されるループ変数は、ループ(イテ
English version of this article is available here. はじめに こんにちは、マネーフォワード ID 開発チームの @nov です。 前回のパスキー利用状況レポート vol.1から3ヶ月ほど経過しました。その後エンドユーザーのみなさんに向けたプロモーションも実施し、順調にパスキー利用者数が伸びています。 パスキープロモーションの進捗 2023年6月から、マネーフォワード ME という家計簿アプリのユーザー向けにパスキーの登録を促すプロモーションページの表示を開始しました。 現在パスキー未登録なユーザーがパスワードを使ってマネーフォワード ME にログインすると、以下のようなプロモーションページが表示されるようになっています。 プロモーション対象は開始当初は1%ほどに限定していましたが、7月終わりごろから全マネーフォワード ME ユーザー向けに対
概要 気温が40度近くになり、外を出歩くと命の危険をジリジリと感じる季節になってきましたね。 ぼくはすっかり部屋に引きこもるようになってしまいましたが皆さんは如何お過ごしでしょうか? 祇園祭も終わり、厄除けちまきをランチ帰りに買って帰りました。 意外とランチを食べて1時間ほどで京都オフィスまで戻れることがわかりました。 今度近隣のIT会社の知り合い(はてなのonkさんやHelpfeelのpastakさんたち)を誘って社外エンジニアランチしてみようかなーと画策しています。 (写真はカマルというカレー屋さんと祇園祭の様子です。はてな社の提灯が羨ましすぎて思わず撮ってしまいました。) 研鑽Rubyプログラミングをご存知か? 話は変わりますが、皆さんは研鑽Rubyプログラミング ― 実践的なコードのための原則とトレードオフ(以降、この記事内では研鑽本と表現します。)という書籍をご存知でしょうか?
こんにちはマネーフォワードPay事業本部の藤村海都です。 GitHub、Twitterもどうぞ。 普段はフロントエンド周りの技術記事をZennに投稿しています。Zennはこちら。 2023年4月に新卒エンジニアとしてマネーフォワードに入社し、福岡拠点にてマネーフォワードPay for Businessのフロントエンド開発を担当しています。 今回は最近チームに導入したパフォーマンス監視について紹介します。 フロントエンドにおけるWebパフォーマンスの計測を自動化し、Datadogで可視化するまでの道のりを詳しく説明していこうと思います。 パフォーマンス監視はパフォーマンス改善の第一歩だと思っています。 初のテックブログなので温かい目で見ていただければと思います。よろしくお願いします! 作ったもの 今回導入した仕組みでは次のような流れでパフォーマンスを可視化しています。 Puppeteerで認
次のページ
このページを最初にブックマークしてみませんか?
『Money Forward Developers Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く