24
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ちょうぜつAdvent Calendar 2020

Day 7

マンガでわかるお邪魔妖怪アンチパターン

Last updated at Posted at 2020-12-07

B863DC91-5EA0-4984-B8C3-9A32A8B6C51A.png
http://wiki.c2.com/?PolterGeists

プログラムの文脈とは何の関係もないように見える、神出鬼没なオブジェクトが現れるパターンです。原文ではポルターガイストと言われています。

妖怪やポルターガイストは普通の人の目には見えないけれど、あるとき突然現れて、勝手に家具を動かすなどの悪さをしますね。プログラムコードの妖怪が厄介なのは、消してしまうと結果が変わることがある点です。

こういったオブジェクトはたいてい、プログラムのフローとは異なる空間 (グローバル変数や static フィールド、長寿命なコンテキストなど) での副作用を利用した制御をしています。この副作用に、いつも通るからと、当初意図されたもの以外の振る舞いが追加されている場合もあり、誰もその作用を把握できていない謎の処理になっていることもよくあります。

そうしたお祓いしにくい妖怪が最初から住み着かないように、できるだけ入出力でのみデータを扱うプログラムを書き、副作用を用いるにしても、その名前から作用が明らかなものにし、そこに複数の余計な処理を含まないようにしておきましう。

24
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?