はじめに
先日以下の記事を見つけました。
この記事を読んで、「確かに、このように書けば後から見る人が読みやすくなるな」と感じました。同時に、「競技プログラミングの場合は、この記事の内容が当てはまらない部分もあるから、別の方法を考える必要があるな」とも思い、自分なりに考えてみました。
ターゲット
- 競技プログラミングを始めたばかりの人
- コミットメッセージに悩んでいる人
- 過去のコミットを探すのに苦労したことがある人
前置き
このコミットメッセージのルールは、コンテスト中ではなく、精進(練習や復習)時の実装を想定しています。
結論
[judge_status]: [contest_name] [number] [title]
AC: ABC 376 D - Cycle
ぼくが考えたコミットメッセージの形式はこれです。以下に各項目について説明します。
judge_status: ジャッジステータス
まず最初に入れるのは「ジャッジステータス」です。ジャッジステータスとは、提出したプログラムがジャッジシステムによりどのように評価されたかを示すものです。詳しくはこちらをご参照ください。
- AC (Accepted): 正答です。運営が用意したテストを全てパスし、正しいプログラムであると判定されました
- WA (Wrong Answer): 誤答です。提出したプログラムの出力は正しくありません
- TLE (Time Limit Exceeded): 問題で指定された実行時間以内にプログラムが終了しませんでした
上記が一般的なジャッジステータスです。これ以外にもいくつかステータスがありますので、その都度適切なものを使い分けてください。今回の例では、AC
がこの部分に該当します。
contest_name: コンテスト名
次に「コンテスト名」を記載します。コンテスト名は、AtCoderのABCやARCのように略語で書くと短く読みやすくなります。今回の例では、ABC
がこの部分に該当します。
number: コンテスト番号
「コンテスト番号」はそのコンテストに付与された番号です。今回の例では、376
がコンテスト番号です。
title: タイトル
「タイトル」は、問題の正式なタイトルを記載します。今回の例では、D - Cycle
がタイトルです。
おわりに
競技プログラミングのコミットメッセージは基本的に自分用なので、正直そこまでこだわる必要はありません。しかし、こだわって書くことで、自分にとって標準的な作法が身に付き、それが現場でも役立つようになります。自分用の環境で現場を意識した技術を試すことは、将来的なスキルアップに繋がる重要なステップです。
参考記事