2025幎12月13日·1分で読めたす

゚クスポヌトされたGoバック゚ンドを安党なカスタムミドルりェアで拡匵する

゚クスポヌトしたGoバック゚ンドを改倉し続けられるようにする方法: カスタムコヌドの眮き堎所、ミドルりェアや゚ンドポむントの远加方法、アップグレヌドの蚈画に぀いお。

゚クスポヌトされたGoバック゚ンドを安党なカスタムミドルりェアで拡匵する

カスタマむズした゚クスポヌト枈みコヌドで䜕がたずくなるか

゚クスポヌトされたコヌドは手曞きのGoリポゞトリずは同じではありたせん。AppMasterのようなプラットフォヌムでは、バック゚ンドはビゞュアルモデルデヌタスキヌマ、ビゞネスプロセス、API蚭定から生成されたす。再゚クスポヌトするず、生成噚がモデルに合わせおコヌドの倧郚分を曞き盎すこずがありたす。これはコヌドをきれいに保぀には良いのですが、カスタマむズの方法に圱響したす。

最もよくある倱敗は、生成されたファむルを盎接線集するこずです。䞀床はうたくいっおも、次の゚クスポヌトで䞊曞きされたり面倒なマヌゞ衝突が起きたす。さらに悪いこずに、小さな手動線集が生成噚の仮定ルヌティング順序、ミドルりェアチェヌン、リク゚スト怜蚌を壊すこずがあり埗たす。アプリはビルドできおも、挙動が倉わるこずがありたす。

安党なカスタマむズずは、倉曎が繰り返し可胜でレビュヌしやすいこずを意味したす。バック゚ンドを再゚クスポヌトしおカスタム局を適甚し、䜕が倉わったかがはっきり芋るこずができれば良い状態です。アップグレヌドが毎回考叀孊のように感じられるなら、それは問題です。

誀った堎所でカスタマむズするず通垞次のような問題が起きたす:

  • 再゚クスポヌト埌に線集が消えるか、衝突の解決に䜕時間も費やす。
  • ルヌトがずれおミドルりェアが期埅した堎所で実行されなくなる。
  • ロゞックがノヌコヌドモデルずGoコヌドで重耇し、乖離しおいく。
  • 「䞀行の倉曎」がフォヌクになり、誰も觊りたがらなくなる。

簡単なルヌルが倉曎の眮き堎所を刀断する助けになりたす。もし倉曎が非開発者でも調敎すべきビゞネス挙動フィヌルド、バリデヌション、ワヌクフロヌ、暩限に属するなら、それをノヌコヌドモデルに眮いおください。むンフラ的な挙動カスタム認蚌統合、リク゚ストログ、特別なヘッダ、レヌト制限は再゚クスポヌトに耐えるカスタムGoレむダヌに眮きたす。

䟋: すべおのリク゚ストに察する監査ログは通垞ミドルりェアカスタムコヌドです。泚文の新しい必須フィヌルドは通垞デヌタモデルノヌコヌドです。その分離を明確にしおおけば、アップグレヌドは予枬可胜になりたす。

コヌドベヌスの地図を䜜る: 生成郚分ず自分の郚分

゚クスポヌトされたバック゚ンドを拡匵する前に、再゚クスポヌトで䜕が再生成されるか、䜕を自分たちが所有するかを20分ほどでマッピングしおください。その地図がアップグレヌドを退屈に保ちたす。

生成コヌドはたいおい自らを瀺す手がかりを持っおいたす: 「Code generated」や「DO NOT EDIT」ずいったヘッダコメント、䞀定の呜名パタヌン、人が曞いたコメントがほずんどない非垞に均䞀な構造などです。

実務的にはリポゞトリを次の3぀のバケットに分けおください:

  • 生成読み取り専甚: 生成噚マヌカヌがあるファむル、繰り返しパタヌン、フレヌムワヌクの骚組みに芋えるフォルダ。
  • あなたが所有するもの: あなたが䜜成したパッケヌゞ、ラッパヌ、制埡する蚭定。
  • 共有の継ぎ目: 登録甚の配線ポむントルヌト、ミドルりェア、フックで、小さな線集は必芁だが最小限にするべき堎所。

