VShell ツールの Git リベースとコード リファクタリング

Susan Sarandon
リリース: 2024-10-10 06:23:30
オリジナル
554 人が閲覧しました

今週、VShell ツールのコードベースをリファクタリングする際に、git rebase の使用について詳しく調べる機会がありました。私の主なタスクは、コードをより読みやすく、保守しやすく、デバッグしやすくするために不可欠な DRY (Don't Reply Yourself) 原則を遵守しながら、コードの構造と保守性を改善することでした。さらに、関数の抽出、クラスの抽出、変数の名前変更など、リファクタリング カタログで概説されているさまざまなリファクタリング パターンに従いました。

リファクタリングの取り組みの詳細に入る前に、この強力な Git 機能にまだ慣れ親しんでいる開発者向けに、Git リベース プロセスの概要を説明します。

Git リベースの概要

基本コマンド:

  • git rebase : このコマンドは、現在のブランチから指定されたブランチの上にコミットを移動し、現在のブランチを効果的にリベースします。

  • git rebase : このコマンドは、最初にトピック ブランチをチェックアウトすることなく、トピック ブランチをベース ブランチにリベースします。
    : 通常、トピック ブランチをチェックアウトして git rebase を実行しますが、このコマンドを使用すると、ベース ブランチに残ったままリベースできます。

競合の処理:

  • git rebase --abort: リベースをキャンセルし、ブランチを以前の状態に戻します。
  • git add : マージ競合を解決した後、解決された競合をステージング領域に追加します。
  • git rebase -- continue: 競合が解決された後、リベース プロセスを続行します。

対話型リベース:

  • git rebase -i を使用します。複数のコミットを 1 つにまとめます。
  • リベースが成功すると、すべての変更が統合されるため、トピック ブランチを削除できます。 git Branch -d を使用します。ブランチを削除します。

重要な注意事項::

  • 他のコラボレーターに影響を与えるため、メインブランチのリベースは避けてください。
  • プッシュする前に作業をクリーンアップするために、トピック ブランチのみをリベースします。

作業をクリーンアップするためにプッシュする前に、ローカルの変更をリベースしてください。ただし、どこかにプッシュしたものは決してリベースしないでください

リファクタリングプロセス

  1. リファクタリング ブランチの作成
    現在動作しているコードが壊れるのを防ぐために、メイン ブランチに基づいて別のリファクタリング ブランチを作成しました。これにより、安全に変更を試すことができました。

  2. コードの分析とリファクタリング
    最初にモジュール パターンを VShell コードに適用しましたが、より大きなモジュールを分割して、より読みやすいコード フローを作成するには、さらなる改善が必要でした。

    • ソース/サーバー:
      • 反復ログ ロジックを handleDebugMessage() 関数にリファクタリングし、stderr ストリームを介した集中ログを可能にしました。
      • 構成 .toml ファイルの処理を処理するために、ConfigHandler.js に新しい ConfigHandler クラスも作成しました。 getTomlFiles() メソッドとloadConfig() メソッドは、設定をモジュール式に処理するためにこのクラスにカプセル化されました。
  • ai_config/grogConfig.js:

    • chatCompletion AI から応答を返す 2 つの方法では、トークン使用量の取得に重複がありました。このロジックを getTokenUsage() 関数に抽出し、readStream() と promptGroq() の両方で再利用できるようにしました。
    • さらに、promptGroq() のタイプミスを修正し、わかりやすくするために温度変数の名前を変更しました。
  • src/ai.js:

    • 将来の再利用を可能にするために、handleOutput() 関数をモジュール handleOutputFile() に移動しました。
  • src/getFileContent.js:

    • ここでは最小限の変更が必要でした。読みやすさと分かりやすさを向上させるために、ファイル パスと変数名を変更しただけです。

リファクタリング後の Git リベース

リファクタリングプロセス中に 11 回のコミットを行った後、それらを統合する必要がありました。コミット履歴をクリーンに保つために、以下を使用して対話型リベースを実行しました。

git rebase main -i

Git エディターとして構成された VSCode が、コミットを潰すように要求しました。潰した後、関連するすべての変更を含む 1 つのコミットが作成されました。次に、メイン ブランチにマージする前に新しいコミットを作成する代わりに、 git commit --amend を使用してコミット メッセージを更新しました。

Git Rebase and Code Refactoring for VShell Tool

結論

本週 git rebase 的經驗為我提供了寶貴的見解。 Rebase 是維護乾淨、線性提交歷史記錄、避免不必要的合併的重要工具。透過掌握 git rebase,我現在能夠有效地組織提交訊息,最大限度地減少混亂並確保簡化的開發工作流程。

重構工作改進了 VShell 程式碼庫的結構和可維護性。透過應用提取函數和類別等關鍵設計模式,我使程式碼庫更加模組化、可重複使用,並且更易於後續工作。

以上がVShell ツールの Git リベースとコード リファクタリングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!