アーキテクチャ決定記録: プログラミング用コードエディタ
コンテキスト
プログラミング用コードエディタは、開発者がコードを書いて編集するための不可欠なツールです。多数のコードエディタが利用可能で、それぞれに独自の機能、利点、欠点があります。この ADR の目的は、プログラミング用コードエディタについて行われたアーキテクチャ上の決定を文書化することです。
優先事項
プログラミング用コードエディタのアーキテクチャは、次のことを優先すべきです:
モジュール性: コードエディタは、開発者が必要に応じてカスタマイズおよび拡張できるように、モジュール式に設計されるべきです。これにより、さまざまな開発者やチームのニーズに適応できる柔軟なアーキテクチャが実現します。
パフォーマンス: コードエディタは、高性能で応答性が高く、開発者が使用しているツールに邪魔されることなく効率的に作業できるべきです。
ユーザーインターフェース: ユーザーインターフェースは直感的で使いやすく、開発者がエディタに苦労することなくコードに集中できるべきです。
拡張性: コードエディタは、サードパーティのプラグインや統合による簡単な拡張を可能にするよう設計されるべきです。
互換性: コードエディタは、幅広いプログラミング言語や技術と互換性があり、広範な開発者にとって有用なツールとなるべきです。
決定
これらの優先事項に基づき、プログラミング用コードエディタのアーキテクチャは、次のコンポーネントで設計されるべきです:
コア: このコンポーネントは、構文ハイライト、テキスト編集、ファイル管理など、コードエディタの基本機能を提供します。
UI: このコンポーネントは、メニュー、ツールバー、キーボードショートカットを含む、コードエディタのユーザーインターフェースを提供します。
プラグイン: このコンポーネントにより、開発者はサードパーティのプラグインをインストールして、コードエディタの機能を拡張できます。プラグインは、コード補完、リンティング、デバッグなどの追加機能を提供できます。
統合: このコンポーネントにより、コードエディタは、バージョン管理システム、ビルドシステム、デバッグツールなどの他のツールや技術と統合できます。
根拠
コードエディタのモジュール性により、開発者は必要に応じてそれをカスタマイズおよび拡張できます。これは、異なる開発者やチームが異なるニーズとワークフローを持っており、柔軟なアーキテクチャがこれらの違いに対応できるため重要です。
パフォーマンス: 開発者が、ツールに邪魔されることなく効率的に作業できる必要があるため、極めて重要です。高性能なコードエディタは生産性に不可欠であり、開発者が集中力を維持するのに役立ちます。
UI: 開発者がエディタに苦労することなくコードに集中できるため、重要です。これは、生産性の向上と開発者の不満の軽減につながります。
拡張性: コードエディタをさまざまなニーズやワークフローに適応させることができるため、強力です。サードパーティのプラグインや統合は、コアエディタには含まれていない追加の機能や能力を提供できます。
互換性: コードエディタを幅広いプログラミング言語や技術で使用できるため、価値があります。これにより、エディタは広範な開発者にとってより有用なツールになります。
コア、プラグイン、統合、UI のコンポーネントは、関心の明確な分離を提供し、容易に拡張およびカスタマイズできるモジュール式アーキテクチャを可能にします。このアーキテクチャは柔軟で、高性能で、幅広いプログラミング言語や技術と互換性があり、開発者にとって有用なツールとなります。