先日まで短期のバイトが入ってました


先日まで短期のバイトが入ってました。プログラマバイトです。本当に短期で一週間にも満たなかったんで、お金を稼ぐというよりは、体験を目的とした感じです。

バイトだったり新人社員だったりした場合、うちの会社は仕事のやり方ってのがある程度決まっています。まず、新規のプロジェクトをお願いする事はなくて、既存のプロジェクトに参加してもらいます。そして、あるクラスのある機能の実装をお願いします。そのときに、大体この辺のメソッドをいじればいいんだよ、という事は伝えます。作業時間の目安は2時間程度。そのくらいで出来る規模です。出来上がったら、コードレビューして確認します。

このコードレビューが肝ですね。レビューは、いつも2時間くらい。つまり、実装時間と同じくらいかけます。書いてもらったコードを、ああでもないこうでもないと突き回して、ちょっと書き直させてもらうねと言って、痕跡が残らないくらい書き換えてしまいます。プログラマにとっては、自分の書いたコードをリライトされることほどの屈辱はないですよね。レビューという名を借りて公開処刑をやっているんじゃないか、という気持ちにもなります。

いろんな人の書いたコードを見てきましたが、大体みんなロジックは間違えてないんですよ。プログラミング原語は理解している。UI Kitの使い方もオッケー。アルゴリズムも悪くない。

問題は、「それをどこに書くか」ということです。つまり、どのクラスで、どういうメソッドを切るか、というところに問題の大部分が集中します。経験の浅いプログラマの場合、多くの場面でメソッドの切り方が不適切です。不必要に細かすぎたり、同一処理が分散したりしています。レビューでは、そこを指摘して、メソッドの切り直しを行います。ロジックやアルゴリズム自体は変わらないので、コピー/ペーストで済みます。これを行うと、コードが見違えるようになり、デバッグや拡張が容易になります。

じゃあ如何にして適切なメソッドの切り方を身につけるか? いろいろ考えますが、やっぱり経験しかないですかね。個人的な意見では、適切なメソッドさえ切れれば、プログラミングにまつわる多くの問題は解決します。世の中にはユニットテストとかいう類いのものがありますが、あれはメソッドが適切に切られているということを前提としていますよね。そこが不適切だったら、テストなんか無意味です。本当は、メソッドの切り方が適切かどうかテストする手法が欲しいんですが、それはまだないでしょう。

どうにかしてここを定性化できないか、と思って書いたのがオートマ本だったんですけど、うーん、物足りないですね。ソースコードの質を上げるには、レビュアーの質に頼るしかないのか、というのが現時点での結論です。

  1. コメントはまだありません。

  1. トラックバックはまだありません。