2024.05.31

文系2年目エンジニアが即戦力と感じた生産性向上ツール、【スニペット】をご紹介!

Just a moment... (32146)

みなさんこんにちは!文系新卒2年目エンジニアのT.Kと申します。
この記事では、私が1年間エンジニアを経験して「即戦力!」だと感じた生産性向上ツールについて紹介いたします。
さて、そんな即戦力ツールとはいったい何なのでしょうか?
ずばり、スニペットです!
今回は、基礎知識からメリット、活用法まで紹介しますので、ご存じの方も初耳の方もぜひ最後までご覧ください!

スニペットとは?

スニペットとは、プログラミング時に繰り返し使うコードブロックを保存し、短いキーワードで呼び出せる機能で、VSCodeにも備わっています。
これを使用することで、コーディング速度を上げ、コードの一貫性を保ちながらタイピングの手間を省くことが可能です。
簡単に言うと、スニペットはプログラミングのためのショートカットキーです。

スニペットを使用するメリット

次に、スニペットを使用するメリットを以下に簡単に紹介します。
  • 時間の節約
  • ミスの減少
  • 一貫性の保持
  • 学習スピード向上
開発時間の削減やミスの減少はもちろんですが、コードに一貫性を持たせることでプログラムの可読性が向上し、チームでの開発をスムーズにする効果があります。
スニペットは、個人だけでなくチーム開発の際にも役に立つ機能であり、より品質の高いプログラムをよりスピーディーに提供可能にする強力なツールなのです。

スニペットの基礎知識

スニペットの構造

前述したとおり、スニペットはプログラミングの際によく使うコードを簡単に挿入できるようにする機能です。
かなり便利なスニペットですが構造はシンプルで、以下4つの要素から成り立っています。
Name コードの内容を表わすタイトル
Prefix スニペットを呼び出すためのキーワード
Body 実際に挿入されるコードやテキストの内容
Description スニペットの内容を簡潔に説明するテキスト

図1

「Body」で記述されたコードを「Prefix」により呼び出す流れとなります。

スニペットの作成方法

作成方法もシンプルで、以下3つのステップで作成できます。
  • コマンドパレット(ctrl+shift+p)で「snippets: Configure User Snippets」を検索
  • 既存の言語スニペットファイルを選択 or 新しいグローバルスニペットファイルを作成
  • 上記構成(スニペットの構造)通りに入力し保存
【その他機能】
・\t​でタブ1つ分のインデント追加
・\nで改行

スニペットの便利技

続いて、より使いやすくするための便利機能を紹介いたします。

タブストップ

タブストップを活用することでコードの柔軟性と再利用性を高められます。
使用方法は単純で、フォーカスさせたい順番に$1$2」と記述するだけです。
例えば下記画像ですと、まず${1:FistTab}」と入力された箇所がフォーカスされ、tabキーを押すことで${2:ScoundTab}」にフォーカスが移ります。
このように、変数名等の毎回変更が必要となる箇所を高速に入力でき、使用用途に応じたカスタマイズが容易に実現可能になります。

図2

変数

スニペットの変数を活用することで、動的なスニペットの作成が可能です。
例えばバッチクラスの大枠をスニペット化する場合、クラス名の箇所に「${TM_FILENAME_BASE}」と記述しておきます。
こうすることで、クラス名に応じたスニペットの挿入が可能となり、ファイル毎に名称を編集する必要がなくなります。
"BatchClass": {
        "prefix": "batchclass",
        "body": [
            "public class ${TM_FILENAME_BASE} implements Database.Batchable<SObject>, Database.Stateful {",
            "\tpublic Database.QueryLocator start(Database.BatchableContext bc){",
            "\t\tString query = 'SELECT Id, Name, OwnerId FROM ${1:ObjectName}';",
            "\t\treturn Database.getQueryLocator(query);",
            "\t}",
            "\t",
            "\tpublic void execute(Database.BatchableContext bc, List<Opportunity> scope){",
            "\t\tList<Task> newTaskList = new List<Task>();",
            "\t\tfor(${1:ObjectName} s : scope){",
            "\t\t\tnewTaskList.add(new Task(",
            "\t\t\t\tSubject = 'Call To' + s.Name",
            "\t\t\t\t, Type = 'Call'",
            "\t\t\t\t, WhatId = s.Id",
            "\t\t\t\t, ActivityDate = Date.today().addDays(3)",
            "\t\t\t\t, OwnerId = s.OwnerId",
            "\t\t\t\t, Status = 'Not Started'",
            "\t\t\t));",
            "\t\t}",
            "\t\tinsert newTaskList;",
            "\t}",
            "\t",
            "\tpublic void finish(Database.BatchableContext bc){",
            "\t\tSystem.debug('★★ FINISH : ${TM_FILENAME_BASE} ★★');",
            "\t}",
            "}"
        ],
        "description": "バッチクラスのテンプレート"
    }
batchClassSnippet

図3

タブストップと変数を活用することで、柔軟性を持ち動的なスニペットの作成が可能になります。
個人的に、1度の入力で複数箇所の一括編集できるよう設定可能なタブストップはかなり重宝しています。

スニペットと相性の良い機能

ショートカットでのスニペット呼び出し

「Snippets: Insert Snippet」をショートカットとして呼び出せるようにしておくことで、スニペットのプレフィックスを忘れた場合でも問題無く使用できるようにしておけます。
※ctrl+k→ctrl+sでショートカット設定を開き、Insert Snippetと検索すればSnippets: Insert Snippetのショートカットキーを設定できます
(私はctrl+alt+sと設定しています)

Git

プロジェクトでのソース管理をGitで実施しているのであれば、チーム内でのスニペットの共有が容易に実現可能です。
手順を下記に示します。
  • コマンドパレットで「snippets: Configure User Snippets」を検索
  • 「新しいグローバルスニペットファイル」をクリックし、任意の名称でスニペットファイルを作成
  • スニペットファイルを.vsCodeフォルダ配下へ移動
  • 上記スニペットファイルをGit管理対象とするよう.gitignoreを編集
  • Gitへプッシュする

図4

以上でGit上でスニペットを管理できるようになり、チームへの共有が可能となります。
※.vsCodeフォルダ配下へ作成したスニペットの対象範囲は、そのプロジェクト内のみとなります。

おわりに

今回はプログラミングを効率化するスニペットについて紹介してきました。
全てのコードを覚えるのは厳しいと思うのですが、コードをスニペットとして保存し辞書のように使えばかなり楽になります。
個人での使用も効果的ですが、チームでの利用もかなり効果的です。
チームで試行錯誤しながら使用することが、より実践的なスニペットをつくり上げるポイントだと思います。
今後、さらに良いツールや小技等見つけましたら紹介していこうと思います。
最後までご覧いただきありがとうございました。
ではみなさん、良いプログラミングライフを!
40 件
     
  • banner
  • banner

関連する記事