Go製マイクロサービスのAPI仕様をSwaggerで作成、管理する

そのサービスはマイクロですか?
こんにちは、CTO室マイクロサービス推進部でサーバーサイドエンジニアをしている吉岡です。

マイクロサービス推進部ではその名の通り、日々マイクロサービスを開発 / 運用 / 推進しています。
先日リリースしたメール取込もそうですが、私たちの開発しているマイクロサービスはユーザーの皆様に直接触れていただくものではなく、社内の別サービスに機能を提供することが大半です。
提供する機能は主に RESTfulAPI を通して提供しているのですが、仕様(ドキュメント)を明確でわかりやすいものにすることで、チーム間連携をより効率的・効果的に行えるようになります。

本稿では「開発したサービスのAPI仕様をどのように提供するか?」という部分について紹介します。

メール取込に関する概要や目的についてはこちらのEngineersBlogでも紹介していますので、ご興味のある方はご一読ください。

Swaggerって?

早速結論ですが、マイクロサービス推進部ではSwaggerを利用してAPIドキュメントを作成し、サービスの仕様 / 利用方法を社内の別サービスへ提供しています。

Swaggerについては公式ページやわかりやすい解説が数多あると思いますが、ここで簡単に説明させていただくと

続きを読む

DroidKaigi 2021にGOLD SPONSORとして協賛、マネーフォワードの社員が登壇します

こんにちは。Androidエンジニアのsyarihuです。

2021年10月19日(火)から21日(木)にかけてオンラインにて開催されるDroidKaigi 2021に、マネーフォワードから私syarihuが登壇します。
本記事では、syarihuが登壇するセッション概要について簡単に紹介します。

セッション概要

日時

2021年10月19日(火) 17:20 ~ 18:00 (発表時間 25分、Office Hours 15分)

タイトル

Google Play 定期購入 比例配分モード完全攻略ガイド

受講対象者

  • Google Playに公開するAndroidアプリで複数の定期購入を提供している人
  • Google Playの定期購入の比例配分モードについて知らない人
  • Google Playの定期購入の比例配分モードに興味があり、理解を深めたい人

内容

Google Playの定期購入は、ある定期購入から別の定期購入へと変更できます。
定期購入を切り替える際、契約中の定期購入の残りの期間や既に支払っているクレジットをどのように扱うかを設定するモードである比例配分モードを指定できます。
比例配分モードは、Androidのドキュメントに記載してあるものの、文字だけの説明のためドキュメントだけでは理解しづらい部分がいくつかあります。また、無料試用における比例配分モードでは比例配分モードの挙動が少し違うため、そういった点も理解が難しいポイントになっています。
本セッションでは、Google Playの定期購入における比例配分モードの各モードの違いについて、図解も交えてどういったときにどの比例配分モードを利用すべきかなどについて解説します。

目次

  1. Google Playの定期購入
  2. 定期購入の切り替え
  3. 定期購入の比例配分モードとは
  4. 比例配分モードの種類
  5. 無料試用における比例配分モード
  6. シナリオ別に推奨する比例配分モード

GOLD SPONSOR としてDroidKaigi 2021を応援!

マネーフォワードは GOLD SPONSOR としてDroidKaigi 2021を応援させていただきます!
後日、お金の見える化サービス『マネーフォワード ME』での具体的な働き方がイメージできるような開発事例記事を公開する予定です。DroidKaigiのスポンサーをしているマネーフォワードという会社はどんな会社だろう?と興味を持たれた方はそちらの記事もお楽しみに!

マネーフォワードではAndroidエンジニアを募集しています

マネーフォワードでは、Androidエンジニアを積極的に募集しています。
興味を持たれた方は、syarihuに声をかけてもらえるとカジュアルにお話する場を用意いたしますので、ぜひTwitterのDMなどでお気軽にお声がけください!

もしご応募したい方がいましたら、次の採用サイトからぜひご応募をよろしくお願いします!
https://hrmos.co/pages/moneyforward/jobs/00000dev03

続きを読む

メール取込における解析対象メールの量産化について

こんにちは!
マネーフォワードのCTO室マイクロサービス推進部でインターンをしている廣瀬です。
今月6月にメール取込というサービスをリリースしました(お知らせ)。
メール取込に関する概要や目的についての詳細はこちらのブログに記載されていますので、気になる方はご一読ください。

メール取込は、マネーフォワードの様々なプロダクトで、ユーザーに手入力を強いている点を解決することを主な目的としています。そこで、メール取込の価値向上のために解析可能な領収書メールの拡充を、インターン生主導で進めています。
今回は、できるだけ早く効率的に解析対象サービスを増やすことを目的としてインターンチームが取り組んでいることについて紹介します。

アーキテクチャ(メール解析)

まず、メール解析部分のアーキテクチャについて紹介します。
今回は、図中のDispatcherParserに焦点を当てて説明します(詳細な処理の流れについてこちらを参照してください)

続きを読む

「テックトーク」で知識と経験を共有しよう

こんにちは、マネーフォワード 福岡開発拠点の中里です。
クラウド経費本部でフロントエンドエンジニアをしています。

今回は、マネーフォワード 福岡開発拠点の取り組みのひとつ、「テックトーク」についてご紹介します。

テックトークとは

私たちが開催している「テックトーク」は、日々の業務やプライベートなどで学んだ技術ネタを整理して、アウトプットする機会を増やすために始まりました。

だいたい月に1度のペースで開催されており、10分ほどのLTとディスカッションをいくつか行うといった内容で、発表する側も聴く側もカジュアルに参加することができます。

