IT業界で気づいたことをこっそり書くブログ

くすぶってるアプリエンジニアが、日々気づいたことを適当に綴っていきます(受託→ベンチャー→フリー→大企業→ベンチャー→法人化(今年))

(小ネタ)ピタゴラ装置を作らないために

ピタゴラ装置というか、ルーブ・ゴールドバーグ・マシンなんですが。

参考:

▲超厳選▼ ピタゴラ装置傑作集(Rube Goldberg Machine)コロコロからくり装置 - NAVER まとめ

 

ステレオタイプの発明家が作ってるような、ゴテゴテの仕組みをループゴールドバーグマシンと言います。ピタゴラスイッチもその一種です。

 

www4.nhk.or.jp

 

ピタゴラ装置は見ていて楽しいです。
しかしこれらをプログラムで作ると大変なことになります。
保守改修できません。
何がどうなってそうなってるのかわからないし、1個手を入れたら全体のバランスが崩れて動かなくなってしまいます。
端的に言えば不安定なんです。

 

プログラムでピタゴラ装置を作らないためには

  • それがいつ呼ばれるか明確(In)
  • それがどう影響するか明確(Out)
  • それが何なのかが明確(What)

たぶんこれだけです。
これだけで愉快な不安定装置は、面白みのない安定装置に変化します。

 

ですがこれができていないコードが世の中にあまりに多くて・・・というのはまあ別の話なので辞めましょう。

 

ピタゴラ装置を回避しようとすると割と難しい

実際に回避しようとすると難しいことがわかります。
特にチーム開発では難しいです。
「InとOutとWhatを明確に」とは言え、それらを一度作った時は明確でも、改修していくうちに何が何だかわからなくなるかもしれません。

  • チーム内で設計ルールを明確にする
  • コードレビューする
  • 最初に作るときに「明確にせざるを得ない縛り」を上手く組み込んでいく

みたいな苦労をしないと、気づけばピタゴラ装置ができあがってるのです。
怖いですね。

 

途中参加が多いフリーランスピタゴラ装置を修正できなければならない

上記の手段、途中参加の人には使えません。
つまりフリーランスは使えないので分解できることが求められます。
たぶんフリーランスに求められるレベルって普通に仕事できるレベルより一段上にあるんですよねここらへん。そのうちそれも書きたいです。