2024-01-01から1年間の記事一覧 - Mobile Factory Tech Blog

Mobile Factory Tech Blog

技術好きな方へ!モバイルファクトリーのエンジニアたちが楽しい技術話をお届けします!

2024-01-01から1年間の記事一覧

1500コンポーネントある巨大なVue2アプリのVue3移行

はじめに 駅メモ!開発チームエンジニアの id:kaidan388 です。 駅メモ!のフロントエンドは Vue で書かれており、およそ 1500 コンポーネントあります。 Vue2 が EOL を迎えるに際して、これをどう Vue3 に移行するかが問題になりました。 具体的には以下の…

駅メモ!フロントエンドの型チェックを強化してCI(GitHub Actions)を導入した話

こんにちは、駅メモ!開発チームエンジニアの id:hayayanai です! 私が開発に関わる駅メモ!は、今年で 10 周年を迎えたゲームです。フロントエンドは Vue.js で開発されていて、現在もコード量が増加しています。 今回は、そんな駅メモ!のフロントエンド…

駅メモ!開発チームにおける機能開発と改善を並行して進めるためのチーム構成

はじめに こんにちは。駅メモ!開発チームの横井です。 今回はプロダクトの機能開発をしながら改善に取り組むためのチーム構成について話します。 背景 駅メモ!はありがたいことに今年で 10 周年を迎えました。 10 年もの間、機能追加や改修をしていくこと…

AIコードレビューツール Qodo Merge(旧:PR-Agent) を使ってみた

駅奪取チームの id:kimkim0106 です。 駅奪取チームで Qodo Merge(旧:PR-Agent) を使ってみた感想の記事になります。 結論から言いますと、人間のレビューや作業をある程度代替できており、業務の効率化につながっていると感じました。 Qodo Merge とは Qodo…

毎秒現在地を使った最近傍探索をしたい

こんにちは。駅メモエンジニアの id:dorapon2000 です。 約半年前の 6 月 1 日にステーションメモリーズ!(駅メモ!)10 周年を記念してタイムラインと地図の切替機能をリリースしました。大変好評を頂いておりとても嬉しいです。 今回は、その機能の中で毎…

Perl5.40の変更点

こんにちは、エンジニアの id:mp0liiu です。 かなり遅くなってしまいましたが、今年も6/10にPerlの最新安定バージョンである5.40がリリースされたので新機能や変更点についてまとめます。 安定化した実験的機能 try-catch 構文 5.34 で追加された try-catch…

フルリモートでもコミュニケーションが発生する新卒技術研修

はじめに モバイルファクトリーは、21 年度から完全リモートワークに移行しています。 リモートワークではコミュニケーション不足に陥りがちです。まだ会社に慣れていない、社員の顔と名前が一致していないような状態にある新卒のエンジニア達はなおさら、コ…

復旧用クラスターとB/GデプロイでAmazon Aurora MySQL v2をv3へ安全に移行しました

駅メモ!開発基盤チームです。 今回はサービスで利用している Amazon Aurora MySQL を v2 から v3 へ移行したときのことを書きます。 概要 駅メモ!をはじめとする弊社のサービスでは、データストアとして Amazon Aurora MySQL(以降 Aurora MySQL) を利用し…

YAPC::Hakodate 参加レポート

駅奪取チームエンジニアの id:kimkim0106 です。 「レポートを書くまでが YAPC」とのことなので、自分も書こうと思います。 YAPC::Hakodate の概要 2024/10/5(土)に、北海道函館市の公立はこだて未来大学にて開催されました。 YAPC は Yet Another Perl Co…

今更vimに目覚めた男がLunarVimを使っている話

はじめに vim に最近目覚めた。そこから NeoVim、LunarVim を使うようになった流れについて、自分が思う好きなポイントと絡めてまとめる。 書かないこと エディタ戦争 VSCode も、vim も、emacs も、みんな違ってみんないい あくまでも vim のココスキをまと…

MySQLで「無ければINSERT、あればUPDATE」を実現する方法

こんにちは、駅奪取エンジニアの id:kimkim0106(旧: id:kaoru_k_0106)です。 今回の記事は、駅奪取でテーブルにレコードが「無ければ INSERT、あれば UPDATE」(いわゆる UPSERT)をする箇所で Duplicate entry が出ていたのを修正したり、未然に防ぐ実装…

バッファ傾向グラフを用いてプロジェクトのバッファ消費量を可視化してみた話

駅奪取チームでエンジニアをしている id:kebhr です。 今回は、駅奪取チームにおけるプロジェクト管理のツールとして、従来利用していたガントチャートに加え、新たにバッファ傾向グラフを導入してみた経験について書きます。 バッファ傾向グラフとは このプ…

OverlayFS でデータ入りのテスト用 DB を素早く起動する

駅メモ!開発基盤チームの id:xztaityozx です。 今回はテスト実行のボトルネックを OverlayFS を利用することで解消した話と、OverlayFS の動作を調べるためにbpftraceを使った話をします。 かんたん概要 Test::mysqldを使って挿入済みのデータを持ったmysq…

私が 1on1 でしていること

言葉の定義 モバファクの 1on1 の目的 1on1 で自分が大事にしていること 1on1 はメンティーの時間である 1on1 はメンターの時間でもある 1on1 初回 今使っている 1on1 のフォーマット 体調 半期目標の進捗振り返り ネクストアクションの振り返り うまくいか…

NFTコントラクトにメタトランザクションを導入する

こんにちは、ブロックチェーンチームの id:charines です。 今回は ERC-721 コントラクト(NFT コントラクト)にメタトランザクションを導入した開発事例について紹介します。 主にブロックチェーンに関する開発者の方を対象とした内容になります。 メタトラ…

Mapbox GL JS でresize animationを実装する

みなさん、こんにちは。新卒エンジニアの id:matsuda0528 です。 今日は、Mapbox GL JS を使用して地図の描画領域を変更するアニメーションを実装する方法についてお話します。 TL;DR 以下のように、setInterval() 関数を用いて resize() 関数を繰り返し実行…

コスト削減のため Redis の sorted sets で実装していたランキング処理を MySQL に移行しました

駅メモ!チームエンジニアの id:yumlonne です。 この記事では Redis の sorted sets で実装していたランキング処理を MySQL に移行した仕組みを紹介します。 背景 駅メモ!には複数のランキングがあり、Redis の sorted sets を使うことでパフォーマンスの…