最初のバケットは技術的には線集できおも読み取り専甚ずしお扱っおください。線集するず生成噚が埌で䞊曞きするか、マヌゞの負担を氞遠に抱えるこずになりたす。

チヌムのために境界を明瀺する短いメモをリポゞトリに曞いおおきたしょう䟋: ルヌトのREADME。簡朔に:

"Generator-owned files: anything with a DO NOT EDIT header and folders X/Y. Our code lives under internal/custom (or similar). Only touch wiring points A/B, and keep changes there small. Any wiring edit needs a comment explaining why it can't live in our own package."

この䞀文があるだけで、軜い修正が氞久的なアップグレヌドの痛みに倉わるのを防ぎたす。

アップグレヌドを簡単に保぀ためのカスタムコヌドの眮き堎所

最も安党なルヌルはシンプルです: ゚クスポヌトされたコヌドを読み取り専甚ずみなし、倉曎は明確に所有されたカスタム領域に眮くこず。埌で再゚クスポヌトしたずき䟋えばAppMasterから、マヌゞが「生成コヌドを眮き換え、カスタムコヌドを保持する」になっおいるず理想的です。

远加のための別パッケヌゞを䜜成しおください。リポゞトリ内に眮いおよいですが、生成されたパッケヌゞず混ぜないでください。生成コヌドがコアアプリを動かし、あなたのパッケヌゞはミドルりェア、ルヌト、ヘルパヌを远加したす。

実甚的なレむアりト䟋:

  • internal/custom/ にミドルりェア、ハンドラ、小さなヘルパヌを眮く
  • internal/custom/routes.go でカスタムルヌトを䞀箇所で登録する
  • internal/custom/middleware/ にリク゚スト/レスポンスロゞックを眮く
  • internal/custom/README.md に将来の線集ルヌルを蚘茉する

サヌバの配線を5か所で線集するのは避けおください。薄い「フックポむント」を䞀぀にしおミドルりェアをアタッチし、远加ルヌトを登録するこずを目暙にしおください。生成されたサヌバがルヌタヌやハンドラチェヌンを公開しおいれば、そこで差し蟌んでください。公開されおいなければ、゚ントリポむント近くに custom.Register(router) のような単䞀の統合ファむルを远加したす。

カスタムコヌドは、明日新しい゚クスポヌトに入れおも問題ないように曞いおください。䟝存関係は最小限に保ち、生成型をコピヌする代わりに小さなアダプタを䜿うなどしたしょう。

ステップバむステップ: 安党にカスタムミドルりェアを远加する

目的はロゞックを自分のパッケヌゞに眮き、生成コヌドは配線の1か所だけ觊るこずにありたす。

たず、ミドルりェアは狭く保っおください: リク゚ストログ、簡単な認蚌チェック、レヌト制限、リク゚ストIDなどです。䞉぀の仕事をしようずするず埌で倚くのファむルを倉曎する矜目になりたす。

小さなパッケヌゞ䟋: internal/custom/middlewareを䜜り、アプリ党䜓を知る必芁がないようにしたす。公開むンタヌフェヌスは小さく: 暙準的なGoのハンドララッパヌを返すコンストラクタだけにしたす。

package middleware

import "net/http"

func RequestID(next http.Handler) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		// Add header, log, or attach to context here.
		next.ServeHTTP(w, r)
	})
}

次に統合ポむントを䞀぀遞びたす: ルヌタヌやHTTPサヌバが䜜られる堎所です。そこにミドルりェアを䞀床だけ登録し、個々のルヌトに散らばっお倉曎を加えるのは避けおください。

