🥖

素朴なコードが、設計話の出発点

2021/06/20に公開

平日昼間はアプリケーション開発者として勤務している。設計について会話することが増えたのだが、最近よく考えていることを書き留めておきたい。

コードは素朴に書いてあることが一番で、プログラミング始めたての人でも読み書きしやすいコードが良いと思う。ただ、コードが素朴に書けない時や変更が難しくなる時は何らかの構造的な 課題があるはずで、ここでようやく設計上の工夫が必要になってくるのではないだろうかと考えている。

PRや設計の議論で、「このクラスは責務を持ちすぎだ」「このクラスはXXを知りすぎている!」という会話を耳にする。その違和感自体はとても大切で、Code Smellsと呼ばれるものだろう。ただ、それをそのまま会話の議題として使い続けてしまうと議論がブレたり、今着目しなくても良いところに時間を使ってしまうのではないか。会話をする上で、次のことに気をつけるとよいのではと思う。

設計は何らかの課題を解決する工夫であるとするならば、違和感を感じたそこには明確な課題があるはずである。ならば、その課題が何かについて考えてみてほしい。実は課題がないかもしれない。すばらしい、それなら素朴に書いてしまおう!課題があるなら、それを解決するにはどうすればよいのかを考えてみる。もしかすると、今のスプリントではちょっとした工夫だけを実施して、あとは素朴に書いて凌いでしまっていいのかもしれない。次に新しい仕様が追加されたときに直してみるのも手だろう。[1]

違和感をそのまま口に出すな!と言いたいわけではなく、むしろ違和感をそのまま口に出してもよいチームの方が望ましいと自分は思う。その違和感をチームで大切にしながら、それってどういうことなのか?を深ぼることができれば、それでよい。もちろん、課題にして共有できるならそれが一番。やりとりも最小で済む。


無印良品のプロダクトデザインを手がける深澤直人は、無印良品のキーワードとして「MUJI is enough」というキーワードを掲げている。「これでいいじゃないか」「これで十分」という意味だ。コードを書く時も、そんなコードを書き続けたいなとたびたび思う。

キーワードのひとつとして、「MUJI is enough」という言葉があります。これは「MUJIでいい」という言葉です。例えば、「こういうものが欲しい」とイメージを持って、あちこちの店を歩いたけれども、欲しいものが見つからなかった。最後にMUJIの店に行ってみたら、「こんなものがあったんだ。思った通りのものがあった」という時に、「これでいいじゃないか」という思いを持つことです。
無印良品とクリエイター 深澤直人 | 無印良品

無印良品の未来、という文章も良いなと感じる。[2] 「このコードでいい」の品質を高めていくことが大事かなと思う。そして何より大事なのは、作っている製品が必要十分な品質のものであるということですね。

無印良品が目指しているのは「これがいい」ではなく「これでいい」という理性的な満足感をお客さまに持っていただくこと。つまり「が」ではなく「で」なのです。
しかしながら「で」にもレベルがあります。無印良品はこの「で」のレベルをできるだけ高い水準に掲げることを目指します。「が」には微かなエゴイズムや不協和が含まれますが「で」には抑制や譲歩を含んだ理性が働いています。一方で「で」の中には、あきらめや小さな不満足が含まれるかもしれません。従って「で」のレベルを上げるということは、このあきらめや小さな不満足を払拭していくことなのです。そういう「で」の次元を創造し、明晰で自信に満ちた「これでいい」を実現すること。それが無印良品のヴィジョンです。
無印良品[無印良品からのメッセージ]

脚注
  1. ただ、何でも素朴に書けばいいというわけでもなく、一度決めてしまうと変えにくい部分も存在するだろうから、そこは慎重に...。 ↩︎

  2. 最近は新疆綿周りのトピックでいまいちだなと思うことが多く、残念ですが ↩︎

Discussion