【開発】ソースコードの秩序を守ろう

DEVELOP, GAME, Unity

プロジェクトの中で、プログラムのコーディングルールを定めるのも大切ですが、そのステップに移る前に、ひとつ意識しておいてほしいことがあります。

既存のコードに手を加える場合の話をします。

プログラマは、各々が好きなテキストエディタでプログラムを書いていると思いますが、ソースコードの自動整形ルールに関して、初期設定に頼っていたりしませんか?初期設定だと以下の様なことが簡単に発生します。

変更前のコード

using UnityEngine;
using UnityEngine.EventSystems;

public class UIGameTitle : UIBase
{
    public UIGameTitle() : base("UI/UIGameTitle", UIGroup.MainScene)
    {
    }

    public override IEnumerator OnLoaded()
    {
        yield break;
    }
}

UI関連のクラスです。
これに、処理を加えようと思った人が、関数をひとつ追加しました。

変更後のファイル

using UnityEngine;
using UnityEngine.EventSystems;

public class UIGameTitle : UIBase
{
    public UIGameTitle() : base("UI/UIGameTitle", UIGroup.MainScene)
    {
    }

    public override IEnumerator OnLoaded()
    {
        yield break;
    }

    public override bool OnClick(string name, GameObject gameObject, PointerEventData pointer, SE se) {
        switch (name) {
            case "PlayStartButton":
                return true;
        }
        return false;
    }
}

これを見て、何か思う所はありませんか?

そう、インデントが元のコードと異なっていますね。これが繰り返さるとどうなるかは、分かりますか?ピンと来ない人が居るとすれば、少し気持ちを改めた方が良い。このまま進むと無秩序なコードが誕生します。よくあることで些細なことの様に思うかもしれませんが、チームで開発している場合は大問題です。

たかがインデント、されどインデント

統一感が無くなるとプログラムの品質を損ない、結果商品の品質が下がります。これを繰り返していると、例えばEAやActivisionが開発している様な、AAAタイトルチームからは外されます。彼らは小さなことから大きな問題となり、やがて自らの首を絞めることを理解しているからです。何年も前にActivisionと仕事をしたことがありますが、中々すごいものがありました、、、。

もし、何か心当たりがあれば、今一度自身のコードを再確認してみると良いでしょう。自身の成長にもつながりますし、チーム開発とは何なのかを再確認できたりとおススメです。