SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

川口耕介のエンジニア人生相談

格好いいコードを書けるようになるにはどうしたらいいでしょうか【川口耕介のエンジニア人生相談】

第1回

  • X ポスト
  • このエントリーをはてなブックマークに追加

人のコードで異文化体験

 自分がどういうソフトウェアを書きたいのか。その追求とは別に、自分の考え方とは全く違う原理で作られたコードに触れるというのも、大事な学びの機会です。

 当時、Javaのオープンソース界隈に、James Strachanという有名な開発者がいました。色々なスタートアップでエンタープライズ向けのミドルウェアを設計・実装していました。飛ぶ鳥を落とす勢い。憧れの人だった。

 しかし、彼の書いたプログラムは、僕が大事にしていた設計原則・美しさとはてんで相容れないものでした。例えば、僕が設計の時に大事にしていた価値の一つに、間違いを誘発する自由度を持たない、というものがあります。これは実際の例ではありませんが、印象が伝わる簡単な例えを一つ。人間をモデルするPersonクラスを作っているとしましょう。人には必ず生みの母がいるので、それを仕様に加えるならば次のようになるでしょう。

class Person {
  ...
  Person getMother() { ... }
}

 James Strachan流は、ここで「void setMother(Person)」と生みの母を上書きするメソッドを入れてしまう感じです。え、そういうことが出来ちゃっていいんだっけ?と戸惑う。小さな違いのようで、大きな違い。

 でも、彼のライブラリを使っていくと、そういう書き方にはそれなりのメリットがあることが分かってくる。本来の使い方の趣旨からは外れているかもしれないんだけど、ここはちょっとガムテープで今は貼っておきたい。ここでちょっと無理にでもこうできると便利だ...…ということが結構ある。ずるをさせてくれる。

 そのうちに、声さえ聞こえてくるような気がしてくる。オープンソースだろ、ソースコードも全部おっぴろげよ。だからさ、使う人が使いたいように自由にやんなよ。ここでどうしてもこの変数を弄りたいっていうんだったら弄れるようにしておいてやるよ。子供がカッターを使いたいって言うなら、使わせてあげなよ。

 南カリフォルニアの、陽光降り注ぐビーチでサーフィンでもやっているかのようなプログラム。Sunで自分たちがやっていたことは、厳つい神学者達の宗教論争だったような気さえしてくる。だらしがない、と僕が感じたものは、使う人に委ねる謙虚さ・鷹揚さでした。

©tonktiti - stock.adobe.com

 余談ですが、後で本人に直接会ったら、本当にそんなノリの人だったのが可笑しかった。度の強い眼鏡の奥に可愛い大きな目。アロハシャツまで着ていましたからね。プログラミングは個性だな、と。

次のページ
石碑と砂浜、小説と手紙

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
この記事の著者

川口 耕介(カワグチ コウスケ)

 MicrosystemsにてJavaEEの開発に携わった後、オープンソースのCI/CDサーバJenkins及びそのコミュニティを作る。2010年よりCloudBeesにてJenkinsを事業化、CTOとして400人規模の会社へと成長させる一翼をになう。2020年よりLaunchable co-CEO。CloudBees、GoogleやNetflixなどがLinux財団と設立したContinuous Delivery Foundationにて技術監...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/21459 2025/08/22 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング