全知全能を目指す人のありがたい雑記

何かしら意味のあるありがた~い話か、意味のない雑念だらけの日記を書く予定です。

ハードコーディング恐怖症を患いました

ハードコーディング怖い

↓ハードコーディングしてるコード

import java.util.*;

public class Main {
    
    public static void main(String[] args) throws Exception {
        Scanner s = new Scanner(System.in);
        
        //ログインステータスは1が成功でぇ~、0が入力ミスでぇ~、-1がシステムエラーだよ!
        int loginStatus = login(s.nextLine());
        
        switch(loginStatus){
            case 1:
                System.out.println("ログイン成功");
                break;
            case 0:
                System.out.println("ユーザー名を正しく入力してください(8文字以上)");
                break;
            case -1:
                System.out.println("致命的なエラー(適当)");
                break;
        }
    }
    
    public static int login(String password){
        if(password.length() >= 8){
            return 1;
        }else if(password!= null){
            return 0;
        }
        return -1;
    }
    
}

enum使ってくれた女神のようなコード

import java.util.*;

public class Main {
    public enum loginStatus{
        Success,
        InvalidError,
        SystemError,
    }
    
    public static void main(String[] args) throws Exception {
        Scanner s = new Scanner(System.in);
        loginStatus ret = login(s.nextLine());
        
        switch(ret){
            case Success:
                System.out.println("ログイン成功");
                break;
            case InvalidError:
                System.out.println("ユーザー名を正しく入力してください(8文字以上)");
                break;
            case SystemError:
                System.out.println("致命的なエラー(適当)");
                break;
        }
    }
    
    public static loginStatus login(String password){
        if(password.length() >= 8){
            return loginStatus.Success;
        }else if(password!= null){
            return loginStatus.InvalidError;
        }
        
        return loginStatus.SystemError;
    }
    
}

サンプルだからログイン状態を3種類にとどめたけど、
これが10種類もあったら何の値かわからんこっちゃになっちゃうよ・・・。

頼む。みんな気を付けてくれ。
俺の目の前でハードコーディングを絶対にしないでくれ

追記:loginの文字数もハードコーディングだから、サーバー側のコンフィグかどこかにpasswordの最低文字数が決められると良いね。