どんな内容か、気になりませんか?
今回は特別に、最近のテックトークの内容を少しだけ公開してみようと思います。
私たちの日々の取り組みについて、知っていただけたら嬉しいです。

社内gemを公開した話

一番バッターは、バックエンドエンジニアの江藤さん。卓球が大好きです。

続きを読む

お知らせ: SIerからベンチャーへのエンジニア転職〜キャリアチェンジになにを求めたか?〜 を開催します

最近運動不足解消のために朝散歩をしてから始業している技術広報のluccafortです。
最近は朝晩はだいぶ過ごしやすくなってきて逆に起きるのがつらくなってきました。

閑話休題。

本題です!
10月20日(水) 19時20分からUbieさん、Uzabaseさん、そしてマネーフォワードの3社合同で「SIerからベンチャーへのエンジニア転職〜キャリアチェンジになにを求めたか?〜」というイベントを開催致します。
マネーフォワードからは「MFBC クラウド横断本部 本部長」兼「CTO室 AI推進部 部長」兼「CTO室 副室長」の秋山日出海が「SIerのプロジェクトマネージャーがWeb系スタートアップに転職して感じたリアル」というタイトルで登壇します。

余談ですが過去に紹介した人物紹介の中で肩書が歴代最長な気がします。
兼務が多すぎて本部長なのか部長なのか副室長なのか…どれで呼べばいいかわからないですね!
(普段は秋山さん、あるいは日出海さんとみんな親しみを込めて呼んでいます。)

肝心のイベントの詳細です。

【開催概要】
日時:2021/10/20(水) 19時20〜21時00分
方法:配信はZoomのウェビナーを予定しております。
主催:株式会社マネーフォワード

【参加申込】
以下のイベント申込ページよりお申込みください。
SIerからベンチャーへのエンジニア転職〜キャリアチェンジになにを求めたか?〜

今回の企画は登壇者同様SIerからベンチャーへ転職したCTOの中出が企画しています。
本イベントの司会進行も中出が担当する予定になっています。

SIerからのキャリアチェンジを考えているかたやベンチャー企業で働くって実際どうなの?というかたはぜひ先駆者のナマの声をお聞きください。
マネーフォワードからは秋山がSIerからWeb系スタートアップ企業のマネーフォワードに転職して、なにを感じどう考え行動してきたか…そのリアルな体験を感じていただければと思います。

また同日同時間帯に関西拠点のMeetupイベントが開催されております。
関西拠点では毎月Meetupイベントを企画しております、少しでもご興味がありましたらぜひこちらにも足を運んでいただければと思います。
【Meetup】SaaSプロダクトの成長を実現するために関西で実践しているスクラム開発について公開!

続きを読む

transformersのTokenizerで固定長化する

灼熱からこんにちは、CTO室AI推進部@ken11です。PC排熱にあぶられ干からびています。
自宅のPCで学習をするということ、それは自宅がホットアイルになるということ…←

最近弊社のエンジニアブログの投稿数が多くて嬉しい限りです。
きっと僕がこうやってしょうもないことばかり書いてるからエンジニアブログを書くことへのハードルが下がっているのだと信じています←
嘘です、それは技術広報のluccaさんのおかげです。

ところでみんな、自然言語処理やってる?日本語の問題は日本の人しか解決しないので我々が頑張るしかないんだけど、大丈夫そ?
冗談はさておき、そういう思いもあって自分は自然言語処理が好きです。
日頃から公私ともにいろいろチャレンジしているのですが、今日はその自然言語処理における入力の話です。失敗談です。。

自然言語処理の学習における入力の固定長化

BERTでもなんでも、なにかしら深層学習系の自然言語処理モデルの学習をやってみたことがある人はだいたいわかると思いますが、入力は固定長化することが多いです。
(逆に自分は可変長で問題ないケースを知らない)

続きを読む

Pascal VOC形式のxmlファイルとAWS SageMaker Ground Truthのmanifestファイルの相互変換

こんにちは、マネーフォワードの田中です。

はじめに

Amazon SageMaker Ground Truth は、AWSが提供するアノテーションプラットフォームで、ユーザはS3にデータセットをアップロードすることで、アノテーション作業を容易に行うことができます。Ground Truthは様々な問題設定に対するアノテーションツールを提供していて、物体検出もその1つです。

Ground Truthへ入力、またはGround Truthが出力するアノテーションデータのファイルフォーマットは、AWSが独自に規定するjsonファイルであり(実際には複数のjsonファイルを1つにまとめたmanifestファイル)、以下のような問題があります。

  • manifestファイルを、他形式のアノテーションファイルを前提とするシステムに直接入力したり、他形式のファイルを対象としたアノテーションツールで追加アノテーションができない
  • 他形式で既にアノテーションを行ったデータをGround Truthに直接インポートできない

今回は物体検出のためのアノテーションデータの代表的なフォーマットの1つであるPascal VOC形式と、Amazon SageMaker Ground Truth形式のアノテーションファイルを相互に変換する方法について記述します。

また、下記で利用しているコードをPyPIパッケージとして公開しているので、良ければご覧になってみてください:https://pypi.org/project/pascalgt/

物体検出のアノテーションデータフォーマット

物体検出とは、画像中のどこに関心物体が存在するかを推定する問題です。何かしらの推定器を作ることを考えると、関心物体が画像中のどこに存在するかを示す、正解データ(アノテーションデータ)が必要になります。
例えば、「犬」と「猫」という2つの物体に関心があるとき、以下のようなアノテーションを行います。

このようなアノテーションデータを表現するためには、

続きを読む