並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 117件

新着順 人気順

monorepoの検索結果1 - 40 件 / 117件

monorepoに関するエントリは117件あります。 開発npmgithub などが関連タグです。 人気エントリには 『メルカリShops の技術スタックと、その選定理由 | メルカリエンジニアリング』などがあります。
  • メルカリShops の技術スタックと、その選定理由 | メルカリエンジニアリング

    こんにちは。ソウゾウの Software Engineer (CTO) の @suguru です。連載:「メルカリShops」プレオープンまでの開発の裏側の1日目を担当させていただきます。 7月末にメルカリShopsという新しいサービスが公開されました。メルカリShops は、2021年1月にメルカリのグループ会社として設立したソウゾウが新たに立ち上げたサービスです。 この記事では、メルカリShops を作るにあたり、どういった技術、アーキテクチャを選定したのか、その背景と意思決定をまとめて共有したいと思います。 monorepo まず最初にプロジェクトをスタートしたときに、サービスのリポジトリを作るのですが、迷わず monorepo による構成を選択しました。monorepo は、システムを構成する複数のコンポーネントの独立性を保ちつつ、全ての構成を1つのリポジトリで管理する手法です。今

      メルカリShops の技術スタックと、その選定理由 | メルカリエンジニアリング
    • 大きなGitリポジトリをクローンするときの工夫を図解します - DeNA Testing Blog

      こんにちは、SWETでCI/CDチームの前田( @mad_p )です。 SWETではCI/CDチームの一員として、Jenkins運用のサポートや、CI/CD回りのノウハウ蓄積・研究をしています。 はじめに Gitリポジトリをクローンすると、ローカルフォルダにはそのリポジトリの全体がダウンロードされ .git というフォルダに格納されます。ブランチをチェックアウトすると、ブランチ内のファイルがワーキングツリーとして展開されます。この様子を図にするとこのようになります。 この .git とワーキングツリーの使うディスク容量を節約しようというのが今回のお話です。特にJenkinsにおいて、大きめのGitリポジトリをクローンしてくる場合に課題があり、いろいろ工夫してみたので、その結果を紹介します。同じCI/CDチームの加瀬による記事「大規模リポジトリで高速にgit cloneするテクニック」と内容

        大きなGitリポジトリをクローンするときの工夫を図解します - DeNA Testing Blog
      • メルカリShops のフロントエンド | メルカリエンジニアリング

        こんにちは。ソウゾウの Software Engineer の hiroppy です。「連載:「メルカリ Shops」プレオープンまでの開発の裏側」 の最後は、Web フロントエンドの紹介をしたいと思います。メルカリ Shops は既存のメルカリアプリの中に独立した Web アプリケーションとして動いています。本記事では、どのようなライブラリを選定し、どのようにアーキテクチャを設計してきたかを解説します。 なぜ Web なのか? アプリの上で動いているのであれば、WebView ではなくても良いと感じる人はいると思います。今回採用した 1 つの理由としては、リリースが柔軟な点が挙げられます。iOS/Android の両方に対して開発サイクルを早めることが可能であり、また機能追加やバグ修正が容易です。どのように WebView で動いているかについては、6 日目のメルカリ Shops のため

          メルカリShops のフロントエンド | メルカリエンジニアリング
        • メルカリShops の CI/CD と Pull Request 環境 | メルカリエンジニアリング

          こんにちは!ソウゾウの Software Engineer の @dragon3 です。 連載:「メルカリShops」プレオープンまでの開発の裏側の8日目を担当させていただきます。 この記事では、メルカリShops 開発において、日々バリバリに利用されている CI/CD 環境と Pull Request 毎のデプロイ環境について紹介します。 CI/CD 環境 メルカリShops では、CI/CD (テスト・ビルド・デプロイ)やその他自動化のために GitHub Actions を使っており、ほとんどのワークフロー・ジョブを Self-hosted runners で実行しています。 Self-hosted runners は、専用の VPC ネットワーク 内の GCE インスタンス上で動かしており、Managed Instance Group 等を使い、そのプロビジョニングや起動・停止等は

            メルカリShops の CI/CD と Pull Request 環境 | メルカリエンジニアリング
          • モノレポにすべきか、レポジトリを分割すべきか

            先日 フロントエンドの Monorepo をやめてリポジトリ分割したワケ というブログがバズっていた。そのおかげか、Twitter でもモノレポに関する言及がちょこちょこあった。一家言あるドメインなので書きたい。ただの一家言(a.k.a お気持ち)なのでぜひ皆さんの意見も聞いてみたい。 tl;dr 別に自分はどっち派とかではなく、どっちも選ぶ。強いて言うならリポジトリ分割派で、依存更新がしんどくなったら monorepo 派。 免責 モノレポに対する一家言を書きたいだけであって、内容自体はフロントエンドの Monorepo をやめてリポジトリ分割したワケ と全く関係なく、そのブログで述べられている施策については何も言及しません。ただ一つ言及するとしたら肉の部位がコードネームに採用されているのは良いと思いました。🍖🍖🍖 モノレポにしたくなる状態の前提にあるもの 前提は元記事と同じように

              モノレポにすべきか、レポジトリを分割すべきか
            • メルカリShops の技術スタック、その後 | メルカリエンジニアリング

              こんにちは。ソウゾウのSoftware Engineer(CTO)の@suguruです。連載:メルカリShops 開発の裏側 Vol.2の1日目を担当させていただきます。 去年、2021年に開始した メルカリShopsの技術スタック についての記事を書きましたが、今回はリリースまでに採用した技術スタックが、半年通してどのようにアップデートしてきたかを共有したいと思います。 ローンチ時に採用した技術が、実際の運用でどのように変遷したのかを共有することで、技術スタックを考える際の何らかの参考になれば幸いです。 monorepo メルカリShops ではサービスに必要なコードを1つに集約する monorepo を採用しています。リリース後半年たってコード量はかなり増えてきましたが、monorepo に対する満足度は非常に高く、うまく機能しています。 サービス全体の見通しが良くなることと、すべての

                メルカリShops の技術スタック、その後 | メルカリエンジニアリング
              • GitHubのモノリスからマイクロサービスへのジャーニー

                Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                  GitHubのモノリスからマイクロサービスへのジャーニー
                • Turbo

                  Make Ship HappenTurbo is an incremental bundler and build system optimized for JavaScript and TypeScript, written in Rust.

                    Turbo
                  • GitHub における大規模なモノリポのパフォーマンスの向上

                    GitHub は、毎日 5600 万人以上の開発者にサービスを提供し、2 億以上のリポジトリをホストしています。これらのリポジトリのごく一部を除いて、世界中の顧客に驚くべきパフォーマンスでサービスを提供しています。 GitHub のような大規模なシステムでは、コードとアーキテクチャのずれというのは限界に達したときに初めて見つかるものです。例えば、何千人もの開発者が毎日同じリポジトリを更新するといったケースです。GitHub は、大規模なモノリポを使用する一部の顧客から、プッシュ操作が失敗するといったパフォーマンスの問題が発生しているというフィードバックを受けました。 そして、それは GitHub においても発生していました。 github/github は GitHub のモノリポですが、私達自身も時々プッシュに失敗することがありました。 調査を開始するにあたり、私たちは社内のチームや顧客

                      GitHub における大規模なモノリポのパフォーマンスの向上
                    • git statusが43秒かかっていたのを1秒に高速化する大規模Gitリポジトリの操作を高速化するためのscalarを紹介 | Act as Professional

                      Git 2.38がリリースされました。 このバージョンから大規模Gitリポジトリの操作を高速化するscalarが同梱されるようになりました。 今回はこのscalarによって、どれぐらいGitの操作が高速化されるのかを簡単に検証します。 結論から言うとgit statusが約43秒かかっていたのが約1秒で操作できるようになります。 Install Git 2.38Git 2.38からscalarが同梱されましたので、各自の環境にあわせてInstallなりVersionUpなりをしてください。 $ git --version git version 2.38.0 Before大規模Gitリポジトリとしてchromiumを利用しました。 普通にgit cloneしてきて、git statusを実施すると約37秒かかります。 ❯ time git status On branch main You

                        git statusが43秒かかっていたのを1秒に高速化する大規模Gitリポジトリの操作を高速化するためのscalarを紹介 | Act as Professional
                      • TypeScriptのモノレポ構成を考える

                        はじめにlink あまりモノレポの構成について語られている記事が多くないなと感じたので、現時点で自分が考えている設計をまとめてみる。 以前にTwitterでディレクトリ構成と内容については言及したが、実際に利用する技術についてはあまり触れなかったので改めて検証してみた。 https://twitter.com/koh110/status/1617510034266808322 クライアントサイドとサーバーサイドのコード共有については下記の記事がよくまとまっていた。 https://capelski.medium.com/effective-code-sharing-in-typescript-monorepos-475f9600f6b4 上記の記事の構成も参考にしつつ、自分の考えも加えて検証していく。 相対パスを利用する方法 npmのローカルパス指定(file:xx)を利用する方法 シンボ

                          TypeScriptのモノレポ構成を考える
                        • 2022年に試した開発ワークフロー関係の機能やツール - Kengo's blog

                          数えてみたら意外と数あったのでまとめます。 release-please Google謹製のリリース自動化ツール。monorepo対応のRelease Drafterという感じですが、リリースはDraft Releaseの安定版への昇格ではなく、PRのマージによって行います。PRでリリースするという点ではgit-pr-releaseぽいですが、ブランチは main だけでリリースブランチは無い感じ。changesetsよりはとっつきやすい印象です。 github.com 例えば↓のようなワークフローを用意すれば、モジュールごとにGitHub Releaseを作成するためのPRを自動作成できます。 初期セットアップでJSONファイルを2つ作る必要があるのが若干面倒ですが、それさえ越えてしまえば考えることは少なさそうです。 # .github/workflows/release-please.

                            2022年に試した開発ワークフロー関係の機能やツール - Kengo's blog
                          • kintone フロントエンドリアーキテクチャプロジェクトで大切にしていること - Cybozu Inside Out | サイボウズエンジニアのブログ

                            kintone フロントエンドリアーキテクチャプロジェクトリーダーの @koba04です。 昨年末から、kintone フロントエンドリアーキテクチャをプロジェクト(フロリア)として再構成してスタートさせました。フロリアという名前は社内での公募により決定しました。 今回はプロジェクトで目指していることについて紹介します。本プロジェクトの開始前に Cybozu Meetup で話したスライドや動画も公開されているのでよければ見てください。 speakerdeck.com www.youtube.com これまでの取り組みについては下記の記事にて紹介しています。 blog.cybozu.io 3 行まとめ フロリアのゴール 全てのページが React によって表示されている​ 現状 今後 フロントエンドが技術的にもチーム的にも分割されている​ モノリスな構成からの脱却 アーキテクチャとチーム(

                              kintone フロントエンドリアーキテクチャプロジェクトで大切にしていること - Cybozu Inside Out | サイボウズエンジニアのブログ
                            • フロントエンドの Monorepo をやめてリポジトリ分割したワケ - カミナシ エンジニアブログ

                              こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシのプロダクトは、管理者の方が使う Web アプリに React、現場の方が使う iPad / iPhone アプリに React Native を採用しています。 どちらもフロントエンドの技術スタックを採用していることもあり、先日までは Monorepo と Yarn Workspaces の構成で運用されていました。 最近では Monorepo 化を進めている事例もよく見かけるようになってきました。 engineering.mercari.com devblog.thebase.in ですが、カミナシでは Monorepo をやめてリポジトリ分割をする意思決定を行いました。 具体的には、harami_client という Monorepo を harami_web と harami_mobile とい

                                フロントエンドの Monorepo をやめてリポジトリ分割したワケ - カミナシ エンジニアブログ
                              • Monorepo Explained

                                Everything you need to know about monorepos, and the tools to build them.- Made with love by Nrwl (the company behind Nx) Understanding Monorepos Monorepos are hot right now, especially among Web developers. We created this resource to help developers understand what monorepos are, what benefitsthey can bring, and the tools available to make monorepo development delightful. There are many great mo

                                  Monorepo Explained
                                • KubernetesにおけるCI/CD実践の勘所まとめ · Goldstine研究所

                                  こちらの反響もよかったこともあり、KubernetesにおけるCI/CD(継続的インテグレーションと継続的デリバリー)に焦点を絞って、いままでの経験も含めて大事なポイントをいくつかの切り口でまとめることにしました。 一部は書籍の内容とかぶる部分もあるのですが、わたしが普段Kubernetesでのアプリケーション運用に携わる中で大事だと思うことなど含めてご紹介します。 KubernetesにおけるCI/CDとしていますが、項目は必ずしもKubernetesに限った話ではありませんのでご了承ください。 また、もっといろんなトピックを書きたいのですが、すべてのトピックを揃えると記事自体のボリュームも大きくなり公開も遅くなりそうだったので、基本的な内容のみ選んでみました。随時追加されていく(あるいは別記事?)可能性があります。 ブランチ戦略 CI/CDの実践にまず根本的に関わるポイントとして、ブラ

                                    KubernetesにおけるCI/CD実践の勘所まとめ · Goldstine研究所
                                  • Next.js アプリケーションの共通コンポーネント開発 - クックパッド開発者ブログ

                                    こんにちは。レシピサービス開発部のkaorun343です。クックパッドではスマートフォン向けページにおける開発者体験向上のために、レシピサービスのフロントエンドを Next.js と GraphQL のシステムに置き換えている話にて紹介したとおり、Next.jsとGraphQLを用いたモダンな環境へと移行を進めています。例えばモバイル端末からのアクセスでURLがトップページの / であれば Rails、レシピ詳細ページの /recipe/:id であれば Next.js アプリにルーティングされるようになっています。現在ではレシピ詳細ページだけではなく検索結果ページやつくれぽ詳細ページ、MYフォルダページなどもNext.jsアプリケーションに置き換わっています。今回はその移行により生じた課題と取り組み方、それから併せて実施したモノレポ環境整備について紹介します。 共通コンポーネントの導入背

                                      Next.js アプリケーションの共通コンポーネント開発 - クックパッド開発者ブログ
                                    • CommonJSからES Modulesへの移行する方法。トップダウンかボトムアップか

                                      Secretlint v7でCommonJS からES Modulesへの移行を行いました。 Secretlint v7.0.0をリリースしました。Pure ESMへの書き直し この記事では、CommonJS(CJS)からES Modules(ESM)への移行を行った経緯と、移行する方法について紹介します。 CJSからESMへの移行は、率直に言えば単調な作業で、メリットが見えにくい作業です。 しかし、将来的にCJSよりもESMが主流になることは間違いないので、移行することは必要です。 移行の作業は、移行方法が決まれば大部分は機械的な書き換えが可能です。 では、実際にどうやって移行したのかを紹介します。 ESMへの移行の影響は依存元へと連鎖する Secretlintのリポジトリはmonorepoになっていて、だいたい40コぐらいのパッケージが含まれています。 そしてパッケージ間で依存関係があ

                                        CommonJSからES Modulesへの移行する方法。トップダウンかボトムアップか
                                      • フロントエンドのモノレポ構成はスケーリングの夢を見るか | サイボウズ フロントエンドエキスパートチーム

                                        それっぽいタイトルを付けましたが特に意味はないです。 workspace を使ったコマンドを最適化して実行する Turborepo についてのお話で Turborepo を軽く触ってみた際にnpx create-turbo@latestで作られる構成がとてもわかりやすく、プロダクトの初期段階からモノレポを採用するのは選択肢の 1 つとしていいのでは、と思い続編を書きました。 前回と同じくサンプルのリポジトリはこちらになります。 https://github.com/nus3/p-turborepo/tree/main/yarn 概要 モノレポを採用することで、同一リポジトリ内で自作した汎用的なライブラリやコンポーネントを複数のアプリケーションで使いまわせる モノレポの規模が大きくなってきた場合には、モノレポ内のパッケージを npm に公開することでアプリケーションとパッケージを非同期に開発

                                          フロントエンドのモノレポ構成はスケーリングの夢を見るか | サイボウズ フロントエンドエキスパートチーム
                                        • TypeScript・モジュラーモノリスによる型安全なWebサービス開発

                                          こんにちは。SALESCORE株式会社CTOの成澤です。 祝・Publication機能のオープンβリリース🎉🎉 ということで、SALESCOREのテックブログを発信し始めます! テックブログの一発目ということで、2022年で一番開発体験が変わったTurborepoによるモノレポ・モジュラーモノリスによる開発について紹介します。 今後もTypeScriptでのWebサービス開発について記事を出していく予定なので、気になる話題などあればコメントいただけるととても嬉しいです🙋‍♀️ モジュラーモノリスという選択肢 ソフトウェア開発における重要な要素の1つは抽象化です。 抽象化をあえて噛み砕いて、平坦な言葉で言うならば 「適切なグルーピング」 と呼んでも良いでしょう。抽象化とは、ものごとをグルーピングして、適切な名前を与えることです。 100行の処理の羅列は分かりづらいが、10行ずつグルー

                                            TypeScript・モジュラーモノリスによる型安全なWebサービス開発
                                          • GitHub - google/wireit: Wireit upgrades your npm/pnpm/yarn scripts to make them smarter and more efficient.

                                            You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                              GitHub - google/wireit: Wireit upgrades your npm/pnpm/yarn scripts to make them smarter and more efficient.
                                            • Git submoduleを使ってマルチリポジトリなMonorepoを管理する

                                              LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog こんにちは、LINEフロントエンド開発センターの玉田です。新春を名乗るにはすこし遅いですが、昨年開催した「UIT新春Tech blog」を今年も開催します! 本日から5日間4日間、フロントエンド開発に携わるUITのエンジニアが毎日持ち回りで記事を公開します。ぜひ最後まで見に来てください。 Monorepo フロントエンドにおけるMonorepo toolは、大規模なフロントエンド開発を効率よく管理する手段として、ここ数年で普及が進みました。LernaやNx、npmやyarnのWorkspace機能など、すでに皆さんも使っている例があるかもしれません。 Monorepoを実現するツールはいくつかありますが、どのツールも共通して以

                                                Git submoduleを使ってマルチリポジトリなMonorepoを管理する
                                              • 同じビルドやテストを何度も実行しない方法 - コンポツさん

                                                GitHub Actions で同じビルドやテストを何度も実行しない方法を紹介します。 ホストランナーを ubuntu-linux にした場合、実行する必要のないジョブは 10 秒程度でスキップ可能です。 注意 この記事は自作の OSS ツール sver および私が現在所属するサイボウス社の グローバル向けAWS版kintone開発チーム の宣伝が含まれます。 Summary ビルドやテストといった CI のジョブに再現性がある場合は複数回実行しても意味がない ジョブが依存する環境やソースコードを元にハッシュ値を計算することで同等なジョブに一意なラベルをつけられる ジョブ実行後に実行済みラベルを artifact として保存しておくことで後続の同等なジョブをスキップできる 効果 最初に効果を示します。 sver というプロジェクトのジョブの実行結果です。 これは通常時のジョブの実行時間です

                                                  同じビルドやテストを何度も実行しない方法 - コンポツさん
                                                • Amplify + Nx (React + Typescript) で爆速で monorepo 環境を構築する - Techtouch Developers Blog

                                                  この記事はテックタッチアドベントカレンダー9 日目の記事です。 8 日目は ポエマー masaru 氏による 少女に何が起ったか ~少女が他人のウェブサーバー構成を知るまでにやったいくつかのこと、そしてその結末~ でした。 ただのポエムかと思いきやかなりコアなセキュリティの話だったのでとても勉強になりました。 テックタッチのフロントエンドエンジニアの taka です。 最近テックタッチでは、品質を更に向上させるため、また今後開発を加速できるようにするためにコードを一新しました。 そこで Amplify と Nx を使って monorepo の開発環境を構築したので、その手順を記しておこうと思います。 ざっくり言うとこれらを使うことで、 monorepo の環境を簡単にセットアップしたい React + Typescript で開発したい ESLint や Jest などの開発ツールを使いた

                                                    Amplify + Nx (React + Typescript) で爆速で monorepo 環境を構築する - Techtouch Developers Blog
                                                  • LernaとYarn WorkspacesでMonorepo管理 - Cybozu Inside Out | サイボウズエンジニアのブログ

                                                    こんにちは、フロントエンドエキスパートチームの小林(@koba04)です。 本記事では、Lerna と Yarn Workspaces を使った Monorepo 管理について解説します。 Monorepoとは 本記事では、単一のリポジトリで複数のモジュールやパッケージ(今回の場合は npm パッケージ)を管理する手法を Monorepo と呼んでいます。 有名なところだと、Babel や Jest、Create React App などが後述する Lerna を使い複数パッケージを単一のリポジトリで管理しています。 他にも React も Lerna は使っていませんが単一リポジトリで複数パッケージを管理しています。 また、上記のようなライブラリ以外にも企業で利用している npm パッケージを Monorepo として管理している例もあります。下記は Shopify の例です。 pack

                                                      LernaとYarn WorkspacesでMonorepo管理 - Cybozu Inside Out | サイボウズエンジニアのブログ
                                                    • 医療スタートアップのバックエンドをモノレポ化した話 〜戦略・プロセス編〜 - 株式会社ヘンリー エンジニアブログ

                                                      こんにちは、ヘンリーの Lead Architect の @kohii です。 弊社ではレセコン一体型クラウド電子カルテの Henry を開発・提供しています。 最近 Henry のバックエンドをモノレポ化したので、その戦略やプロセスについて書きたいと思います。 こちらは前編となっており、モノレポ移行の手法やテクニックの話は後編で説明します。 dev.henry.jp Why モノレポ? ざっくり説明すると、既存のマイクロサービス/チームの分界点を抜本的に見直し、ドメイン(業務の領域)による分割を目指すため、一旦モノレポにまとめて、理想的な構造の切り出しをやりやすくするという目的です。 モノレポ化前のシステム/チームアーキテクチャ バックエンド Henryのバックエンドはマイクロサービスになっていますが、以下の2つのサービスが大部分を占めています。 henry-general-api …

                                                        医療スタートアップのバックエンドをモノレポ化した話 〜戦略・プロセス編〜 - 株式会社ヘンリー エンジニアブログ
                                                      • [TypeScript]モノレポ管理ツール比較検討

                                                        モノレポ管理のツールを検討したときのメモ Background 自分が所属するチームで開発する JavaScript/TypeScript のプロダクトが増えてきて、同じような内容のリポジトリがいくつも存在している(n個とする)。 変更を加えていくにつれて、それぞれの差分が大きくなり、以下のような問題が発生する。 開発が止まっているプロジェクトの構成が古くなり、修正コストが発生する 開発が複数同時進行している場合、同じような実装を手動で同期する必要がある これらは共通の基盤等があれば効率的に(理想的にはn分の1の労力で)開発が可能であり、将来的なコストを考えると、いまのうちにその仕組みを考えておきたい。 Proposed Solutions 要件は以下 複数のパッケージをnpmとしてpublishできる アプリケーションも管理できる Nx, Rush, Lerna を主要な選択肢としている

                                                          [TypeScript]モノレポ管理ツール比較検討
                                                        • Monorepo開発のメリット vs デメリット

                                                          Monorepoとは? Monorepo(モノレポ)とは、アプリケーションやマイクロサービスの全コードを単一のモノリシックなリポジトリ (普通は Git) に保存するパターンを指します。 一般的には、さまざまなアプリ コンポーネントのコードをサブフォルダーに分割し、新機能やバグ修正には Git ワークフローを使用します。 モノリシック アーキテクチャでアプリケーションやシステムを開発するのであれば、たいていは、こうしたアプローチを自然と採用することになります。 通常、このようなMonorepoでは、コードから実行可能なアプリケーションを生成するビルド パイプラインも 1 つだけです。この手法は、メンテナンスはしやすいのですが、全体的な開発速度は落ちます。修正に手間のかかるバグが少しあるだけで、リリース候補版を本番環境にデプロイできなくなってしまうからです。 この記事では、Monorepoと

                                                            Monorepo開発のメリット vs デメリット
                                                          • Webサービス開発でのmonorepo環境(Turborepo, nx)

                                                            Webサービス開発の文脈で、モノレポ環境を作る方法について整理しました。 ※バックエンドもフロントエンドも全てTypeScriptで開発している前提 この記事を書いた背景 世間で言われる「モノレポ」がどのように達成されているのか知らなかった 参考記事を読んでると実現方法が異なっていたり、運用のイメージが見えなかったり、ベストプラクティスが分かりづらかった Turborepoのようなモノレポツールを導入すれば解決しそうだが、このツールが何をしてくれるのか理解できなかった モノレポ何も分からない………になった この記事ではモノレポに関連する仕組みを1つ1つ丁寧に把握し、最終的に理想的なモノレポ環境を実現することを目指します。 モノレポとは? まずは用語の整理から。 モノレポを素直に訳せば「1つのリポジトリ」という意味でしかなく、1つのリポジトリで開発していればそれは「モノレポ」と呼べそうです。

                                                              Webサービス開発でのmonorepo環境(Turborepo, nx)
                                                            • A developer productivity tooling platform. | moonrepo

                                                              For repositories with multiple projects, any number of languages, and team members constantly pushing changes, moon will help simplify the experience of working in and maintaining a complex monorepo. Learn more about moon

                                                              • Bazelとモノレポ

                                                                モンスト事業本部SREグループの伊藤です。 普段はモンストに関するシステムの改善・運用を様々な面から行っています。 運用で使われる大小様々なツールを作ることもしばしばあるのですが、このリポジトリ運用が少し特徴的なので紹介をしたいと思います。 リポジトリ運用を一言で表せばモノレポで運用しています。 大小様々なツールがすべて一つのリポジトリに入っています。 ツールのソースコードに限らずKubernetesのマニフェストも同じリポジトリに入っていますしDockerfile等も入っています。(Dockerfileはそんなに多くはないです。Dockerfileを使わずに作成されているコンテナも多いので。これに関しては別の機会に) ツールを書く時に使われる頻出な処理はライブラリとして分割されているものもあります。そのライブラリも同じリポジトリに入っています。 このリポジトリは一切外のリポジトリに依存し

                                                                  Bazelとモノレポ
                                                                • メルカリShops での monorepo 開発体験記 | メルカリエンジニアリング

                                                                  こんにちは!ソウゾウのSoftware Engineerの@ogataka50です。連載:「メルカリShops」プレオープンまでの開発の裏側の9日目を担当させていただきます。 1日目の記事「メルカリShops の技術スタックと、その選定理由」にあった通りメルカリShopsではMonorepoで開発を行なっています。この記事では主にSoftware Engineerとして、DX (Developer eXperience)の観点からPJ初期からMonorepo上で開発を進めていった中で経験したこと感じたことを実際に起きた出来事とともに共有したいと思います。 Monorepoとは Monorepoとは単一のリポジトリに特定のプロジェクトのコードをすべて含めるパターンです。 下記のような利点があると言われています。 コードの可視性 統一されたバージョン管理, Single Source of T

                                                                    メルカリShops での monorepo 開発体験記 | メルカリエンジニアリング
                                                                  • Monorepos in JavaScript & TypeScript

                                                                    Follow on FacebookThis is a comprehensive tutorial on Monorepos in JavaScript/TypeScript --- which is using state of the art tools for these kind of architectures in frontend applications. You will learn about the following topics from this tutorial: What is a monorepo?How to structure a monorepo architecture?How to create a monorepo?Which tools to use for a monorepo?How to perform versioning in a

                                                                      Monorepos in JavaScript & TypeScript
                                                                    • フロントエンドエコシステムで効率化する組織開発

                                                                      jsconf 2022

                                                                        フロントエンドエコシステムで効率化する組織開発
                                                                      • BASEフロントエンド Monorepo 化の取り組み - BASEプロダクトチームブログ

                                                                        はじめに フロントエンドエンジニアの @mk0812 です。自分は普段BackOfficeというチームで新規機能開発を担当しています。 この記事ではBASEのフロントエンド周りの事例として「Monorepo」を紹介します。 エンジニアの皆さんなら1度は聞いたことあるかもしれませんが、BASEではここ最近Monorepoにしていきました。 具体的にどこをMonorepoにしてるかというとBASEの管理画面にある基本機能とBASE Appsです(下図)。 前者はBASE管理画面で使用する機能を指しており、後者はショップにより充実した設定を追加したり、新しい機能が必要となる時に追加できる機能で、数多く提供されていて、その機能単位もしくはApp単位でMonorepo化されています。 基本機能とBASE Apps Monorepo とは 「Monorepo」とは単一のリポジトリである特定のプロジェク

                                                                          BASEフロントエンド Monorepo 化の取り組み - BASEプロダクトチームブログ
                                                                        • 🌕 moonでのmonorepo管理とpackemonでのCJS/ESMのdual package

                                                                          🌕 moonでのmonorepo管理とpackemonでのCJS/ESMのdual package 🌕 moon 一貫性を持ったmonorepo管理ツール for JavaScript ハッシュを使ったファイルキャッシュ プロジェクトのパッケージ間の依存関係の分析とタスク実行 Node.js/npmパッケージマネージャーのバージョン管理と一貫性 TypeScriptのProject Referendcesの一貫性 比較 Nx: The Framework + Pluginで拡張する Lerna: Nx傘下、ライブラリ公開向け Turborepo: タスク実行の最適化をする moon: monorepoでの一貫性を提供する Packemon: moonと同じ作者。ESM/CJSのライブラリ公開向け 比較(言語) Nx: TypeScript + C++[^1] Turborepo: Go

                                                                          • モノレポにおけるback/front間のPrismaの型共有の方法

                                                                            詳しい方いたら教えてください。めっちゃ欲しい情報ですん。 別にモノレポでなくてもいいんですが、backend/frontendをTSで開発されてる場合Prisma入れてる気がするのですがそういう時の型共有の方法、ggってもあまり出てこない気がする。 Prisma とは Node.jsのORMです。かなり使いやすくて気に入ってます。 スターもたくさんついてますね。 お金もたくさん調達できてるみたいでいい感じです。 Prismaの型の生成 参考: Set up Prisma 上記ページをもとにサクッとinstallすると /prisma に schema.prismaというファイルが生成されます。そのファイルに、例えばこんな感じでスキーマを定義してみます。 // ユーザー model User { id String @id @default(cuid()) slug String @uniq

                                                                              モノレポにおけるback/front間のPrismaの型共有の方法
                                                                            • 言語が違う複数のリポジトリをmonorepoへ移行した話

                                                                              割とよくある構成かなと思いますが、私たちは主に "ドキュメント管理の難しさ"と"共有リソースの管理コスト"、"分業制によるチーム内の分断" に課題感を持っていました。それぞれの問題とそれらが解決されどのようになったかを詳細に見ていきましょう。 抱えていた問題とMonorepo移行後 私たちが抱えていた問題がmonorepo移行によってどのように解決されたかをまとめます。 ドキュメントが分散して探しにくい問題 Before プロジェクトに関するドキュメントが複数のリポジトリに分散するためにドキュメントの検索性や一覧性が低下しており、私たちのプロジェクトについて知りたい人が情報を探すのが難しい問題がありました。他方で、私たち自身も、どこに情報を残すかで迷うことも少なくありませんでした。 After プロジェクトに関する情報が1つのリポジトリに集約されたため、ドキュメントの探しやすさが向上しまし

                                                                                言語が違う複数のリポジトリをmonorepoへ移行した話
                                                                              • 医療系スタートアップのバックエンドをモノレポ化した話 〜技術編〜 - 株式会社ヘンリー エンジニアブログ

                                                                                こんにちは、ヘンリーの SRE の戸田と Wildcard Engineer の岩永です。 弊社ではレセコン一体型クラウド電子カルテの Henry を開発・提供しています。 前編の Henry のバックエンドをモノレポ化した戦略やプロセスに続いて、後編のこちらの記事ではモノレポ化の技術的手法を解説します。 dev.henry.jp 実際のモノレポ化の流れに沿って、ポイントを3点説明します。 2つの git リポジトリのマージ アプリケーション・ワークフローのモノレポ対応 モノレポへの切り替え当日に向けた手順書の作成 1. 2つの git リポジトリのマージ 今回のモノレポ化においては、もともと存在していた henry-general-api と henry-receipt-api という2つのマイクロサービスのリポジトリを、1つのリポジトリにマージし、それぞれのマイクロサービスがサブディレ

                                                                                  医療系スタートアップのバックエンドをモノレポ化した話 〜技術編〜 - 株式会社ヘンリー エンジニアブログ
                                                                                • モノレポについての誤解 - Misconceptions about Monorepos: Monorepo != Monolith を翻訳しました | Graat(グラーツ)-グロース・アーキテクチャ&チームス株式会社

                                                                                  モノレポについての誤解 - Misconceptions about Monorepos: Monorepo != Monolith を翻訳しました unsafe:このドキュメントは、モノレポについて書かれた記事 Misconceptions about Monorepos: Monorepo != Monolith (https://blog.nrwl.io/misconceptions-about-monorepos-monorepo-monolith-df1250d4b03c) を、筆者であるVictor Savkin氏の許可を得て翻訳したものです。 複数のプロジェクトを同一のリポジトリで運用する モノリシックリポジトリ(モノレポ)― この記事では、モノレポを使う際によくある誤解とその対策、モノレポが持つ本当の課題と利点がまとめられています。モノレポはガチガチの「一枚岩(モノリス)」

                                                                                    モノレポについての誤解 - Misconceptions about Monorepos: Monorepo != Monolith を翻訳しました | Graat(グラーツ)-グロース・アーキテクチャ&チームス株式会社

                                                                                  新着記事