Going my way

いいなと思ったことをメモしていきます。

一流のプログラマ、三流のプログラマ


Advertisements


「君がプログラマとしてどの位置にいるかなんてのは、Javaの簡単なif文を書かせるを書かせるだけでわかるんだ」

まるでガチャをコンプリートしたような得意げな笑みを浮かべて、先輩は言った。

「いいか?ある文字列の中身を比較するとしよう。

String型のhoge = "hoge"という文字列オブジェクトの中身を比較することにする。

 そのときに、

if (hoge == "hoge")

と書く奴は論外だ。三流以下だ。それはわかるな?」

 

「それくらいわかります。文字列オブジェクトはequalsで比較しないと。"=="は参照変数が『同じオブジェクトを参照しているか』を比較するものですから。

例えば、

String str1 = "Hello"

String str2 = "Hello"

String str3 = new String("Hello")

で比較したときは、str1とstr2は"=="で比較してもif文でtrueは返るけど、

str1とstr3で比較したら、参照するオブジェクトが違うからfalseになります。

 

・・・だからこうすればいいでしょ?」

if( hoge.equals("hoge"))

隣にいた先輩は、ふらりと寄ったパチンコで小金を稼いで帰宅する父親のように、ニヤリと笑った。

「そこまででやっと二流だ」

少し間を置いて、先輩は言った。

「 一流のプログラマは、こうは書かない」

 「一流のプログラマなら、迷わずこう書く。

if ("hoge".equals(hoge)

 なぜかわかるか?

変数にはnullが入るかもしれないからだ。 

nullが入っていたら、NullPointerExceptionが発生する。だから、絶対にnullにならない方を先に書くんだ」

先輩は、そういうと、飲みかけのコーヒーを口に含み、今日三度目のニヤリとした笑みを浮かべた。

「プログラムってのはな、奥が深いんだよ。書き方一つとっても個性が出る。だから面白いんだ」

この時の先輩の言葉は心地良く胸に響き、頭に残った。

僕はeclipseを立ち上げ、プログラムを書き始める。

いつもより丁寧に慎重に、小説を書くように一文の意味を考えながら、コードを書いた。