M&Aクラウド の技術ブログ

MeCabを使ってテキストクレンジングをする

こんにちは、M&Aクラウドのかずへいです。 弊社のサービス「M&Aクラウド」では、ビジネスキーワードと呼ばれるキーワードを使って買収・出資企業様と売却・資金調達企業様のマッチングを行っております。 ビジネスキーワードを入力している様子 このビジネスキーワードというものは、ユーザー様が自由に入れられるものなのですが、その分表記ブレが発生したり、

Feature toggles を複数の環境へ即時反映する仕組みを開発しました

こんにちは。エンジニアの濱田( @hamakou108 )です。 数ヶ月前にM&Aクラウドの feature toggles の仕組みを刷新したので、今回はその内容について紹介したいと思います。 Feature toggles とは? Feature toggles はアプリケーションのビルド時または実行中に機能の切り替えを行う仕組みです。 Feature toggles はいわゆる feature branches の戦略とは対照的に、メインのブランチに頻繁にコー

生産性を落とす原因を可視化するためのサイクルタイム計測と施策について

はじめに こんにちは。エンジニアの鈴木(@yamotuki)です。 今回はエンジニアの生産性向上の施策として、Jiraを用いた計測手法と、やってみた施策について書こうと思います。 背景 ストーリーポイントの計測 ”ストーリーポイントとは?”についての詳細は他の記事にお任せします。 弊社ではスプリントを採用しており、毎スプリントで消化しているストーリーポイン

コード自動生成とDIを活用したレバレッジ指向なメールプレビュー機能を実装しました

はじめに こんにちは、エンジニアの津崎(@820zacky)です。 今回は、先日実装したLaravelでのメールのプレビュー表示、テスト送信機能についてご紹介します。 「メールプレビューはあると便利そうだけど、 メールごとにプレビューのための処理を追加する必要があるんじゃない? すでにたくさんの種類のメールがあるし、メールを追加するのも大変になるからやりたくない

最適なメンテナンス運用方法に辿り着くまでの試行錯誤

こんにちは。エンジニアの塚原(@AkitoTsukahara)です ECサイトや自社サービスを運用していると、サービスを一時停止しなければならないケースがあります。そのためにはサービス形態やインフラ構成に適したメンテナンス運用方法を事前に用意しておく必要があります。ほとんど利用することはありませんが、サービス信頼に関わる仕組みになります。 M&Aクラウドでは2

Nuxt.js化計画vol.6

Nuxt.js化計画vol.6 第6弾です。 Nuxt.js化計画の概要についてはvol.1を参照ください。 また、過去のシリーズも通してリンクしているのでぜひ御覧ください。 tech.macloud.jp 今回はリプレースではなく、新規機能に伴う新しいページをNuxt.jsで構築しました。 かんたんM&A診断という機能です。 macloud.jp 7つの設問に答えることで売却したい会社・事業に対してマッチする買い手企業

Laravelで監査ログを実装する

ログハウス こんにちは、かずへいです。 M&Aクラウドサービスで管理画面に監査ログの記録機能を追加しましたので、その実装方法について紹介致します。 監査ログとは 実際の監査ログ画面 監査ログは監査証跡として、システム監査人が追跡するために、操作内容やそれに伴うデータの移り変わりが時系列に沿って記録されているログのことです。 システム監査人とは

「ナナメウエをいく」という開発バリューについて

こんにちは。エンジニアの濱田( @hamakou108 )です。 今回は開発チームのバリューの一つ「ナナメウエをいく」について紹介したいと思います。 開発チームのバリュー M&Aクラウドの開発チームでは行動指針として以下の三つのバリューを制定しています。 ナナメウエをいく レバレッジ指向 全員インフルエンサー 「レバレッジ指向」と「全員インフルエンサー」の二つに

Repositoryパターンの設計方針を維持しながらN+1問題を起こさないようにする方法論について

こんにちは。エンジニアの鈴木(@yamotuki)です。 今回はRepositoryパターンの設計方針を維持しながらSQLのN+1問題を起こさないようにする方法論について書いていきます。 前提 レイヤードアーキテクチャについて 弊社では、DDDの考え方を取り入れたレイヤードアーキテクチャが使われています。 GET処理に関わるコードですと、具体的には以下のようなレイヤに別れていま

Laravel Meetup Tokyo Vol.13 Onlineで津崎がLT登壇しました

こんにちは、エンジニアの津崎( https://twitter.com/820zacky )です。 最近は燻製作りにハマっていて、よくベーコンを作っているのですが、 ベーコンの食べ過ぎでいよいよ自分が🐷ちゃんになりそうなフェーズに突入しております。 ぶたちゃん Laravel Meetup Tokyo Vol.13 Online 先日「Laravel Meetup Tokyo Vol.13 Online」というイベントに参加させていただきました。 「Laravel Meetup Tokyo」は、P

【AkitoTsukahara】中途入社しました。

みなさん、こんにちは! 今月よりM&Aクラウドにジョインしました塚原です。 ネット上では以下のアカウントで活動しております。よろしくお願いします! AkitoTsukahara (AkitoTsukahara) · GitHub Akito.Tsukahara (@AkitoTsukahara) / Twitter 自分が入社するまでの経緯と、入社して感じたM&Aクラウドの魅力をご紹介させていただきます。 入社までの経緯 前職ではWebの受託開発の会社でWebエン

開発のプロジェクト管理をGitHub ProjectsからJiraに移行しました

こんにちは。M&Aクラウドのかずへいです。 今年に入って開発のプロジェクト管理をGitHub ProjectからJiraに移行しました。 どのような意図で今回Jiraに移行したのかを紹介させてもらえばと思います。 GitHub Projectsを利用していたときの課題 GitHub Projectsを使い始めた時はホワイトボードの物理的なカンバンの代わりとしてだったと思います。その時のエンジニア数はまだ3名で

Nuxt.js化計画vol.5

Nuxt.js化計画vol.5 第5弾です。 Nuxt.js化計画の概要についてはvol.1を参照ください。 また、過去のシリーズも通してリンクしているのでぜひ御覧ください。 tech.macloud.jp 徐々に弊社アプリケーションのフロントエンドもLaravelからNuxt.jsに移行しています。 今回は成約事例一覧とM&Aお役立ち資料ページがめでたくNuxt.js化されました。 実は今までNuxt.jsによる動的なルーティング

Vue Component をサイトの各所で別々の条件によって表示する機能を Nuxt.js + TypeScript で実装する

こんにちは。エンジニアの濱田( @hamakou108 )です。 先日、あるモーダルをサイトの各所で別々の条件によって表示する機能を Nuxt.js + TypeScript で実装する機会がありました。 このときの設計が他の場面でも応用できそうな知見としてまとめられそうだったので、この記事で紹介したいと思います。 話さないこと Vue.js (Composition API), Nuxt.js, TypeScript の基本的な使い方 時間計

「レバレッジ指向」という開発チームバリューについて

こんにちは、エンジニアの津崎です。 前回の記事で、「全員インフルエンサー」という開発チームのバリューについて紹介しました。 今回もその流れを汲んで開発チームのバリューの紹介をしていこうと思います。 開発チームのバリューについて M&Aクラウドの開発チームには行動指針として以下の三つがあります。 ナナメウエをいく レバレッジ指向 全員インフルエン