知らないと損する!プロが使ってるコード品質向上テクニック5選

プログラミング初心者から中級者にとって、「動くコード」と「良いコード」の違いを理解することは、エンジニアとしての成長に欠かせません。今回は、現場で本当に使われている実践的なテクニックをご紹介します。

1. 関数は1つのことだけをする(単一責任の原則)

悪い例:

function processUser(userData) {
    // ユーザーデータの検証
    if (!userData.email || !userData.name) {
        throw new Error('必須項目が不足しています');
    }
    
    // データベースに保存
    const user = database.save(userData);
    
    // メール送信
    emailService.sendWelcomeEmail(user.email);
    
    // ログ出力
    console.log(`新規ユーザー登録: ${user.name}`);
    
    return user;
}

良い例:

function validateUserData(userData) {
    if (!userData.email || !userData.name) {
        throw new Error('必須項目が不足しています');
    }
}

function saveUser(userData) {
    return database.save(userData);
}

function sendWelcomeEmail(email) {
    return emailService.sendWelcomeEmail(email);
}

function processUser(userData) {
    validateUserData(userData);
    const user = saveUser(userData);
    sendWelcomeEmail(user.email);
    console.log(`新規ユーザー登録: ${user.name}`);
    return user;
}

なぜこれが重要?

  • バグの原因を特定しやすい
  • テストが書きやすい
  • 再利用性が高まる

2. エラーハンドリングを適切に行う

多くの開発者が見落としがちなのが、エラーハンドリングです。

悪い例:

async function fetchUserData(userId) {
    const response = await fetch(`/api/users/${userId}`);
    const data = await response.json();
    return data;
}

良い例:

async function fetchUserData(userId) {
    try {
        const response = await fetch(`/api/users/${userId}`);
        
        if (!response.ok) {
            throw new Error(`HTTP Error: ${response.status}`);
        }
        
        const data = await response.json();
        return { success: true, data };
    } catch (error) {
        console.error('ユーザーデータの取得に失敗:', error);
        return { success: false, error: error.message };
    }
}

3. 意味のある変数名・関数名を付ける

悪い例:

function calc(a, b, c) {
    return a * b * c / 100;
}

const d = new Date();
const x = d.getFullYear() - 2000;

良い例:

function calculateTax(price, taxRate, discountRate) {
    return price * taxRate * discountRate / 100;
}

const currentDate = new Date();
const yearsSince2000 = currentDate.getFullYear() - 2000;

4. 定数を使って「マジックナンバー」を排除

悪い例:

function isAdult(age) {
    return age >= 20;
}

function calculateDiscount(price, membershipYears) {
    if (membershipYears >= 5) {
        return price * 0.1;
    }
    return 0;
}

良い例:

const ADULT_AGE = 20;
const SENIOR_MEMBERSHIP_YEARS = 5;
const SENIOR_DISCOUNT_RATE = 0.1;

function isAdult(age) {
    return age >= ADULT_AGE;
}

function calculateDiscount(price, membershipYears) {
    if (membershipYears >= SENIOR_MEMBERSHIP_YEARS) {
        return price * SENIOR_DISCOUNT_RATE;
    }
    return 0;
}

5. コメントは「なぜ」を書く、「何を」は書かない

悪い例:

// 年齢を18と比較する
if (user.age >= 18) {
    // ログインを許可する
    allowLogin(user);
}

良い例:

// 法的要件により、18歳未満はサービス利用不可
if (user.age >= 18) {
    allowLogin(user);
}

まとめ:小さな改善が大きな差を生む

これらのテクニックは一見地味に見えますが、プロジェクトが大きくなるほど、チーム開発になるほど、その威力を発揮します。

今日から実践できること:

  • 既存のコードを1つずつリファクタリングしてみる
  • 新しく書くコードでは必ずエラーハンドリングを入れる
  • 変数名に迷ったら、3ヶ月後の自分が理解できるかを考える

コード品質の向上は一朝一夕にはいきませんが、継続することで確実にスキルアップできます。ぜひ今日から始めてみてください!


よく参考にさせていただいているEngineerCompassさんのサイトはこちら

Engineer Compass -

コメント

タイトルとURLをコピーしました