京都大学の超交流会2019に出展してきた

こんにちは。
マネーフォワード京都拠点で働くフロントエンドエンジニアの いっさん です。

先日、京都大学で開催されました 『超交流会2019』 に出展してきました。
そのレポートをお届けします!

 

超交流会とは

まず超交流会とは、京大で毎年開催されているオープンイベントです。
京大情報学同窓会の主催ですが、老若男女、誰でも参加できます。

マネーフォワードは

という縁があり、今年2回目の出展をさせていただきました。

続きを読む

経理処理の定式化とその実装、もしくはBigQueryにおける再帰

みなさん、こんにちは!
マネーフォワードでビジネス分析とかしてる人、酒井です。

現在、私は定量分析を民主化すべく、BigQueryに各種集計に使うテーブルを集めたデータウェアハウス(以下、DWH)を構築しています。

ただ集めるだけでなく、テーブル間のリレーションやフィールドの意味など、専門的な知識を上手に隠蔽したサマリテーブルを作ることで、データ分析の裾野が広がることを期待しています。

その中、特に経営分析や戦略策定において「売上」をいかに解像度高く確認できるかが重要です。

今回のDWHも、事業部・プロダクト・チーム・Stock/Flowなど、あらゆる断面で切っても同じ定義の「売上」が出たサマリテーブルを作ることが求められています。
(この事と現状のカオスさからこのプロジェクト名をフラクタルと命名しました)

一方で、経理処理は財務諸表を作ることが目的なので高解像度で売上を集計しておらず、また処理自体もExcelによる手作業であるためリードタイムがあり速報性が落ちてしまうなど、現状の経理プロセスには経営分析上の問題がありました。

結果的に、表題のとおり経理処理をBigQueryのSQLで実装する必要が出たわけです。

 

経理処理を理解する

今回、ご紹介する経理処理は、マネーフォワードクラウド給与 をご提供している方法のひとつである、チケットの処理です。

続きを読む

マネーフォワードエンジニアのアウトプットを可視化してみた


こんにちは。
マネーフォワード福岡拠点でインターンをしています長島です。
普段は『マネーフォワードクラウド経費』のサーバーサイドの開発を担当しています。

 

概要

最近マネーフォワード社内で、エンジニアの日々の「開発の調子」や「アウトプット量」を可視化してみたいという話がありました。
そこで、ちゃんとしたダッシュボードなどを作る前に、ひとまずデータの中身を覗いてみようという事でちょっとやってみました。

 

さてどうやる

エンジニアの開発の調子をどう測るという話ですが、やはりまず思いつくのはGitのログを見る事かなと。

続きを読む

中学生ハルキのエンジニア体験記

こんにちは。ハルキです。
4月から中学二年生になりました。

僕はこの春休み、パパが働いているマネーフォワードに職業体験インターンという形でお世話になりました。
プログラミングを始めたきっかけは、Scratchという子供向けのプログラミング学習サービスです。
小学校3年生の時にどハマりし、そこから6年生まで夢中になってやり込みました。

ただ、やはり子供向けなので最低限のことしかできず卒業。
その頃、マネーフォワードの方が開催してくれたバーベキューで酒井さんと出会い、そこでPythonを教わりました。
(酒井さんはビジネスマンなのにプログラミングもできちゃうすごい人なのです!)

そこから、Chatworkで酒井さんとコミュニケーションを取るようになり、プログラミングで悩んだことがあったら酒井さんに報告して、バグがあれば直し方を教わるようになりました。
酒井さんは面白い記事を紹介してくれたり、それまで誰にも相談できなかったことに答えてくれたので、それはすごく嬉しいことでした。

それからしばらくして、マネーフォワードクラウドの渋谷さんから「ハルキくんにぜひインターンにきてほしいです!」と誘っていただき、パパも「よし、じゃあ頑張ってみる?」ということで今回の職業体験がスタートしました。

 

一日目

今回の職業体験インターンで大変だったのは(もちろんお仕事も大変だったのですが)、満員電車での通勤です。僕は普段全く電車に乗らないので、初日は満員電車と路線を覚えるのがすごく大変でした。

続きを読む

ActiveRecordのincludes, preload, eager_load の個人的な使い分け

マネーフォワード福岡拠点の責任者をしております 黒田 です。
普段はRailsエンジニアとして マネーフォワードクラウド経費 の開発を担当しています。

普段Railsを使って開発されている方であれば、N+1問題に悩まされた経験は大抵の方がおありではないでしょうか。

N+1なクエリの発見には bullet を使うと良いですね。
bulletを使うとN+1なクエリを発見してくれ、さらに、具体的にここにincludesを追加しなさいと指摘までしてくれるので大変助かります。

しかし、先日bulletに言われるがままにincludesを付けてみたところ、N+1は解消したものの、スロークエリに見舞われることとなったので、includes,preload, eager_loadについて改めて調べてまとめてみることにしました。
(ソース調査したRailsのバージョンは 6.0.0.beta3 です。)

 

