PHP未経験から始めるペアプロ

この記事は「ウィルゲート Advent Calendar 2024」の6日目の記事です。 adventar.org

はじめに

こんにちは!ウィルゲート開発グループの岩田です。 この記事では、私が経験したペアプロの魅力や得られた成長についてお話しします。少しでも参考になれば幸いです。

ペアプロとは?

ペアプロとは、ペアプログラミングの略称で、2人1組で行うプログラミング手法です。1人(ドライバー役)がコードを書く間、もう1人(ナビゲーター役)がレビューやアドバイスを行います。役割を適宜交代しながら作業を進めるため、チーム内での知識共有やスキルアップが促進されるスタイルです。

私の会社では、主に次の流れでペアプロを行いました。

  1. タスクの内容を確認する
  2. 私が実装を進める
  3. ナビゲーター役がコードをレビューし、必要に応じてアドバイスを行う

ペアプロの良かった点

即時解決の安心感

PHP未経験の私は、最初の頃「何がわからないのかが、わからない」状態でした。しかしペアプロでは、その場で疑問を口に出すことができ、すぐにアドバイスをもらえます。 実装中にエラーが出たときも、「これどうすればいいですか?」とすぐ相談できるので、無駄に時間を浪費することなく、効率的に解決できました。

コード品質の向上

ナビゲーター役の方が常にコードをチェックしてくれることで、自分では見落としがちなミスや非効率な実装を未然に防ぐことができました。これにより、コードの精度と効率性が大幅に向上しました。具体的には、以下のような点で多くの学びがありました。

  • 可読性を高めるための適切なif文の使い方

改善前(ネストが深い場合)

function checkUser($user) {
    if ($user) {
        if ($user->isActive()) {
            echo "User is active.";
        } else {
            echo "User is inactive.";
        }
    } else {
        echo "No user found.";
    }
}

改善後(早期リターンを活用)

function checkUser($user) {
    if (!$user) {
        echo "No user found.";
        return;
    }
    
    if (!$user->isActive()) {
        echo "User is inactive.";
        return;
    }

    echo "User is active.";
}
  • 可読性を高めるための変数や関数名の命名方法 例えば、あるオブジェクトが「処理中であるか」を示すフラグを管理する場合
$flag = false;

と書くと変数の意味が抽象的すぎて何を意味しているのか直感的に分かりにくいです。

$isProcessing = false;

この変数名であれば「現在処理中であるかどうか」を明示的に示しているので、コードを読んだ時にその意図がすぐに分かります。

自信を持って開発できるようになった

最初のうちは「本当にこれで正しいのか?」と不安になりがちでしたが、ペアプロを通じて少しずつ「このやり方で合っている」と自信を持てるようになりました。結果として、自分の手で新しい機能を設計・実装するスキルが身につきました。

ペアプロから得られた成長

ペアプロを通じて得られた成長を振り返ると、大きく以下の点が挙げられます。

PHPの基本スキル習得

基礎的な文法に加え、フレームワークの活用方法やデバッグの進め方を実践を通じて体系的に学ぶことができました。その結果、現在ではお問い合わせや障害対応をスムーズかつ主体的に進められるまでに成長しました。実務を通じて学んだ知識が、自信と実践力につながっています。

一人でバックエンド開発を進められる力

現在では、小規模な機能の設計から実装、テストまでを一人で進められるようになりました。また、ペアプロの中で身につけたノウハウを、実際のプロジェクトに応用できるようになりました。

まとめ

PHP未経験からのスタートでも、ペアプロという学びの環境があれば大きな成長ができることを実感しました。ペアプロを通じて得た経験やスキルを糧に、これからも新しい課題や技術に挑戦していきたいと思います。同じように未経験から挑戦する方に、この記事が少しでも役立てば嬉しいです!

「ウィルゲート Advent Calendar 2024(https://adventar.org/calendars/10272) 」、翌日はおかしょいさんによる「 愚直に RDBMS を使っていた検索機能を、全文検索エンジン OpenSearch の力で 10 倍速くしました」です。 お楽しみに!