2024.02.21
Visual Studio Codeのオートフォーマット機能を使ってみた
Visual Studio Codeとは?
Microsoftが開発しているWindows、Linux、macOS、web用のソースコードエディタで、現在開発する時によく使用している開発環境となります。
以前はNetBeansという開発環境を使用していました。NetBeansとはオラクルを中心としたコミュニティにより開発されている、オープンソースの統合開発環境ですが、開発をするうえで機能的に色々不便な所があってVisual Studio Codeを使用するようになりました。
特に今回お話するオートフォーマット機能が魅力的で、Visual Studio Codeを使用するようになってから開発スピードも上がりました。
オートフォーマットとは?
前置きが長くなりましたが、Visual Studio Codeについて説明したので、ここからは本題に入りたいと思います。タイトルとして挙げました「オートフォーマット機能」について今回お話ししたいと思います。
まず最初に「オートフォーマット機能」という専門用語を使用してしまいましたが、耳馴染みがない方も多いと思います。簡単に説明すると文章を自動で整形してくれる機能となります。ここで言う文章とは開発コードになります。
開発するうえで開発ルールという物が存在します。開発ルールは開発現場により異なりますが、その中の一つに記述するコードの整形についてという物があります。整形の中には代表するものでコードの改行やスペース(半角)の使い方などが挙げられます。
改行やスペースなら簡単そうに見えますが、記述するコードが多くなってくると意外とこのルールが疎かになってしまうことがあり、その積み重ねが後々開発者を苦しめます。
Visual Studio Codeのオートフォーマット機能
Visual Studio Codeにはオートフォーマット機能があり、設定することでコードを保存時にコードの自動改行、スペース開けを行なってくれます。
オートフォーマットの設定はVisual Studio Codeを起動している最中に、上部メニューバーのCode > 基本設定 > 設定 を押下すると設定画面が開きます。
設定画面が開いたら検索ボックスに「formaton」と入力すると「Editor: Format On Save」のチェックボックスがあると思うのでそれにチェックを入れます。
これでオートフォーマットの設定は完了です。あとは保存する度に自動でコードが整形されます。なんだ簡単じゃんと思うかと思いますが、オートフォーマット設定を前述で話しましたNetBeansで行うとかなり大変な作業となります。NetBeansにもオートフォーマット設定はありますが、NetBeansはオートフォーマットの設定が細かすぎて、初心者にはどこをどう設定していいかわからないと悲鳴をあげるかと思われます。
ただし、詳細の設定までできますので、開発ルールが細かく指定されているのであればその指定通りに設定できるので、その点ではありがたいですが。
具体的に例をあげるとキリがありませんので、一部NetBeansのオートフォーマットの設定例を抜粋すると、スペースを設定するだけでもかなり細かい設定が可能となっています。スペースをあける箇所の指定としてキーワードの前、丸括弧の前、演算子の周囲、etcなど他にも項目がありますが多いため省略します。
このようにNetBeansのオートフォーマットは設定項目が多く、かなり細かい設定まで可能ですが、その分設定に時間も掛かります。私もNetBeansのオートフォーマット設定にはかなり苦戦しました。その点Visual Studio Codeのオートフォーマットは設定が簡単でコードを見やすいため開発する時に非常に助かっています。
オートフォーマットは設定すべきか
ここまでオートフォーマットの設定方法や必要性を述べてきましたが、オートフォーマットの設定有無については基本的に私は設定しておくべきだと考えています。
ただし基本的と述べたのは、あくまで開発ルールを理解しているうえで使用するべきと考えているからです。例えば開発初心者がオートフォーマットの設定を使用して開発するとしたら、開発している本人はコード記述の基本ルールを理解せずに開発を進めるかもしれません。
オートフォーマットされたコードを見ればルールは自然と理解するかもしれませんが、そうでない人もいるかもしれません。現に私が昔にコードレビューした方にはコードの改行、スペースルールを知らないまま開発している方もいました。
自動でコードを整形してくれるということは時間短縮になり、開発者にとってありがたいのですが、自動に頼り切ってしまうのも危険であると考えます。開発するうえで正しい知識とルールを「理解」することは大事であり、この「理解」を自動に任せすぎてしまうと言うのは「理解せずに」開発していることにもなるからです。自動化も大事ですが、自分で考えて動くことで自身の成長に繋がると考えます。