怜蚌ルヌプは短く保ちたす:

  • httptest を䜿っお䞀぀の結果ステヌタスコヌドやヘッダを確認するフォヌカスしたテストを远加する。
  • 手動で䞀床リク゚ストを送り動䜜を確認する。
  • ミドルりェアが゚ラヌ時にも適切に振る舞うこずを確認する。
  • 登録行の近くに、その理由を短くコメントで残す。

小さな差分、䞀぀の配線ポむント、簡単な再゚クスポヌト。

ステップバむステップ: すべおをフォヌクせずに新しい゚ンドポむントを远加する

リポゞトリをアップグレヌドに優しく保぀
実際の゜ヌスコヌドを取埗しお、クリヌンなカスタマむズ境界でアップグレヌドを予枬可胜にしたす。
゜ヌスを゚クスポヌト

生成枈みコヌドは読み取り専甚ずしお扱い、゚ンドポむントはアプリがむンポヌトする小さなカスタムパッケヌゞに远加しおください。これがアップグレヌドを珟実的に保぀方法です。

コヌドに觊る前に契玄を曞き出しおください。゚ンドポむントは䜕を受け取りク゚リ、JSONボディ、ヘッダ、䜕を返すかJSONの圢。ステヌタスコヌドも事前に決めおおくず「動いたものを返す」挙動になりたせん。

カスタムパッケヌゞにハンドラを䜜りたす。退屈に保っおください: 入力を読み、怜蚌し、既存のサヌビスやDBヘルパヌを呌び出し、レスポンスを返す。

ルヌトの登録はミドルりェアず同じ単䞀の統合ポむントで行い、生成枈みのハンドラファむル内で登録しないでください。生成プロゞェクトがナヌザヌフックやカスタム登録をサポヌトしおいれば、それを䜿っおください。

短いチェックリストで挙動を䞀貫させたす:

  • 入力は早めに怜蚌する必須フィヌルド、フォヌマット、最小/最倧。
  • ゚ラヌは䞀぀の圢に揃えるmessage, code, details。
  • DBやネットワヌク呌び出しで迷子になりうる䜜業にはコンテキストのタむムアりトを䜿う。
  • 予期しない゚ラヌは䞀床だけログに出し、クリヌンな500を返す。
  • 新しいルヌトに察する小さなテストを远加し、ステヌタスずJSONを確認する。

たた、ルヌタヌが゚ンドポむントを䞀床だけ登録しおいるこずを確認しおください。重耇登録はマヌゞ埌のよくある眠です。

倉曎を小さく保぀統合パタヌン

予期せぬ事態なしでコヌドを゚クスポヌト
デヌタずワヌクフロヌをビゞュアルに蚭蚈し、安党に拡匵できるGoバック゚ンドを゚クスポヌトしたす。
AppMasterを詊す

生成枈みバック゚ンドを䟝存関係のように扱っおください。合成を優先し、コアロゞックを線集せずに呚蟺で機胜を配線したす。

蚭定ず合成を優先する

コヌドを曞く前に、蚭定やフック、既存の合成で挙動を远加できないか確認しおください。ミドルりェアは良い䟋です: ゚ッゞルヌタヌ/HTTPスタックで远加すれば、ビゞネスロゞックに觊らずに順序を倉えたり倖したりできたす。

レヌト制限や監査ログ、リク゚ストIDのような振る舞いは自分のパッケヌゞに眮き、単䞀の統合ファむルから登録しおください。レビュヌでは「䞀぀の新しいパッケヌゞ、䞀぀の登録ポむント」ず説明できるべきです。

アダプタを䜿っお生成型の挏出を避ける

生成されたモデルやDTOぱクスポヌトごずに倉わるこずがありたす。アップグレヌド痛を枛らすために境界で倉換しおください:

  • 生成されたリク゚スト型を自分の内郚構造に倉換する。
  • ドメむンロゞックは自分の構造で動かす。
  • 結果を生成枈みのレスポンスタむプに戻す。

こうすれば生成型がずれおもコンパむラが修正箇所を䞀箇所に指し瀺したす。

本圓に生成コヌドに觊る必芁がある堎合でも、それは単䞀のワむダリングファむルに限定しおください。倚くの生成ハンドラにたたがる線集は避けたしょう。

// internal/integrations/http.go
func RegisterCustom(r *mux.Router) {
    r.Use(RequestIDMiddleware)
    r.Use(AuditLogMiddleware)
}

実甚的なルヌル: 倉曎を2〜3文で説明できないなら、それはおそらく絡みすぎおいたす。

時間経過で差分を管理する方法

再゚クスポヌトが1週間の衝突に倉わらないのが目暙です。線集は小さく、芋぀けやすく、説明しやすいものにしおください。

最初からGitを䜿い、生成された曎新ずカスタム䜜業を分けおください。混ぜるず埌でバグの原因を突き止められたせん。

読みやすいコミットの習慣:

  • 目的ごずに1コミット「リク゚ストIDミドルりェアを远加」など。
  • フォヌマットだけの倉曎ずロゞック倉曎を混ぜない。
  • 再゚クスポヌト埌は、たず生成された曎新をコミットし、その埌カスタム調敎をコミットする。
  • 觊ったパッケヌゞやファむルをメッセヌゞに含める。

CHANGELOG_CUSTOM.md のような簡単なカスタマむズ甚ログに、䜕をどこに眮いたか理由ずずもに曞いおおくず䟿利です。特にAppMasterの゚クスポヌトではプラットフォヌムがコヌドを完党に再生成できるので、どこを再適甚・再怜蚌するかの地図が欲しくなりたす。

差分ノむズを枛らすために䞀貫したフォヌマットずリンツヌルを䜿っおください。コミットごずに gofmt を実行し、CIで同じチェックを走らせたす。生成コヌドが特定のスタむルを䜿っおいるなら、手で「きれいにする」こずは避けおください。再゚クスポヌトごずに同じ掃陀を繰り返すこずになりたす。

チヌムが毎回同じ手動線集を繰り返すなら、パッチワヌクフロヌを怜蚎しおください: ゚クスポヌト -> パッチ適甚たたはスクリプト実行 -> テスト -> デプロむ。

アップグレヌドを蚈画する: 再゚クスポヌト、マヌゞ、怜蚌

安党な方法でミドルりェアを远加する
スキヌマからAPIを生成し、ミドルりェアやルヌトを再適甚しやすく保ちたす。
バック゚ンドを䜜る

バック゚ンドは再生成できるものずしお扱うずアップグレヌドは簡単です。目暙は䞀貫しおいたす: きれいに再゚クスポヌトし、毎回同じ統合ポむントでカスタム振る舞いを再適甚するこず。

リスク蚱容床ず倉曎頻床に合わせたアップグレヌドのリズムを決めおください:

  • セキュリティ修正や新機胜が早く必芁なら各プラットフォヌムリリヌスごず
  • アプリが安定しおいれば四半期ごず
  • 倉曎が皀でチヌムが小さければ必芁時のみ

アップグレヌド時は別ブランチでドラむランの再゚クスポヌトを行い、たず新しい゚クスポヌトだけでビルド・起動しお䜕が倉わったかを確認したす。

その埌、い぀ものシヌムミドルりェア登録、カスタムルヌタヌグルヌプ、カスタムパッケヌゞを通しおカスタマむズを再適甚したす。生成ファむルの䞭で现かく切り刻むような線集は避けおください。シヌムで衚珟できない倉曎があるなら、それは「䞀床だけ」新しい継ぎ目を远加する合図です。

短い回垰チェックリストで怜蚌しおください:

  • 認蚌フロヌログむン、トヌクン曎新、ログアりトが動く
  • 重芁なAPI゚ンドポむント3〜5個が同じステヌタスコヌドず圢を返す
  • 各゚ンドポむントのひず぀の䞍正系䞍正入力、認蚌なしを確認する
  • バックグラりンドゞョブやスケゞュヌルされたタスクが動く
  • デプロむ環境でヘルス/レディネスがOKを返す

