タグ「思考停止の恐怖」が付けられているもの

思考停止ってこわい

よく、Unity の事を調べてて、思考停止した内容が書かれていることがある。

「よくわからないけど、まぁいいや」
「何も考えずにコピペしてきたら動いたので解決」
「考えなくてもできるから Unity3D はすごい」

これ、本当にやめてほしいなぁと思う。
そして大抵の場合、この言葉を放っているのはプログラマ以外の職業の方々だ。
プログラマでも、学生さんがやってるブログや、その講師が書いたであろう文章はこういうのが多い気がする。
おそらく
「個人用だし」
「自分用の覚書だし」
「仕事じゃないし」
「知らないし」
「気にならないし」
「そこまで説明しても他の人も分からないだろうし」

という感じで書いてあるのだろうが、大きな間違いだ。と思いたい。

ゲームっていうのはたいていの場合、非常に多くのリソース(要素)を扱う。
このリソースは誰かがしっかりと管理しないと、作っていくうちにグダグダになっていく。
何故グダグダになっていくのかと言うと、1番大きな要因としてまず上がるのは仕様が次々と変更されるからだ。

仕様変更でグダグダになると、以下のようなことが起きる。
・この挙動は、いつの仕様だったのか誰も覚えていない
・現在の挙動を説明できる仕様が見当たらない
・今動いているコードが正しいものなのか判断できない

これはリリース時期が短いプロジェクトでもよく見られる光景だ。

さて、前述の「思考停止」は何がいけないのか。
ゲームを作るのは、建造物なんかを作るのに似ている。(クリエイティブなのだから当たり前か)
何処かで手を抜けば、そのツケは最後、住んでいる時に訪れるものだ。

もちろん、例外的にそれ(数多の思考停止)が見過ごされ、何の問題もない家に見えることもあるが、それはごく少数派であって「常識」ではない。
また今までいろんなプラットフォームでゲームを開発してきた経験から言うと、このごく少数派になったことはない。

長くなるなぁ。

で、思考停止は要するに「手抜き工事」に値するわけだ。
「なんかわかんないけど、動いたからこれでいいや」
というのは、何か問題があった時に
「やべー、何がダメなのかわかんねー」
となる。
いわばバグの温床である。

また、プログラミングがコピペでできると思い込んでいる人間も性質が悪い。
「これ、コピペしたらできそうですよね」
「(アプリの仕様書もなく) 1日でできるでしょ」
これを言った直後、プログラマに殴られても文句は言えない。
プログラマは今後の拡張に耐えうるだけの設計をしなければいけないし
非常にシンプルで何もなさそうに見えても、プログラマは正常処理をするように多くの箇所に神経を使う。
また、それ以外にも今後もし他に人間がコードを触りそうなのであれば、引継ぎの為に資料の作成ないしはコメントにてコードの解説をしなければいけない。
エラーメッセージ一つをとっても、ユーザに見せてはいけない(見せるべきではない)言葉というのがある。
例えば DB と接続しようとして「ConnectionError:MySQL 3306 /var/www/hoge/user.php line:26」と表示してしまうと、開発者は分かりやすいかもしれない。
丁寧にファイルパスから行数まで出ているし、MySQL を利用中でポート番号は 3306 を利用している、というところまで読み取れる。
しかし、これは決してユーザに見えるようにしてはいけない。
ユーザが同様の開発者だった場合、セキュリティホールになりかねないからだ。(当たり前)
つまり、プログラミングの能力はこれだけでも 日本語、英語、プログラミング言語 といった3つの言語を必要とする。


上記を踏まえたうえで、思考停止したような「コピペでできますよね」とかいう戯言は寝て言えと言いたい。
「なんとなく動いたからいいや」という情報は、必ず自分で詳細まで分析しないと気が済まないプログラマの独り言でした。