3

そこで、サーバー側とモバイル開発で gitflow ワークフローを使い始めました。テストカバレッジがあり、ビルドの自動化により、機能ブランチはテストが成功するとすぐに開発ブランチにマージされるため、サーバー側のコードで非常にうまく機能します。モバイル開発とは異なり、必要に応じてすぐに変更が有効になるため (ビルドとテスト以外にデプロイする時間がない)、プッシュしたコードにバグがないかどうかをすばやくテストし、すばやく変更を加えることができます。したがって、このワークフローはサーバー側の開発に非常に適しています。ただし、このワークフローを使用したモバイル開発では問題に直面しています。

gitflow ワークフローには、開発、ステージング、マスターという 3 つの永続的なブランチがあります。マスター ブランチのコードは Play ストア アプリに送られ、チーム メンバーのみが利用できるステージング用の別のクローズド ベータ版 Google Play ストア アプリがあり、crashlytics ベータ版を使用して、最新の開発ブランチ コードをチームの開発者のみに配布しています。誰かが新機能の作業を開始するたびに、その人は master から分岐した機能ブランチを作成し (以前は開発から分岐していました)、機能の準備が整ったら、開発へのプル リクエストを作成します。毎日、プル リクエストを確認し、問題のないものは開発にマージします。

現在、このワークフローで直面している 2 つの大きな問題があります。1 つは、ある機能を開発にマージした後、そこに多くのバグがあることがわかったとします。これ以上プッシュすることはできません。そのコードはすでに開発とマージされているため、開発サイクル全体が行き詰っています。これが、開発ではなくマスターからの機能ブランチのフォークを開始した理由です。少なくとも個々の機能ブランチには完全に機能するコードがあるためです。1 つの方法は、各機能をチーム メンバーに個別に配布してテストし、その後で開発にマージすることですが、非常に面倒です。では、この問題は別のワークフローで解決できますか?

もう 1 つの問題は、コードの競合です。すべてのフィーチャー ブランチのベース コードはマスター ブランチからのものであり、開発とマージする必要があるため、最近では多くの競合が発生しています。開発からフォークしていた以前は、開発ブランチを人々が取り組んでいる機能ブランチと定期的にマージしていたので、競合はありませんでしたが、もうそれはできません。そこで、競合を修正するために、フィーチャー ブランチから別の一時的なブランチを作成し、開発コードをマージして競合を修正し、それをプル リクエストとして配置しますが、これも少し面倒です。

これはすべて、モバイル開発に適していない gitflow ワークフローの問題のようです。人々が採用しているモバイル開発のより良いワークフロー、またはこれらの問題を解決するために従うことができるいくつかのプラクティスはありますか?

4

1 に答える 1

0

スピットフロー

私がテストエンジニアと行った会話から、これについて反対の考えがあります。あなたのマイレージは異なる場合があります。

適切な開発者がいつコード ベース全体をフォークし、独自のフォークで機能に取り組むことができるかを検討してください。

準備ができたら、独自の開発ブランチにマージし、そのユーザーの開発ブランチに固有の CI ボックスで新しいビルドをトリガーします。はい、開発ブランチごとにユーザーごとに個別のビルド。コード レビューに行き詰まることなく、(機能の) テスターが一夜にして機能のビルドを行うことができます。

長所

  • 別の 'alpha' ブランチまたは 'BUT' (テスト中のブランチ) Gitflow とテスト/展開を導入せずに、Gitflow を T までたどることができます。

  • クリーンで分離されています (コードが安定した開発ブランチを台無しにすることはありません)

  • 機能は、コード レビューを行う人々の委員会を通過することなく (機能) テスターの手に渡ることができます。
  • テスターからのフィードバックにより、バグのある機能が取り除かれる可能性があります (他の開発者に迷惑をかけずに)
  • フォークされたレポ/機能は、開発者/製品チーム委員会によって承認されていない可能性のある機能を気に入っている可能性のある利害関係者の手にビルドが届く可能性があるため、開発者が輝ける機会になる可能性があります.
  • お役所仕事を迂回して、「承認」なしでクールな新機能をバブルアップします。

短所

  • 「これを承認したのは誰か?」という製品所有者との対立を引き起こす可能性があります。
  • コードが機能テスターに​​よって「OK」された場合でも、オリジン/開発 + コードレビューに戻る PR が必要であり、さらに QA のテストに戻る必要があります。
  • 新しいビルドを吐き出すようにスクリプトを構成するために必要な追加の DevOps 帯域幅。
  • 開発者は、開発ブランチをオリジン/開発責任者と同期/最新の状態に保つ必要があります。
  • ソロで長時間作業すると、マージの競合が大きくなる可能性があります。
  • 競争の促進 (必ずしも悪いことではありません)。
  • その他?

欠点が長所を上回る場合、これはあなたのためではありません. 特定の機能の一時的なチケットである可能性があると考えてから、gitflow に「戻す」ことができます。

提案 2

多くの gitflow フープをジャンプすることなく、開発者にテスター電話用の機能を構築してもらいます。

于 2016-10-20T18:14:57.030 に答える