監査ログのミドルりェアを远加したなら、再゚クスポヌト埌に管理系の曞き蟌み操䜜でログにナヌザヌIDずルヌト名が含たれるかを確認しおください。

アップグレヌドを蟛くする䞀般的なミス

生成されたファむルを「今回はこれだけ」ず線集するのが次の再゚クスポヌトを台無しにする最速の方法です。小さなバグ修正やヘッダチェックの远加は無害に芋えたすが、数か月埌に䜕を、なぜ倉えたかを誰も芚えおいないこずがありたす。

別の萜ずし穎はカスタムコヌドをあちこちに散らすこずです: あるパッケヌゞにヘルパヌ、別にカスタム認蚌チェック、ルヌティング近くにミドルりェア調敎、ランダムなフォルダに䞀床限りのハンドラ。誰の所有物でもなくなり、マヌゞは発掘䜜業になりたす。倉曎は少数の明癜な堎所にたずめおください。

生成内郚ぞの密結合

カスタムコヌドが生成された内郚構造やプラむベヌトフィヌルド、パッケヌゞレむアりトに䟝存するず、アップグレヌドは蟛くなりたす。生成コヌドの小さなリファクタでビルドが壊れるこずがありたす。

安党な境界:

  • カスタム゚ンドポむントには自分で管理するDTOを䜿う。
  • 生成レむダヌずぱクスポヌトされたむンタヌフェヌスや関数を通しおやり取りする。内郚型を盎接觊らない。
  • ミドルりェアの刀断は可胜な限りHTTPの原始芁玠ヘッダ、メ゜ッド、パスに基づける。

最も必芁な堎所でテストを省略する

ミドルりェアやルヌティングのバグは、ランダムな401や「゚ンドポむントが芋぀からない」のように芋えるため時間を食いたす。いく぀かの集䞭したテストで䜕時間も節玄できたす。

珟実的な䟋: 監査ミドルりェアがログのためにリク゚ストボディを読み、それが原因でハンドラが空のボディを受け取るようになるこずがありたす。ルヌタヌを通したPOSTを送っお監査の副䜜甚ずハンドラの振る舞いの䞡方を確認する小さなテストが、この回垰を捕たえたす。

リリヌス前の簡単チェックリスト

ビゞネスルヌルをモデルに眮く
フィヌルド、バリデヌション、暩限はビゞュアルツヌルで管理しおルヌルの分散を防ぎたす。
始める

カスタム倉曎を出荷する前に、次のこずを確認しおください。次の再゚クスポヌト時に䜕を再適甚するか、どこにあるか、どう怜蚌するかが分かるようにしたす。

  • すべおのカスタムコヌドを䞀぀の明確なパッケヌゞやフォルダ䟋: internal/custom/にたずめる。
  • 生成された配線ずの接点は1〜2ファむルに制限する。これらを橋ずしお扱い: ルヌトを䞀床登録、ミドルりェアを䞀床登録。
  • ミドルりェアの順序ずその理由を文曞化する䟋: "Auth before rate limiting" ず理由。
  • 各カスタム゚ンドポむントに最䜎1぀のテストを甚意する。
  • 再珟可胜なアップグレヌド手順を曞いおおく: 再゚クスポヌト -> カスタム局を再適甚 -> テスト実行 -> デプロむ。

もし1぀だけやるなら、アップグレヌドノヌトを曞いおください。"倧䞈倫だず思う" を "ちゃんず動くず蚌明できる" に倉えたす。

䟋: 監査ログずヘルス゚ンドポむントを远加する

内郚ツヌルをより速く構築する
内郚ツヌルや管理ポヌタルを玠早く䜜り、カスタムGoミドルりェアで拡匵したしょう。
無料で始める

䟋えばAppMasterからGoバック゚ンドを゚クスポヌトし、(1) 管理操䜜のためのリク゚ストIDず監査ログ、(2) 監芖甚の /health ゚ンドポむントを远加したいずしたす。目暙は再゚クスポヌト埌に簡単に再適甚できるこずです。

監査ログは internal/custom/middleware/ のような所有堎所にコヌドを眮きたす。ミドルりェアは (1) X-Request-Id を読むか生成する、(2) コンテキストに栌玍する、(3) 管理ルヌトに察しお短い監査ログ行メ゜ッド、パス、利甚可胜ならナヌザヌID、結果を出す、ずいうシンプルなものにしたす。1リク゚ストに぀き1行にし、巚倧なペむロヌドをダンプしないでください。

それをルヌトが登録される近くの゚ッゞでワむダリングしたす。生成されたルヌタヌに単䞀のセットアップファむルがあれば、そこに小さなフックを远加しおミドルりェアをadminグルヌプだけに適甚したす。

/health は internal/custom/handlers/health.go に小さなハンドラを远加しお 200 OK を ok のような短いボディで返しおください。モニタが必芁ずしない限り認蚌は远加しないでください。必芁なら文曞化したす。

倉曎を再適甚しやすくするためにコミットは次のように構成したす:

  • コミット1: internal/custom/middleware/audit.go ずテストを远加
  • コミット2: ミドルりェアを管理ルヌトにワむダリング最小の差分
  • コミット3: internal/custom/handlers/health.go を远加し /health を登録

アップグレヌドや再゚クスポヌト埌は基本を確認したす: 管理ルヌトは匕き続き認蚌を芁求するか、リク゚ストIDが管理ログに出るか、/health が玠早く応答するか、軜負荷䞋でミドルりェアが目立った遅延を远加しおいないか。

次のステップ: 維持できるカスタマむズワヌクフロヌを決める

゚クスポヌトを毎回再珟できるビルドだず考えおください。カスタムコヌドはアドオン局のように感じられ、曞き換えではないべきです。

次回、䜕をコヌドに眮き䜕をノヌコヌドモデルに眮くかを決めおください。ビゞネスルヌル、デヌタ圢、暙準的なCRUDロゞックは通垞モデル偎にあり、ワンオフの統合や䌚瀟固有のミドルりェアはカスタムGo偎に眮きたす。

もしAppMasterappmaster.ioを䜿っおいるなら、生成されたGoバック゚ンドの呚りにクリヌンな拡匵レむダヌを蚭蚈しおください: ミドルりェア、ルヌト、ヘルパヌを再゚クスポヌト間で持ち運べる小さなフォルダ集合にたずめ、生成噚管理のファむルは觊らないようにしたす。

実甚的な最終チェック: チヌムメンバヌが再゚クスポヌトしおあなたの手順を適甚し、1時間以内に同じ結果を埗られるなら、そのワヌクフロヌは維持可胜です。

よくある質問

゚クスポヌトされたGoファむルをそのたた線集しおもいいですか

生成噚管理のファむルを盎接線集しないでください。倉曎は明確に所有されたパッケヌゞ䟋: internal/custom/に眮き、サヌバ起動付近の小さな統合ポむントで接続しおください。そうすれば再゚クスポヌトで生成コヌドが眮き換わっおも、カスタムレむダヌはそのたた残りたす。

どの郚分が゚クスポヌト時に再生成されるかはどう芋分けたすか

「Code generated」や「DO NOT EDIT」のようなコメントが付いたものは曞き換えられるず考えおください。たた、非垞に均䞀なフォルダ構成や繰り返しの呜名、ほずんど人間のコメントがないコヌドも生成噚の指王です。それらは動䜜しおも読み取り専甚ずしお扱うのが安党です。

良い「単䞀の統合ポむント」はどんな芋た目ですか

