コピペはどこまで許される?

メルマガバックナンバー 2017/12/06発行

コピペはどこまで許される?

今日もどこかで、ついついコピペ

さて、今回のテーマは「コピペ」です。

プログラミング中に似たような処理を書く時、関数化が面倒になってコピペで済ます…

そんな経験はないでしょうか?

私はあります。数え切れないほどな!

分かってるんです。本当は関数やクラスにして共通化するのがベストだって。

でも、急いでるから、時間が無いから、手早く済ませたい!
それに関数やクラスにを作ると、テストが面倒だし。。。

そんな言い訳をしつつ、ついついコピペしてしまいます。

にんげんだもの

確かに共通化するのがベストなんですが、人間なのでコピペしたくなるケースもあります。

だから私は、常にコピペを悪と決めつける事ができません。
少しぐらいコピペしたって良いじゃない、という立場です。

しかしそうやって自分を甘やかすと、際限なくコピペを繰り返し、たちまちソースがカオスになります。

一体どうしたものか…

妥協の産物ブッダナンバー

仕方ないので、私は次のようなルールで妥協してます。
(もちろん余裕がある時は、必ず共通化しますよ)

 コピペは2回まで! 3回目からは共通化する。

コピペ2回、つまり「3箇所まで」の重複は許してやろう。と自分に認めています。

この3という数字、特に意味はない(シュタゲ風)直感です。

私は「仏の顔も三度まで」にちなんで、
3を仏数(ブッダナンバー)と勝手に呼んでます。

根拠はないけど心は安らぐ

なおこの自称ブッダナンバー3、私はコピペ以外にも使ってます。

配列は3次元まで。4次元以上になるならデータ構造を変える。
ループは3重まで。4重ループになるなら関数を作る。
関数は長くても3画面まで、それ以上なら分割を考える。などなど

これらが正しいかどうか? には何の根拠もありません。

でも何らかのルールを決めておけば、決断しやすく、コピペの罪悪感で胃痛がしなくなります。
また「これ以上カオスにならない」防波堤の役割も果たします。

もちろん局面によって数字は変化します。
開発環境、チームメンバー、設計方針、その他諸々の事情が絡むでしょう。

あなたも自分の数字を決めておくと、少し気が楽になるかもしれませんよ。

クイズの答え

さて、前回出題したクイズの答えです。

任天堂のファミコンに関する問題でした。

ファミコン発売当初、任天堂はアーケードで大人気だった「ドンキーコング」や「マリオブラザーズ」を移植し、ラインナップを揃えました。
特にドンキーコングは魅力的で、当時ゲームセンターでは子供達の圧倒的な人気を得ていました。

こんなキラータイトルがあったので、当然ファミコンは売れに売れ、100万台を突破します。
これだけでも十分成功なのですが、さらにある「追い風」が吹き、大ヒットどころか超ウルトラマンモスヒットに発展しました。

そのファミコンを爆発的に売れさせた「追い風」とは何でしょうか?

正解は
  風俗営業法の改正で、子供がゲームセンターに行けなくなった
です。

ソースはファミコンの開発責任者だった上村雅之氏のインタビューです。

つまり

法律が変わって、子供がゲーセンに行けなくなった
→ ドンキーコングで遊べなくなる
→ だったらファミコンでドンキーコングをやろう!

となり、ファミコンが一気に売れました。

今でこそゲーセンは市民権を得ましたが、当時はまだ悪者だったんですね。

私も友人と変装してゲーセンへ行き、見回りの先生や補導員に捕まらないかヒヤヒヤしたものです。

以上、クイズの答えでした!

今回は3名の方が応募して下さいましたが、残念ながら正解者はなしでした。

Amazonギフト券は次にキャリーオーバーしたいと思います。

モビルスーツを探せ!

さて、今回のクイズです。本サイトの隠し要素です。

【問題】
このサイトの何処かに、あるモビルスーツが隠れています。

さて、その隠れているモビルスーツとは?
(ただし広告は除く)

【ヒント】
スマホで発見するのは難しいです。多分パソコンが必要です。

 

答えが分かった方は「モビルスーツ名」と「発見場所」を書いて
このメールに返信して下さい。
※募集は終了しました

正解した方の中から1名様に、Amzonギフト券を差し上げます。
(キャリーオーバーして2000円分です)

当選した方には、メールにてギフト券コードを送信致します。

 

は?と思ったかもしれませんが、プログラマーはこういうお遊びが大好きなんです。
こんな隠し要素をよくイースターエッグと呼びます。

例えばAndroidのスマホやタブレットは
 「設定」→「端末情報」の「Androidバージョン」を3回クリックすると
何故かゲームが遊べますよ。

 

今回はここまでです。読んでいただきありがとうございました。

プログラミング書籍の館 江畑


プログラマの名言・格言・心

もっと知りたい?
C言語_初級 | C言語_中上級 | C++_初級 | C++_中上級 | C#_初級 | C#_中上級 | Java_初級 | Java_中上級 | コンピュータ_サイエンス | アルゴリズム_ | ゲーム_プログラミング | DirectX_ | Unity_ | ゲーム_デザイン | ゲームのしくみ_ | 数学_ | プログラミング_テクニック | 歴史_偉人 | ソフトウェア工学_ | 読み物_エッセー | 人生_生き方 | 創造_発想 | 雑誌_ | 漫画_小説_映画 | メルマガのバックナンバー_

Kuniaki Ebata 登録者

プログラマーで現役のスキー国体選手です。
頭脳と体を動かすのが大好きなフレンズなんだね。専門学校で先生もやってます。

教え子をゲーム会社にどんどん送り込み、世界を面白くする野望を実現中。

プログラミングが上達するメルマガやってます。

ここを見たゲーム業界の卒業生へ
新作が出たら、連絡するか現物を送ってくれると嬉しいです。
ただし18禁・CERO-Dの場合は、厳重に梱包の上、品名をパソコン部品にて送る事(だいじ)。