今週、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
を使用します。ブランチを削除します。
重要な注意事項::
- 他のコラボレーターに影響を与えるため、メインブランチのリベースは避けてください。
- プッシュする前に作業をクリーンアップするために、トピック ブランチのみをリベースします。
→ 作業をクリーンアップするためにプッシュする前に、ローカルの変更をリベースしてください。ただし、どこかにプッシュしたものは決してリベースしないでください。
リファクタリングプロセス
リファクタリング ブランチの作成
現在動作しているコードが壊れるのを防ぐために、メイン ブランチに基づいて別のリファクタリング ブランチを作成しました。これにより、安全に変更を試すことができました。-
コードの分析とリファクタリング
最初にモジュール パターンを 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 的經驗為我提供了寶貴的見解。 Rebase 是維護乾淨、線性提交歷史記錄、避免不必要的合併的重要工具。透過掌握 git rebase,我現在能夠有效地組織提交訊息,最大限度地減少混亂並確保簡化的開發工作流程。
重構工作改進了 VShell 程式碼庫的結構和可維護性。透過應用提取函數和類別等關鍵設計模式,我使程式碼庫更加模組化、可重複使用,並且更易於後續工作。
以上がVShell ツールの Git リベースとコード リファクタリングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