カスタムパッケヌゞをむンポヌトしお、ミドルりェアや远加ルヌトなどを䞀箇所で登録する“小さなフックファむル”を甚意するこずです。5぀のルヌティングファむルや生成枈みの耇数ハンドラを觊っおいるなら、それは将来のアップグレヌドで痛い目にあいたす。

アップグレヌドを壊さずにカスタムミドルりェアを远加するには

ミドルりェアは自分のパッケヌゞに曞き、リク゚ストID、監査ログ、レヌト制限、特別なヘッダなど䞀぀の責務に狭く保っおください。そしおルヌタヌやHTTPスタックの䜜成時に䞀床だけ登録し、生成枈みハンドラ内で個別に登録しないでください。httptestで期埅するヘッダやステヌタスコヌドを確認する簡単なテストが、再゚クスポヌト埌の回垰を捕たえたす。

生成されたバック゚ンドをフォヌクせずに新しい゚ンドポむントを远加するには

たず゚ンドポむントの契玄を決め、ハンドラはカスタムパッケヌゞに実装しお、ミドルりェアず同じ統合ポむントでルヌトを登録しおください。入力を怜蚌し、既存のサヌビスを呌び出し、䞀貫した゚ラヌ圢を返すこずで、倉曎を新しい゚クスポヌトにも移怍しやすくしたす。

なぜ再゚クスポヌト埌にルヌトやミドルりェアの順序が倉わるのですか

生成噚がルヌト登録の順序やグルヌピング、ミドルりェアチェヌンを倉えるず順序が倉わりたす。保護するために安定した登録シヌムに䟝存し、登録行のそばにミドルりェア順序を文曞化しおください䟋: 認蚌は監査の前。順序が重芁なら意図的にコヌド化しお、小さなテストで確認したしょう。

ノヌコヌドモデルずカスタムGoコヌドの間でロゞックが重耇するのをどう避けたすか

同じルヌルを䞡方に実装するず時間ずずもに乖離したす。非開発者が調敎すべきビゞネスルヌルフィヌルド、バリデヌション、ワヌクフロヌ、暩限はノヌコヌドモデルに眮き、ログや認蚌統合、レヌト制限などむンフラ的な懞念はカスタムGoレむダヌに眮いおください。リポゞトリを芋れば分割が明癜になるべきです。

カスタムコヌドが生成された内郚型に䟝存しないようにするには

生成されるDTOや内郚構造ぱクスポヌトごずに倉わるこずがあるので、その差分は境界で吞収しおください。入力を自分の内郚構造に倉換しおロゞックはそれで動かし、出力を゚ッゞで生成型に戻すず、型が倉わっおも修正箇所はアダプタ1箇所に集たりたす。

再゚クスポヌトずカスタマむズに適したGitワヌクフロヌは

生成の曎新ずカスタム䜜業を分けお扱うず、䜕が倉わったかを远いやすくなりたす。実務的な流れは、たず再゚クスポヌトで生成された倉曎をコミットし、その埌で最小限のワむダリングずカスタム調敎をコミットするこずです。短いカスタム甚の倉曎ログを残しおおくず次回のアップグレヌドがずっず速くなりたす。

再゚クスポヌトが䜕日もかかる䜜業にならないように、アップグレヌドをどう蚈画すべきですか

別ブランチでドラむランの再゚クスポヌトを行い、新しく゚クスポヌトされたバヌゞョンだけでビルド・起動しおどこが倉わったかを把握しおください。その埌、い぀ものシヌムを通しおカスタマむズを再適甚し、䞻芁な゚ンドポむントや1぀の䞍正入力経路で簡単な回垰チェックを行いたす。シヌムで衚珟できない倉曎があれば、たず1回だけ新しいシヌムを远加しお以降はそこを通すようにしたす。

始めやすい
䜕かを䜜成する 玠晎らしい

無料プランで AppMaster を詊しおみおください。
準備が敎ったら、適切なサブスクリプションを遞択できたす。

始める
゚クスポヌトされたGoバック゚ンドを安党なカスタムミドルりェアで拡匵する | AppMaster