開発ブログ一覧に戻る
開発ストーリー2026年1月9日

なぜコードの書き方を揃えるのか

一括採点のプログラムを書くとき、私は「書き方のルール」を決めています。 今は1人で開発していますが、将来、他の人と一緒に開発するかもしれない。 そのときのために、「こう書く」と決めておくことが大切です。

なぜ書き方を揃えるのか

学校の書類を考えてみてください。 先生ごとに書き方がバラバラだと、読むのに時間がかかります。 フォーマットが統一されていれば、どの先生の書類もすぐに理解できます。

プログラムも同じです。 書き方がバラバラだと、他の人が読んだとき「これ何だっけ?」と 毎回考えなければなりません。 ルールを決めておけば、誰が書いても同じような見た目になり、 読む人の負担が減ります。

ルールを決めるメリット

  • 誰が読んでも分かりやすい
  • 書くときに「どう書こう」と迷わない
  • 間違いに気づきやすい
  • 新しい人が参加しやすい

自動で整える仕組み

とはいえ、「ルールを覚えて、毎回気をつけて書く」のは大変です。 そこで、自動で整えてくれる道具を使っています。

自動整形ツール
  • Prettier: 字下げやスペースを自動で揃える。 ファイルを保存するだけで、見た目が整う。
  • ESLint: 「こう書いた方がいい」「ここが間違っている」と教えてくれる。 自動で直せるものは直してくれる。

これらの道具を使うと、細かいルールを覚えなくても、 ファイルを保存するだけで自動的にルール通りになります。 人間が気をつけるのは、道具では判断できない部分だけです。 以下では、そうした「人間が判断する部分」のルールを紹介します。

名前の付け方

パソコンでファイルを保存するとき、名前をつけますよね。 「書類1.docx」より「2024年度_1学期_成績一覧.docx」の方が、 後で探すときに分かりやすい。 Excelでも、列に「A」「B」「C」と表示されるより、 「氏名」「点数」「順位」とラベルがある方が読みやすいです。

プログラムでも同じです。 プログラムでは、計算結果などのデータを一時的に保存しておく「箱」を使います。 たとえば、「生徒の人数」を計算して、後で使うために取っておきたい。 そのための箱を用意して、名前をつけます。

箱の名前がバラバラな例

  • Aさんは生徒の人数を「cnt」という箱に入れた
  • Bさんは生徒の人数を「num」という箱に入れた
  • Cさんは生徒の人数を「studentCount」という箱に入れた

「cnt」は「count(数)」の略、「num」は「number(数)」の略です。 略し方は人それぞれ。 後からプログラムを読む人は「この箱には何が入っているんだろう?」と 毎回調べなければなりません。

一方、「studentCount(生徒の数)」なら、名前を見ただけで分かります。 だから、名前の付け方にもルールを設けています。

名前の付け方のルール
  • 省略しない(cnt → count、num → number)
  • 役割が分かる名前にする(count → studentCount)
  • 英語で統一する(生徒数 → studentCount)

ファイル名を「書類1」ではなく「成績一覧」にするように、 プログラムの中でも分かりやすい名前をつける。 単純なことですが、これがあるとないとで読みやすさが大きく変わります。

使わないコードは消す

プログラムを開発していると、機能を追加したり、 やり方を変えたりすることがよくあります。 たとえば、「採点結果の表示方法を新しくしよう」と思って、 新しいコードを書いたとします。

このとき、前のコードはどうするでしょうか。 「新しい方法がうまくいかなかったら戻せるように」 「参考になるかもしれないから」 と、前のコードを残しておきたくなります。

よくある状況

  • 新しい表示方法を作った → 前の表示方法のコードを残す
  • 計算方法を改善した → 前の計算方法を無効化して残す
  • 使わなくなった機能がある → 「いつか復活するかも」と残す

部屋の整理と同じです。 「いつか使うかも」と取っておいたものが積み重なると、 本当に必要なものが見つけにくくなります。 プログラムでも、使っていないコードが残っていると、 後から読む人が混乱します。

使わないコードが残っていると
  • 「これは今も使っているのか?」と調べる手間がかかる
  • 「なぜ残っているのか」と悩む
  • 間違えて古いコードを使ってしまうことがある

一括採点では、使っていないコードは消すルールにしています。 「後で必要になったら?」と心配する人もいるかもしれませんが、 Gitという道具を使うと、過去のコードはいつでも取り出せます。 削除しても履歴に残っているので、必要になったら復元できます。 だから、今使っていないものは思い切って消しても大丈夫です。

ファイルの置き場所

一括採点は、約650個のファイルで構成されています。 小さなメモ帳アプリなら数個のファイルで済みますが、 採点画面、成績表、PDF出力...と機能が増えるほどファイルも増えます。

650個のファイルがバラバラに置いてあったら、 「あの処理はどこにあるんだっけ?」と探すだけで日が暮れてしまいます。 だから、ファイルをどのフォルダに置くかにもルールを設けています。

