ブックマーク / tech.commune.co.jp (21)

  • コミュニティプラットフォームの投稿レコメンド機能を支える機械学習基盤 - Commune Engineer Blog

    こんにちは,コミューンで一人目の機械学習(ML)エンジニアとして働いている柏木(@asteriam_fp)です. 入社して5ヶ月ほど経ちましたが,今回漸く最近の取り組みを紹介できそうです.ML エンジニアは僕一人なので,専らの相談相手は ChatGPT 君の今日この頃です笑 はじめに コミューンでは,企業とユーザーが融け合うコミュニティサクセスプラットフォームである commmune を提供しています.今回のブログは先日のプレスリリースでも発表された投稿レコメンド機能を commmune に導入したので,その機能を裏側で支えている機械学習基盤に関する内容を紹介します. エンドユーザーに対して提供される機械学習システムを導入するのは初めての試みになり,まさにゼロからの出発なので,これから徐々に大きく育てて行く予定です! はじめに コミュニティプラットフォームにおける機械学習の可能性 投稿レコ

    コミュニティプラットフォームの投稿レコメンド機能を支える機械学習基盤 - Commune Engineer Blog
    toshikish
    toshikish 2023/09/27
  • CDKTFで実現するコミューンのインフラストラクチャ改善 - Commune Engineer Blog

    はじめに はじめまして、コミューン開発 SRE チーム の池田です。 今回は「コミューンのインフラにおける課題」を解決するために Cloud Development Kit for Terraform (CDKTF) を導入しましたので、導入の進め方やよかったところについてご紹介したいと思います。 「コミューンのインフラにおける課題」については、 SRE 川岡さんの記事「『Terraform と gcloud CLI を使用した完璧な Google Cloud インフラストラクチャの構築』は当に完璧なのかやってみた」で紹介していますので、ぜひお読みください。 また、この記事では CDKTF の概要や用語については説明いたしませんので、予めご承知ください。 tech.commmune.jp なぜ、CDKTF にしたのか? commmuneでは、WEB フロント・バックエンドがTypeScr

    CDKTFで実現するコミューンのインフラストラクチャ改善 - Commune Engineer Blog
    toshikish
    toshikish 2023/08/16
  • TypeScript Compiler APIを活用してi18nの不整合をチェックする - Commune Engineer Blog

    こんにちは。業務委託としてコミューンのグローバルチームでエンジニアをしているhiro08と申します。 グローバルチームでは主に海外展開に向けた開発や施策を行なっています。もし、グローバルチームに興味のある方は日のSaaSスタートアップが世界で戦うためのプロダクトを開発するということも一読ください。 今回はグローバルチームでの開発の一部として、TypeScript Compiler APIを活用したi18nの不整合をチェックするツールを作成したお話をしようと思います。 背景 海外展開に向けた開発でまず思いつくのがi18n (多言語化) 対応ではないでしょうか。コミューンのプロダクトではi18nの対応が完了しており、すでに運用フェーズに入っています。 しかし、運用していく中で対訳データのキーやネームスペースの不整合に気づく仕組みがないことが課題点として挙がってきました。 i18nでは、ネーム

    TypeScript Compiler APIを活用してi18nの不整合をチェックする - Commune Engineer Blog
    toshikish
    toshikish 2023/08/02
  • チームで行ってきた改善の紹介 〜質とスピード編〜 - Commune Engineer Blog

    はじめに こんにちは。コミューンのスクラムチームで開発をしているandoと申します! コミューンの開発チームはスクラム開発を採用しており、2週間スプリントを行っています。 スプリントの終了時には振り返りを通じて改善アクションを出し、日々の業務の中でももっと良くできそうなことがあれば改善するといった形で改善を繰り返しています。 今回はその改善の中から、チームが質とスピードを両立させるために行った改善策を紹介します。 持っていた課題感 私の所属しているチームではそれぞれに対して以下のような課題感を持っていました。 スピード ストーリーをもっと早くリリースできそう バーンダウンチャートを見ると、しばらく横ばいで急に下がるような動きになっている 考えられる障壁はあるが、チームで収まらない課題も多い チーム内で解決できる課題もあるかもしれないが、見つかっていない 質 テストケースを作りリリース時に動

    チームで行ってきた改善の紹介 〜質とスピード編〜 - Commune Engineer Blog
    toshikish
    toshikish 2023/04/18
  • CI/CDをCloud Buildへ乗り換えたついでにリリースを10分以上短縮した話 - Commune Engineer Blog

    はじめに コミューンではこれまでCI/CDのツールにCircleCIを使っていましたが、最近Cloud Buildへ切り替えました。 結論から言うと、切り替えにあたってパイプラインの中身とプロセスを今一度見直したところ、以下のように改善しました。 ビルド回数:2回 -> 1回 番環境のリリース完了時間:約13分~24分 -> 約3分 今回の記事では切り替えるきっかけとなった出来事やCloud Buildの設定、注意点について書きます。 はじめに タフな仕事始め その場限りの対応ではなくあるべきを考える あるべきを設計する パイプラインのステップ ステップ1 ステップ2 Cloud Buildの設定 構成ファイルの作成 サービスアカウントの設定 トリガーの設定 開発環境用のプロジェクト 番環境用のプロジェクト 注意点 cloudbuild.yamlの多段構成は避ける 自前のタグをつけたリ

    CI/CDをCloud Buildへ乗り換えたついでにリリースを10分以上短縮した話 - Commune Engineer Blog
    toshikish
    toshikish 2023/02/28
  • Next.js Conf 2022で最も感動したライブラリ、vercel/satoriについて紹介させてください。 - Commune Engineer Blog

    はじめまして。コミューンでサーバーサイドエンジニアとして働いています、あのちっくと申します。 突然ですが皆様は昨年 10 月に開催されたNext.js Conf 2022はご覧になられましたでしょうか。 Next.js Conf は Next.js の開発・メンテナンスを行っている Vercel 社が主催する、Next.js とその周辺技術に関するカンファレンスです。 コミューンでもメインプロダクト commmune の Web フロントフレームワークとして Next.js を採用しており、私個人としてもとても興味深くオンラインから視聴をしていました。 特に話題になったのは、React Server Components をサポートしたルーティング・レイアウトシステム"app directory"などの新機能を新たに追加したNext.js 13と、"Webpack の後継"を謳う Rust

    Next.js Conf 2022で最も感動したライブラリ、vercel/satoriについて紹介させてください。 - Commune Engineer Blog
    toshikish
    toshikish 2023/01/24
  • 月間数百万通のメール送信サービスをIPウォームアップしつつ切り替えたら到達率が向上した話 - Commune Engineer Blog

    はじめに こんにちは。コミューンでスクラムマスターをしているまつむらと申します。 今回はコミューンで私が取り組んだ技術課題のなかから「メール送信システムのリプレース」について記載させていただこうと思います。 はじめに 背景 IPウォームアップとは? 移行計画のための準備 メールの開封率 ドメイン乖離度合 メール送信数 実装 要件 ソースコード データベース 工夫ポイント その1: データ全件取得 その2: 乱数生成器を外部から注入 その3: キャッシュ有効期限のコントロール 結果 やらかし まとめ 背景 コミューンは、BtoBおよびBtoC向けにコミュニティを作成できるプロダクト「commmune」を提供しています。 commmune ではメール送信のために SendGrid という SaaS を利用しているのですが、 2022年5月頃、事情により SendGrid のアカウントを変更する

    月間数百万通のメール送信サービスをIPウォームアップしつつ切り替えたら到達率が向上した話 - Commune Engineer Blog
    toshikish
    toshikish 2023/01/11
  • Sequelize のモデル定義ファイルからER図を作成してみた - Commune Engineer Blog

    はじめに こんにちは。コミューンでソフトウェアエンジニアをしているU2です。 今回は commmune の開発でも使用している typescript-sequelize のモデル定義ファイルからER図を作成していきます。 はじめに 背景 やりたいこと 実装 環境 前準備 実験 ER図の生成 CI化 今後の課題 参考サイト まとめ 背景 commmune は豊富な機能を持ちそれに合わせいくつものデータを保持しているので、永続化のためのテーブルが多く存在します。 また、テーブル定義としてはリレーションを持つが、Sequelizeのロジック上使用しないことが理由でモデルファイルにそのリレーションが記述されていないこともあります。 そのため、新規参入者がテーブル全容を把握するのに苦労しています。(そもそも長く開発に関わっている人でも知らないテーブルがあったりする。) そんな問題を解決するために、S

    Sequelize のモデル定義ファイルからER図を作成してみた - Commune Engineer Blog
    toshikish
    toshikish 2023/01/05
  • 社内向けテスト設計プロセスを作ってみた - Commune Engineer Blog

    QAの須賀(@kawabeaver)です。 先日QA Test Talk Vol.2で「自分たちのテスト設計プロセスを作ろう」というタイトルで、テスト設計プロセスを作る思考過程について発表させていただきました。(発表資料はこちら) 外部イベントで発表するのは初だったので緊張して「出社推奨日」がうまく言えませんでしたが、楽しい時間を過ごせました。 さて、記事では、上記発表で少し紹介したテスト設計プロセスについて説明したいと思います。 テスト設計のやり方に悩んでいる方、他の人のテスト設計を教える立場の方などのお役になれば幸いです。 テスト設計とは何か テスト設計はなぜ必要か テスト設計プロセスをなぜ作ったか テスト設計プロセス作成のゴール テスト設計プロセスの内容 テスト対象を洗い出す テスト対象について、テスト条件に関する情報を洗い出す テストすべきテスト観点を洗い出す 各テスト観点に対し

    社内向けテスト設計プロセスを作ってみた - Commune Engineer Blog
    toshikish
    toshikish 2022/12/20
  • 問題を早期発見して開発体験を上げる試み - Commune Engineer Blog

    はじめに こんにちは。2022 年 7 月に入社したエンジニアの浅見(@astatsuya1)です。 今回は 20%ルールで実施した問題の早期発見をして開発体験を上げるために行ったことを紹介します。 はじめに コミューンの 20%ルールとは 何をやるか考えた commmune の開発における問題と課題 問題:問題の発覚が遅くなると多くの人を巻き込んでしまう 課題:出来るだけローカル環境で問題を検知したい 施策 ①:検知する項目を増やす リントでチェックする項目を増やす ローカル開発のみでしか使用しないconsole.logに警告を出す ローカル開発でのみしか使用しないtest.only, test.skipに警告を出す 英語のスペルチェックをする 施策 ②:ローカルでも出来るだけ早く検知出来るようにする コードを書く時のチェック Visual Studio Code の拡張を共有 書いたコ

    問題を早期発見して開発体験を上げる試み - Commune Engineer Blog
    toshikish
    toshikish 2022/11/08
  • コミューンの20%ルールって何?? - Commune Engineer Blog

    初めに こんにちは。ソフトウェアエンジニアの近藤です! 2022 年 8 月からコミューンに入社し、当社サービスの commmune の開発チームで、フロントエンドおよびバックエンドの開発に携わっております。 今回は具体的な技術の話ではなく、コミューンの開発チームの取り組みである 20%ルールについてご紹介します。 初めに 20%ルールについて なぜ緊急度の低い課題を解決することが大事なのか 具体的な運用方法 私が実際に 20%ルールを行い感じたメリットと課題 具体的に実施された事例の紹介 私が今後 20%ルールを使って取り組みたいこと まとめ 20%ルールについて Google などのイノベーティブな企業でも導入している 20%ルールですが、当社では下記のような運用ポリシーで行っています。 各自の業務時間の 20%を技術課題の改善に充てる。自分のマネージャーと相談しながら時間の調整などを

    コミューンの20%ルールって何?? - Commune Engineer Blog
    toshikish
    toshikish 2022/11/02
  • Cloud Build上でNext.jsのコンテナイメージのビルド速度を改善した話 - Commune Engineer Blog

    はじめに SREチームの磯村です。 去年入社してからフロントエンドエンジニアとして働いていましたが今年6月からはSREチームに転属しました。 SRE見習いとして奮闘中です。 コミューンはアプリケーションの基盤としてGoogle CloudのCloud Runを利用しています。 そしてCloud Runで実行するコンテナイメージをCloud Build上でビルドしています。 この記事ではCloud Build上でのコンテナイメージのビルド速度を改善した事例を紹介します。 今回やったこと コミューンでは動作確認用の環境(develop環境と呼ばれています)や番環境へのデプロイに20分以上かかってしまうことが頻繁に発生していました。 場合によっては29分もの時間がかかってしまう場合もありました。 このような長いデプロイ時間はメインブランチにマージできるPRの数を減少させ、変更のリードタイムを悪

    Cloud Build上でNext.jsのコンテナイメージのビルド速度を改善した話 - Commune Engineer Blog
    toshikish
    toshikish 2022/10/18
  • 業務開発と個人開発で相乗効果を出すことができ、良い手応えを感じた話 - Commune Engineer Blog

    はじめに こんにちは。コミューン株式会社でソフトウェアエンジニアをしている板倉です。2022 年 5 月にコミューンに入社してから、モバイルアプリチームに所属しており、Flutter を用いたモバイルアプリ開発を担当しております。 Flutter はプライベートでも使用しており、個人でモバイルアプリを開発・リリースしております。 業務開発と個人開発で同じ技術(今回は Dynamic Links)を使うことにより相乗効果が出て、良い手応えを感じられることがあったため、この記事で紹介させていただければと思います。 はじめに 業務開発での Dynamic Links の利用 Dynamic Links 経由の遷移処理の実装 個人開発での Dynamic Links の利用 ショートリンク生成の実装例(REST API 使用) 動作確認を通じて得られた気づき 社内での知見共有 まとめ おわりに 業

    業務開発と個人開発で相乗効果を出すことができ、良い手応えを感じた話 - Commune Engineer Blog
    toshikish
    toshikish 2022/10/11
  • 新規プロダクト開発記 〜どうしたら業務知識をコードに落とし込めるのか〜 - Commune Engineer Blog

    はじめに はじめましてこんにちは。2021 年 11 月にコミューンに入社した中野です。現在は SuccessHub というコミューンの新たなプロダクトを開発しています。 この記事では新規プロダクトの開発を通して、筆者が「どうしたら業務をコードに落とし込めるのか」実践したことをお話しします。 はじめに 背景 まずは書いてみた 業務知識をヒアリングする 核となるモデルを作る モデル同士の関係や階層を確認する コードで表現する なぜ業務知識を理解することが必要なのか 終わりに 背景 SuccessHub の開発を始めて数ヶ月経った頃、カスタムフィールドという機能を作ることになりました。 カスタムフィールドとは簡単に言うと、クライアントが保持している顧客データを自由なフォーマットやカラム名にカスタマイズしてテーブルUIに表現できる機能です。 [カスタムフィールド] 日付をYYYY年MM月 や Y

    新規プロダクト開発記 〜どうしたら業務知識をコードに落とし込めるのか〜 - Commune Engineer Blog
    toshikish
    toshikish 2022/10/04
  • ERモデルを使ったデータモデリングを行う際に意識していること - Commune Engineer Blog

    はじめに はじめまして、2022年3月中旬にコミューン株式会社に入社した西山です。 普段はフロントエンドエンジニアとして開発業務に携わっています。 この記事では、私がERモデルを使ったDBのデータモデリング(以下、データ設計)を行う際、特に意識していることを3つ紹介します。 尚、具体的にユースケースからエンティティを抽出する方法や、チューニングなどの物理設計については触れません。 前提 まずは私がデータ設計とどのように関わってきたかについて紹介します。 前職までのキャリアでは、フルスクラッチの受託開発案件をごく少人数で開発しており、利用者に業務を伺ってデータ設計をする、ということも度々行なっていました。 システムの用途としては一般公開されない、所謂「業務アプリ」「業務システム」といった企業内での利用を想定したものや、限定された一部の利用者に向けたものです。 また規模としては大きくなく、多

    ERモデルを使ったデータモデリングを行う際に意識していること - Commune Engineer Blog
    toshikish
    toshikish 2022/09/13
  • 『Terraform と gcloud CLI を使用した完璧な Google Cloud インフラストラクチャの構築』は本当に完璧なのかやってみた - Commune Engineer Blog

    はじめに コミューンのインフラにおける課題 使ってみた 既存のGCPのリソースをTerraform形式でエクスポートする main.tfを作成する 既存のGCPリソースをインポートする terraform planで実行計画を見る 1. google_compute_route 2. google_compute_ssl_certificate 3. google_storage_bucket 4. google_logging_log_sink 検証結果 感想 良い点 GA版に期待すること さいごに エンジニア募集中! 注釈 注1 注2 はじめに SREチームの川岡です。 もうそろそろコミューンのインフラをコード化しなきゃと考えていたときに、Google Cloudのブログで『Terraform と gcloud CLI を使用した完璧な Google Cloud インフラストラクチャの

    『Terraform と gcloud CLI を使用した完璧な Google Cloud インフラストラクチャの構築』は本当に完璧なのかやってみた - Commune Engineer Blog
    toshikish
    toshikish 2022/08/08
  • 日本のSaaSスタートアップが世界で戦うためのプロダクトを開発するということ - Commune Engineer Blog

    こんにちは。昨年の11月にエンジニアとしてコミューンに入社したざびえる(仮名)です。 コミューンは、CEOのブログ「進出して分かった日アメリカのSaaSプロダクトニーズの違い|高田優哉/commmune|note」にもある通り、アメリカ進出をしており、私はその開発担当をしています。 この記事では、海外展開に関わるようになった経緯や、プロダクトのグローバル化をどのように進めているか、そして今後のグローバル化の課題などをお話しようと思います。 GlobalPJ参加の経緯 新卒でWebエンジニアとして働き始めてから常々「日初のソフトウェアプロダクトで世界的に使われるものってないな。いつかそういうプロダクトが出て来れば日のソフトウェア業界ももっと盛り上がって、優秀な人がソフトウェアエンジニアとして集まってくるだろうに」と思っていました。 一つ思い当たるのはプログラミング言語のRubyですが

    日本のSaaSスタートアップが世界で戦うためのプロダクトを開発するということ - Commune Engineer Blog
    toshikish
    toshikish 2022/07/25
  • 1人目のQAエンジニアが感じるコミューンの魅力 - Commune Engineer Blog

    はじめに コミューン株式会社でQAマネージャーをしている須賀(@kawabeaver)です。 今回は1人目のQAエンジニア視点でコミューンの魅力についてお話します。 1人目のQAエンジニアとして転職を考えている方、1人目のQAエンジニアの採用を検討している方に1人目のQAエンジニアにとってどのような環境が望ましいかを考える参考になれば幸いです*1。 もちろん、この記事をきっかけにコミューンに興味を持っていただける方が増えると嬉しいです! コミューンを転職先に選んだきっかけ 私は前職に約7年半お世話になりましたが、働く環境は良かったので前職に不満があったわけではありません。ただ、前職は私が入社した時点でQAチームの体制が整っていたため、今回はQAチームの体制が整っていない環境でチャレンジすることに決めました。 新たなことにチャレンジする場合、私は業務内容がチャレンジングであるだけではなく、チ

    1人目のQAエンジニアが感じるコミューンの魅力 - Commune Engineer Blog
    toshikish
    toshikish 2022/07/19
  • 良いコンポーネントを作るために気をつけている3つのこと - Commune Engineer Blog

    はじめに 良いコンポーネントとは 良いコンポーネントを作るためのポイント 1. コンポーネントを要素ごとに過不足なく分割する 2. コンポーネントの抽象度を揃える 3. 利用する側を意識せずにコンポーネントを作る 最後に はじめに こんにちは、コミューンでフロントエンドエンジニアをしている根岸です。 この記事では自分がフロントエンドのコンポーネントを作るときに気をつけていることを紹介します。 良いコンポーネントとは そもそも良いコンポーネント、良いコードとは何でしょうか? 私は プログラマが知るべき97のこと の 美はシンプルさに宿る という記事の下の一文に大きな影響を受けています。 特に重要なのが「シンプルである」ということです。アプリケーションやシステムが全体としてどれほど複雑であっても、個々の部分を取り出してみると、全てシンプルになっています。 重要なのはどんな複雑なアプリケーション

    良いコンポーネントを作るために気をつけている3つのこと - Commune Engineer Blog
    toshikish
    toshikish 2022/07/11
  • コミューンのアーキテクチャ選定 - Commune Engineer Blog

    はじめに そもそもcommmune って何? サービスの紹介 特性について 旧アーキテクチャとその問題点 問題1:増減するトラフィックに対してコスト最適なマシンスペックを設定するのが運用上難しかった 問題2:トラフィックのスパイクでサービスが過度に不安定になっていた 問題3:動作環境としてのVMの管理が煩雑になってしまっていた 打ち手としての新アーキテクチャ 新アーキテクチャ サービス選定の内訳 成果 新たな課題 最後に はじめに こんにちは。 前原夏樹と申します。 コミューン株式会社のSREチームでアクティングマネージャーをしています。 今日は当社のプロダクトであるcommmuneのアーキテクチャについてざっくり紹介していきたいと思います。 今回公開に至った動機としては知見の共有が最も大きいです。 運用負荷が比較的低いマルチテナントSaaSのアーキテクチャの具体的な一例として、どのような

    コミューンのアーキテクチャ選定 - Commune Engineer Blog
    toshikish
    toshikish 2022/06/20