includesの挙動については正しく知っておきたい

includesの挙動について、「preloadeager_loadをよろしく使い分けしてくれるもの」と認識しているRailsエンジニアは結構いるのではないでしょうか?

そういったエンジニアの方の中には、先日の私のようにN+1問題の対策で深く考えずに「includesつけとけばOKでしょ。ほらbulletのN+1のアラート止まったし。」という方もいらっしゃるのではと思っています。「とりあえずincludes」で、データが少ないうちは問題にならなくてもデータが増えてきた時に問題が顕在化する事がよくあります。

続きを読む

マネーフォワードへの道(バスで行く 京都開発拠点編)

みなさん、こんにちは!
マネーフォワードは、新たに京都開発拠点を開設しました。

〒604-8004 京都府京都市中京区三条通河原町東入中島町78 明治屋京都ビル4F
Google Mapはこちら

京都駅からバスに乗車しての、マネーフォワードへの道のりをご紹介させていただきます。

※最寄りのバス停は河原町三条です!
※Google Mapでは異なる案内をされることがあります。

電車でお越しの方はこちら
マネーフォワードへの道(電車で行く 京都開発拠点編)
 

1.京都駅中央口から出て

京都駅中央口(外からの景観)

続きを読む

RubyKaigi 2019 参加者がチェックすべき福岡飯20選!

RubyKaigi 2019 参加者のみなさま、こんにちは。
Ruby Kaigi Local Organizer の伊藤です。
マネーフォワードは RubyKaigi 2019 を Ruby Sponsor で協賛します!

さて、今年のRubyKaigiの会場は福岡ですが、ご飯を食べる場所は決まりましたか?

マネーフォワードは1年ほど前から福岡に開発拠点を立ち上げ、RubyKaigi 2019に備えてきました。

そんな福岡を知り尽くしたメンバーが、おすすめのお店を紹介します。
だいたい、天神大名、中洲川端、今泉あたりのお店です。

モツ鍋

続きを読む

マネーフォワード社内PRに見られるRubyの書き方について – (4) 真理値

エンジニアの澤田です。

この連載では、社内のRuby (on Rails)コードで気になった箇所の問題点やそこから発展して関連事項を議論しています。

前回投稿の マネーフォワード社内PRに見られるRubyの書き方について (3) では文字列の生成と検証を考察しました。
記事に言及してもらったり、コメントをもらったりして、励みになっています。

今回は真理値について考察します。


【バックナンバー】

題材とするコードは、社内のGitHubプルリクエストで実際に見かけたコードから問題点に関係する部分を抽出し、抽象化したもので、見かけたものそのままではありません。


 

今回は真理値の周辺を考察します。プログラミングにおいて真理値が何のためにあるかといえば、時に論理演算を施され、最終的に制御構造の条件部やメソッドに渡される引数やメソッド内のフラグなどとなって、場合分けに使われることがほとんどだと思います。従って、今回の真理値の考察には場合分けについての議論が多く登場します。

続きを読む

マネーフォワードへの道(電車で行く 京都開発拠点編)

みなさん、こんにちは!
マネーフォワードは、新たに京都開発拠点を開設しました。

〒604-8004 京都府京都市中京区三条通河原町東入中島町78 明治屋京都ビル4F
Google Mapはこちら

それでは、三条京阪駅からのマネーフォワードへの道のりをご紹介させていただきます。

※出発地点によっては『京都市役所前駅』からの案内が表示されますが、最寄り駅の『三条京阪駅』からのルートをご紹介させていただきます。

バスでお越しの方はこちら
マネーフォワードへの道(バスで行く 京都開発拠点編)

1. 地下鉄三条京阪駅の改札を出て「京阪電車」方面へ

地下鉄の改札口を出て、右を向いてまっすぐお進みください。
(改札を出て左側にセブンイレブンがありますが、そちらとは反対側です。)

続きを読む

マネーフォワード社内PRに見られるRubyの書き方について – (3) 文字列の生成や検証

エンジニアの澤田です。

この連載では、マネーフォワード社内のRuby (on Rails)コードで気になった箇所の問題点やそこから発展して関連事項を議論しています。

前回の『マネーフォワード社内PRに見られるRubyの書き方について(2)』ではハッシュの生成を扱いました。
概念的な話で始まり、また長かったので、読んだ方は少し疲れたかも知れません。

今回は内容の特性により、用例を並べて手短に問題点を指摘して、文字列(String)の生成や検証を考察します。

題材とするコードは、マネーフォワード社内のGitHubプルリクエストで実際に見かけたコードから問題点に関係する部分を抽出し、抽象化したもので、見かけたものそのままではありません。


社内のコードに限らず、文字列に関わるRubyコードで問題のあるものの多くは、必要もないのに正規表現を使ってやろうとしていたり、特定のメソッドに固執してそれを乱用しているということに集約されると思います。正規表現の乱用の例とメソッド別の不的確な用例を挙げていきます。

続きを読む