置き場所の考え方

  • いろんな場所で使うもの: 全体の共有フォルダに置く
  • 特定の機能でしか使わないもの: その機能のフォルダ内に置く

例えば、「生徒」のデータは採点画面でも成績表でも使います。 だから共有フォルダに置きます。 一方、「答案をアップロードする処理」は答案管理画面でしか使いません。 だから答案管理画面のフォルダ内に置きます。

本棚と同じです。 よく使う辞書は手の届く場所に、 特定の教科でしか使わない資料はその教科のコーナーに。 ルールを決めておけば、誰でも目的のものを見つけられます。

型を決める

プログラムでは、データの「型」を決めることができます。 型とは、そのデータがどんな形をしているかの定義です。

例えば「生徒」のデータなら、 「名前は文字」「出席番号は数値」「IDは文字」のように、 どんな項目があるか、それぞれ何が入るかをあらかじめ決めておきます。

型を決めておくと、プログラムが間違いをチェックしてくれます。 「出席番号に文字を入れようとしている」 「名前の項目がない」 といったミスを、動かす前に発見できます。

型を決めるメリット
  • 「生徒のデータに出席番号がない!」と事前に気づける
  • 「点数に文字を入れてしまった」というミスを防げる
  • どんなデータを渡せばいいか一目で分かる

一括採点では、データベース(SQLite)の設計から型を自動生成し、それをプログラム全体で使っています。 同じデータなのに場所によって型が違うと混乱するからです。 詳しくは「データの型を統一する」の記事で解説しています。

コメントと説明書

プログラムには「コメント」を書くことができます。 プログラムの動作には影響せず、人間向けのメモを残せる機能です。

ただ、何でもコメントを書けばいいわけではありません。 先ほど説明した「名前の付け方」のルールを守っていれば、 名前を見るだけで何をしているか分かります。

名前で分かる例

// ユーザーを取得する    ← このコメントは省略できる
const user = getUser()   ← 「getUser」で分かる

getUserという名前が「ユーザーを取得する」という意味を表しています。 この場合、コメントを書いてもいいですが、省略しても伝わります。

むしろ役立つのは、コードを読んだだけでは分からない情報です。 「なぜそうしているか」という背景や意図は、 コードには書いていないからこそ、コメントで補足すると助かります。

背景情報を補足するコメントの例

  • 「A4縦で印刷する前提なので、この余白にしている」
    → なぜこの数値なのか、意図が分かる
  • 「小数点以下は四捨五入ではなく切り捨て(学校の成績処理の慣例に合わせた)」
    → 理由があって切り捨てにしていることが分かる
  • 「古いバージョンのファイルとの互換性のため、この形式で保存する」
    → なぜこの形式なのか、経緯が分かる

こうした背景情報があると、後から読む人が 「なぜこうなっているのか」を理解しやすくなります。

処理のまとまりには「説明書」を書く

プログラムでは、一連の処理をまとめて名前をつけることができます。 例えば「Excelファイルを書き出す処理」をひとまとめにして、 「exportToExcel」という名前をつける。 こうしておくと、他の場所から「exportToExcel」と書くだけで、 その処理を呼び出せます。

こうした「処理のまとまり」には、説明書を書いておくと便利です。 何をする処理なのか、何を渡せばいいのか、何が返ってくるのか。 一括採点ではJSDocという形式で書いています。

JSDocの例

/**
 * プロジェクトの採点データをExcel形式で書き出す
 *
 * @param projectId - 書き出すプロジェクトのID
 * @param options - 書き出しの設定
 * @returns 書き出されたファイルの保存場所
 */
function exportToExcel(projectId, options) { ... }

/**で始まる部分がJSDocです。 この形式で書いておくと、開発ツールが自動で読み取って、 処理を使うときに説明をポップアップで表示してくれます。

一括採点では、他のファイルから呼び出される処理には 必ずJSDocを書くルールにしています。 名前だけでは「何を渡せばいいか」「何が返ってくるか」までは 分からないからです。

コメントとJSDocの違い

  • コメント: 処理の途中で、背景や意図を補足する(任意)
  • JSDoc: 処理のまとまりに「何をするか」「何を渡すか」「何が返るか」を書く(ルール)

コードの書き方を揃えるのは、面倒に見えるかもしれません。 でも、ルールがあることで、書く人も読む人も楽になります。

一括採点では、できるだけ自動で整えてくれる道具を使って、 人間が気をつけることを減らしています。 ルールを覚えるのではなく、道具に任せる。 それが長く続けられる開発の秘訣です。

詳しいルールは、GitHubのドキュメントで公開しています。

一括採点を使ってみませんか?

最新版をダウンロードして、採点作業を効率化しましょう。

最新版をダウンロード

一括採点

中学校の先生が、全国の先生のために作った、採点ツール。

© 2023-2026 KeppyNaushika. AGPLv3 オープンソースソフトウェアとして開発しています。