起動OS
Google のオープンソース スタックとクラウドへの展開の例。
スタック内の主なテクノロジーは次のとおりです。
実践的な体験
次の Google Cloud Shell チュートリアルをお試しください。
Bazel で構築された多言語コード書式設定ツール:
フィールドと列挙型の名前変更 API の下位互換性 1: 名前を変更した後でも、新しいリリースで古いデータを読み取ることができる方法:
フィールドと列挙型の名前変更 API の下位互換性 2: 古いリリースが壊れることなく新しいリリースと対話できる方法:
未定
サポートされている言語
Protos、gRPC、Bazel は多言語対応です。このリポジトリの例は主に Java と Typescript で書かれていますが、他の多くの言語もサポートされています。
- gRPC とプロトコル バッファーは、C++、Java (および Android Java)、Python、Go、C#、Objective-C、PHP、Dart、Ruby、JavaScript (Node.js を含む) で Google によってサポートされています。
- Bazel は、Java (Android ビルドを含む)、Objective-C (iOS ビルドを含む)、C++、Go、Dart、Rust、Sass、Scala で Google によってサポートされています。
- コミュニティでは、他の多くの言語のサポートが追加されました。プロトコル バッファーと gRPC についてはこのリストを、Bazel についてはこのリストを参照してください。
主な例
- プロトコル バッファの例が多数あります。
- gRPC-Web: ブラウザーで実行される JS クライアント ライブラリ。HTTP プロキシ経由で gRPC サーバーに接続されます。サーバーとクライアントは両方とも、gRPC 自動生成されたスタブを使用して通信を処理します。
- gRPC マイクロサービスの例。
- Docker の例: Bazel を使用してコンテナーを構築します (dockerfile は必要ありません!)。
- Kubernetes: Bazel で構築されたコンテナーを k8s 上で実行する方法を示す構成ファイル。
- CI の例: CircleCI を使用して CI (継続的インテグレーション) を実行し、すべての Bazel ターゲットをテストします。
- Firebase: ここにプロトコル バッファを保存するための Java クライアント。
- Dagger: Java dependency Injection フレームワーク (「次世代 Guice」)、ここで例を参照してください。
- Flogger: 流暢な API を備えた Java ロガー。ここで例を参照してください。
- Android アプリ: Bazel で構築され、Firebase に統合された Android アプリ。
ツール
ツールセクションには便利なツールがいくつかあります。
スタートアップOSの使い方
StartupOS は、事前に構築されたセットアップと関連ツールを備えた「開発者イメージ」として扱うことができます。
次のいずれかを行うことができます。
- このリポジトリのクローンを作成し、独自に進化させます。
- これを独自のリポジトリへの依存関係として扱います。その例はここにあります: https://github.com/oferb/startup-os-example
インストール
Bazelをインストールします。それでおしまい!
ビルドとテスト
- すべてをビルドします:
./build.sh
- すべてのテストを実行します:
./test.sh
モノリポジトリについて
モノリポジトリは、すべてのコードが単一のリポジトリに保存されるソフトウェア開発アプローチです。フロントエンドとバックエンド間でプロトファイルを共有するなど、モノリポジトリでは簡単に実行できるものもあれば、コラボレータ、電子メール通知、コミット履歴などに対するリポジトリごとの制御など、より難しいこともあります。マルチリポコードレビューなどのマルチリポジトリツールを使用して、複数のリポジトリが個別のリポジトリでありながら、単一のモノリポジトリとして機能できるアプローチ。
モノリポジトリのアプローチに関する参考文献は次のとおりです。
- トランクベース開発.com/monorepos
- Google が数十億行のコードを単一のリポジトリに保存する理由
プラットフォーム
Bazel は Linux、Mac、Windows をサポートしていますが、このリポジトリは Linux と Mac をサポートしています。 Windows 10 を使用している場合は、Windows Subsystem for Linux (WSL) を使用できます。これにより、仮想マシンのオーバーヘッドなしで Linux 環境が得られます。
Linux 用 Windows サブシステムのインストール:
ガイドに従ってください。注: Windows のアップグレードが必要になる場合があります。必要な場合は、インストールの開始時に要求されます。
貢献する
ぜひ貢献していただき、そうすることでこれらのテクノロジーを学んでください。問題リストまたはプロジェクトのマイルストーンを確認してください。