TECH PLAY

M&Aクラウド

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

156

Nuxt.js化計画vol.6 第6弾です。 Nuxt.js化計画の概要についてはvol.1を参照ください。 また、過去のシリーズも通してリンクしているのでぜひ御覧ください。 tech.macloud.jp 今回はリプレースではなく、新規機能に伴う新しいページをNuxt.jsで構築しました。 かんたんM&A診断という機能です。 macloud.jp 7つの設問に答えることで売却したい会社・事業に対してマッチする買い手企業をレコメンドするという機能です。 今回はNuxt.js側では初の試みとしてABテストを行っています。 ABテストについては次の記事で紹介しています。 tech.macloud.…
アバター
ログハウス こんにちは、かずへいです。 M&Aクラウドサービスで管理画面に監査ログの記録機能を追加しましたので、その実装方法について紹介致します。 監査ログとは 実際の監査ログ画面 監査ログは監査証跡として、システム監査人が追跡するために、操作内容やそれに伴うデータの移り変わりが時系列に沿って記録されているログのことです。 システム監査人とは、システムが正しく動いているか、問題が合っても追跡できるか等を確認する人で、公民情報システム監査人という資格もあるようです。 cisa.jp.net Laravel Auditingの活用 Laravelでの監査ログの記録にはLaravel Auditin…
アバター
こんにちは。エンジニアの濱田( @hamakou108 )です。 今回は開発チームのバリューの一つ「ナナメウエをいく」について紹介したいと思います。 開発チームのバリュー M&Aクラウドの開発チームでは行動指針として以下の三つのバリューを制定しています。 ナナメウエをいく レバレッジ指向 全員インフルエンサー 「レバレッジ指向」と「全員インフルエンサー」の二つについては過去の記事で紹介していますので、是非そちらも読んでいただければと思います。 tech.macloud.jp tech.macloud.jp 今回は最後の一つ、「ナナメウエをいく」について紹介します。 「ナナメウエをいく」とは? …
アバター
こんにちは。エンジニアの鈴木(@yamotuki)です。 今回はRepositoryパターンの設計方針を維持しながらSQLのN+1問題を起こさないようにする方法論について書いていきます。 前提 レイヤードアーキテクチャについて 弊社では、DDDの考え方を取り入れたレイヤードアーキテクチャが使われています。 GET処理に関わるコードですと、具体的には以下のようなレイヤに別れています。特に今回のお話に関わる部分は太文字にしておきます。 Controlller Scenario Service Query Service 画面やコマンド出力に必要な Data Transfer Object (以下D…
アバター
こんにちは、エンジニアの津崎( https://twitter.com/820zacky )です。 最近は燻製作りにハマっていて、よくベーコンを作っているのですが、 ベーコンの食べ過ぎでいよいよ自分が🐷ちゃんになりそうなフェーズに突入しております。 ぶたちゃん Laravel Meetup Tokyo Vol.13 Online 先日「Laravel Meetup Tokyo Vol.13 Online」というイベントに参加させていただきました。 「Laravel Meetup Tokyo」は、PHPフレームワークLaravelで開発を行うエンジニアを対象としたmeetupです。 今回およそ1…
アバター
みなさん、こんにちは! 今月よりM&Aクラウドにジョインしました塚原です。 ネット上では以下のアカウントで活動しております。よろしくお願いします! AkitoTsukahara (AkitoTsukahara) · GitHub Akito.Tsukahara (@AkitoTsukahara) / Twitter 自分が入社するまでの経緯と、入社して感じたM&Aクラウドの魅力をご紹介させていただきます。 入社までの経緯 前職ではWebの受託開発の会社でWebエンジニアをしていました。 担当していたプロジェクトでは、設計・開発・保守、顧客折衝にまで及び、プロジェクトに関することは満遍なく携わっ…
アバター
こんにちは。M&Aクラウドのかずへいです。 今年に入って開発のプロジェクト管理をGitHub ProjectからJiraに移行しました。 どのような意図で今回Jiraに移行したのかを紹介させてもらえばと思います。 GitHub Projectsを利用していたときの課題 GitHub Projectsを使い始めた時はホワイトボードの物理的なカンバンの代わりとしてだったと思います。その時のエンジニア数はまだ3名で、 GitHub Projectsの機能でも特に問題は感じていませんでした。 元の運用は、 issueのマイルストーンにバックログを作る。マイルストーン内ではissueが優先度順に並べられ…
アバター
Nuxt.js化計画vol.5 第5弾です。 Nuxt.js化計画の概要についてはvol.1を参照ください。 また、過去のシリーズも通してリンクしているのでぜひ御覧ください。 tech.macloud.jp 徐々に弊社アプリケーションのフロントエンドもLaravelからNuxt.jsに移行しています。 今回は成約事例一覧とM&Aお役立ち資料ページがめでたくNuxt.js化されました。 実は今までNuxt.jsによる動的なルーティングは使っていませんでした。 今回のリニューアルのタイミングで個別のページはNuxt.jsによるルーティングを利用しています。 成約事例一覧 https://maclo…
アバター
こんにちは。エンジニアの濱田( @hamakou108 )です。 先日、あるモーダルをサイトの各所で別々の条件によって表示する機能を Nuxt.js + TypeScript で実装する機会がありました。 このときの設計が他の場面でも応用できそうな知見としてまとめられそうだったので、この記事で紹介したいと思います。 話さないこと Vue.js (Composition API), Nuxt.js, TypeScript の基本的な使い方 時間計算などの細かいアルゴリズムの実装 背景 M&Aクラウドでは M&A に役立つ資料の一部のダウンロードや買い手企業様とのマッチング機能を会員登録された方向…
アバター
こんにちは、エンジニアの津崎です。 前回の記事で、「全員インフルエンサー」という開発チームのバリューについて紹介しました。 今回もその流れを汲んで開発チームのバリューの紹介をしていこうと思います。 開発チームのバリューについて M&Aクラウドの開発チームには行動指針として以下の三つがあります。 ナナメウエをいく レバレッジ指向 全員インフルエンサー このバリューは、今月(2021年1月)に開発チームによる合宿*1により策定されました。 今回は、「レバレッジ指向」というバリューについて紹介します。 「レバレッジ指向」というバリューについて 「レバレッジ指向」とは今回のバリュー策定で生まれた造語で…
アバター
こんにちは。エンジニアの鈴木(@yamotuki)です。 昨年はPHPカンファレンス2020にチーム全員でプロポーザルを出し、4人が登壇することになりました。 今回は PHPerKaigi 2021 にまた全員でプロポーザルを出した話です。この記事を書いている時点ではまだ採択されたか分かりませんので、もし採択されたら追記します。 追記: 5人がプロポーザルを出して、3人が20分枠、2人がLTで発表することになりました。紹介タイトルの先頭に[採択]または[不採択]をつけました。 頑張って発表準備し為になる発表をしたいと思います。お楽しみに! 開発チームのバリューについて M&Aクラウドの開発チー…
アバター
あけましておめでとうございます。M&Aクラウドのかずへいです。 去年から大変な時期が続いておりますが、M&Aクラウドは順調に成長しておりまして、 仲間の増加に合わせて、この度オフィスを八丁堀から新宿御苑に移転することとなりました。 新オフィスのエントランス せっかくオフィスを移転したのですが、今はほとんどのメンバーはリモートワークをしております。 緊急事態宣言も出ておりますが、より柔軟に、仕事の進め方、コミュニケーションの仕方を変えながら、 いつかまたオフィスでみんなで集まってわいわいする時を思い描きながら頑張っていきたいと思います。 今年の抱負 私の今年の抱負は「発進・発信」です。 今年はM…
アバター
こんにちは、M&Aクラウドの荒井です。 以前に弊社の津崎がElasticBeanstalkのワーカー環境の導入について紹介させていただきました。 tech.macloud.jp 弊社ではその後様々な定期実行のスケジュールを移行し、安定稼働に至っています! ワーカー環境で実行されるコマンドが増えるにつれて、コマンドの実行状況をより詳細に確認したいというニーズが出てきました。 以下でどのように対応したのかを説明します。 Workerサーバーでスケジュールを実行する 弊社ではlaravel-aws-workerを利用しているので、Laravelのスケジュールの機能でElasticBeanstalk …
アバター
こんにちは、こんばんは、kubotak(@kubotak_public)です。 早いものでシリーズも第4回となりました。 前回の記事は以下です tech.macloud.jp 今回はログイン周りの仕様変更があり、それに伴いNuxt.js化を行いました。 新規登録の仕様変更 新規登録に関して仕様変更しました。 今までは会社を売りたい・資金調達したいユーザーは弊社サービスに登録する際に会社情報の入力を行う必要がありました。 この問題として、例えば「直近では売却意欲は低いがとりあえず最新情報の通知だけ受け取っておこう」といったカジュアルなニーズに答えることができません。 新たに仮登録というワンステッ…
アバター
こんにちは。エンジニアの濱田( @hamakou108 )です。 先日M&Aクラウドのサイト上で A/B テストを本格的に導入していこうという話になり、そのシステム基盤を構築する機会がありました。 今回は A/B テストの基盤構築に至った経緯とどのように実装したのかについて紹介したいと思います。 A/B テストの基盤構築に至った経緯 M&Aクラウドの開発チームでは事業上の目標到達に向けた施策実施とその効果測定を継続的に行っています。 tech.macloud.jp A/B テストの導入によって一度に複数の案を検証することが可能となるのに加え、外的要因に左右されにくいデータが得られるため、より効…
アバター
こんにちは、M&Aクラウドの津崎(@820zacky)です。 弊社エンジニアの4名がPHPカンファレンスというイベントに登壇することとなりました🎉 今回は、登壇が決定するまでの流れと、どんな発表をするか?というところを書きます。 PHPカンファレンス2020とは? phpcon.php.gr.jp PHPカンファレンスは日本最大のPHPのカンファレンスです。 今年開催されるPHPカンファレンス2020は、12月12日にオンラインにて開催されます。 PHPカンファレンスでは、登壇したい人がプロポーザルを提出し、それを運営者が選定することでスピーカーを決めています。 今年は、9月16日から10月5…
アバター
こんにちは。エンジニアの鈴木(@yamotuki)です。 以前、こちらの記事 で速度改善の前の測定のためにSpeedCurveを導入したという話を書きました。 今回はSEOの観点から Google Search Console で警告が出たページについて速度改善を試みた話を書いていきます。 ページ速度とSEOの関係 Google Search Console のなかの「ウェブに関する主な指標」というところでヘルプに書かれている指標は以下の3種類でした。以下の3つはCore Web Vitals とも呼ばれています。 LCP(Largest Contentful Paint): ページが最大の視…
アバター
こんにちは!M&Aクラウドの荒井です。 弊社では週に2回社内で勉強会を開いています。 水曜日の夜は「フロントエンド勉強会」、金曜日の夜は「アプリケーション設計勉強会」と題しまして、お題に合う教材を選定し、みんなで輪読しています。 今年の6月はじめ頃から9月末にかけて、フロントエンド勉強会にて、こちらの「JavaScript Promiseの本」を教材にさせていただきました。 azu.github.io 選定の理由 弊社ではPHP+JavaScript+Vue.jsで作られたアプリケーションをTypeScript+Nuxt.jsで置き換えるということを行っています。 PHPで吐き出したページ上で…
アバター
こんにちはkubotak(@kubotak_public)です 連載になってる社内ハッカソンシリーズです。 今回はついに社内優勝したチームの改善についてです。(自慢) 以前の記事をまだ読んでない方はこちら 社内ハッカソンを通して営業チーム業務効率化を試みました - M&Aクラウド開発者ブログ 社内ハッカソンを通じてコーポレート部の業務効率化に挑戦しました - M&Aクラウド開発者ブログ 社内ハッカソンを通してライティング部の業務効率化に挑戦しました - M&Aクラウド開発者ブログ ハッカソンの大まかな概要は以前の記事から引用 目的は、「エンジニアが他のチームの業務を理解すること & 他のチーム…
アバター
こんにちは。エンジニアの濱田( @hamakou108 )です。 前回の記事に引き続き、社内ハッカソンの模様をレポートしたいと思います。 tech.macloud.jp 社内ハッカソンの概要については前回の記事の説明を引用します。 目的は、「エンジニアが他のチームの業務を理解すること & 他のチームがエンジニアの仕事を理解すること」 テーマは「チームの業務効率化」 10:00~17:00でヒアリングと実装を行う 各チーム5分で発表 ライティングチームについて 今回のハッカソンではライティングチームとして、ライティング部のメンバーと共に業務効率化を図るための作品を制作しました。 ライティング部で…
アバター