読者です 読者をやめる 読者になる 読者になる

MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

25. 見られて恥ずかしいデータは使わないこと Rod Begbie:『プログラマが知るべき97のこと』

以下の記事は,オライリージャパン社から出版された

プログラマが知るべき97のこと』

の中から1つのエッセイを選び,

そのエッセイを,クリエイティブコモンズ3.0の条件の元で転載したものです.

Creative Commons ― 表示 3.0 アメリカ合衆国 ― CC BY 3.0

本書の内容は,オープンソースモデルに従い,

ほぼ無制限で利用が可能です.

クリエイティブ・コモンズ表示3.0の条件下で,

自由に使用することができるのです.

つまり,どのエッセイも,

著者の名前を明記すれば,自由に転載,改変が可能であるということです.

ーー"はじめに"から抜粋 pXII


もし,他のエッセイを読みたい場合には,

記事末のリンクを辿るか,

以下のリンク先のTwitterアカウントのつぶやきからお探し下さい.

Twitter Account: 97 Things Bot



また,元の英文によるエッセイを読みたい方は,

こちらを参照して下さい.

Contributions Appearing in the Book - Programmer 97-things


25. 見られて恥ずかしいデータは使わないこと ロッド・ベグビー(Rod Begbie):『プログラマが知るべき97のこと』:

夜遅くのことでした.

私はページレイアウトのテストのため,

サンプルデータを入力していました.



ユーザ名には,

英国のパンクロックバンド,

ザ・クラッシュのメンバーの名前を使いました.

会社名には,同じく英国のパンクロックバンド,

セックス・ピストルズの曲名を使いました.

あとはティッカーシンボル*1を入れるだけです.

そこで私は,卑猥な4文字の言葉を

大文字で入れることにしたのです.



そう,皆さんもご存知の,"F"で始まる言葉かなんかを使ったわけです.



特に問題はないだろうと思っていました.

自分や他のプログラマが面白がって見るだけのものだし,

どうせ翌日には「本物」のデータソースに

入れ替えることになっていたからです.

ところが翌日,

プロジェクトマネージャが例の4文字言葉が表示されている

スクリーンショットをとり,あるプレゼンに使ってしまったのです.



プログラミング中の,

この種の「いたずら」や「武勇伝」はよくある話です.

「まあ誰も見ないのだから」

と油断していると,

思いがけず多くの人の目に触れてしまうことがあるのです.



露呈の仕方は様々ですが,

いずれにしろ珍しいことではありません.

しかし,関わったプログラマ個人や,

開発チーム,あるいは会社全体にとっては.

命取りになりかねません.

どんなパターンがあり得るか,例をいくつか挙げてみましょう.



進捗会議中,

まだ機能が実装されていないボタンを顧客がクリックしてしまう.

すると,「二度とクリックすんじゃねーぞ,バーカ!」

というメッセージが表示される.



レガシーシステムの保守を担当するプログラマが,

エラーダイアログの追加を支持される.

そこで彼は,既存のログ機能を出力しようと考える.

しかし,元々は裏で動いていて,

出力がユーザの目に触れることは無かったログ機能だったために,

保守作業によって

「おい,バットマン,データベースの糞野郎がヘマをしやがったぜ!」

といったメッセージが画面に表示され,ユーザから見えるようになってしまう.



誰かが,テスト用の管理インターフェースと,

製品版の管理インターフェースを混同してしまい,

ふざけたデータを入力してしまう.

その結果,オンラインストアの顧客が,

「等身大ビル・ゲイツ型マッサージロボット,価格100万ドル」

といった商品が売られているのを眼にすることになる.



「好事門を出でず,悪事千里を走る」

(良いことをしてもあまり広まらないが,

 悪いことをすると,その噂は瞬く間に広がるということ)

というのは,古くから言われることです.

今の時代なら,なおさらそうでしょう.

誰かの「あら」が見つかれば,

その噂は,Digg*2,Twitter,Flib-Flarbなどによって,

あっという間に世界中に広まってしまいます.

担当者が寝ている間に,

タイムゾーンの違う国に広まってしまえば,

何も手を打つことはできないでしょう.

ソースコードの中でさえ,

まったく安心とは言えません.

2004年にはWindows2000ソースコードのTARアーカイブが

ファイル共有ネットワークに流出しています.

その時は,

ソースコードに卑猥な言葉,

ふざけた言葉が使われていないか,

grepで嬉々として調べている人が大勢いました.

(実を言えば,その時に発見された

//TERRIBLE HORRIBLE NO GOOD VERY BAD HACK

(実に実にひどい,まったく良いところの無い,最悪のハッキングだ)

というコメントを私は気に入ってしまい,

以来,何度か使ってしまっています・・・・)



要するに,

コードに何かテキストを入力する時に,

コメントであれ,

あるいはログ,ダイアログ,テストデータであれ,

常に「これがもし公になったとして問題にならないか」

と自問せよ,ということです.

そうすれば,突然,卑猥な言葉が大写しになり,

その場にいる全員が赤面するというような事態は防げます.



■著者データ

[ロッド・ベグビー (Rod Begbie)]

スコットランド出身.

ただし現在はサンフランシスコを故郷だと思っている.

Slide社に勤務し,個性の強い技術者たちを束ね,

開発作業を進めることを仕事にしている.

以前はCurrent TVでAPIアーキテクトを勤めたこともあれば,

Bose社で研究開発の仕事に没頭したこともある.

また,Sapientでコンサルティング業務に従事したこともあれば,

銀行システムの基盤チームで働いている時に,

(最初の)ドットコムバブルに襲われて,逃げ出したこともある.

その時は,定額年金の解析システムの構築をしていた.

そういうだけで退屈そうな仕事だと思う人は多いと思うが,

実際に退屈な仕事だった.


関連記事

1.分別のある行動 Seb Rose:『プログラマが知るべき97のこと』 - MY ENIGMA

2.関数プログラミングを学ぶことの重要性 Edward Garson:『プログラマが知るべき97のこと』 - MY ENIGMA

3.ユーザが何をするかを観察する (あなたはユーザではない) Giles Colborne:『プログラマが知るべき97のこと』 - MY ENIGMA

4.コーディング規約を自動化する Filip van Laenen:『プログラマが知るべき97のこと』 - MY ENIGMA

5.美はシンプルさに宿る Jorn Olmheim:『プログラマが知るべき97のこと』 - MY ENIGMA

6.リファクタリングの際に注意すべきこと Rajith Attapattu:『プログラマが知るべき97のこと』 - MY ENIGMA

7.共有は慎重に Udi Dahan:『プログラマが知るべき97のこと』 - MY ENIGMA

8. ボーイスカウト・ルール Robert C. Martin:『プログラマが知るべき97のこと』 - MY ENIGMA

9. 他人よりまず自分を疑う Allan Kelly:『プログラマが知るべき97のこと』 - MY ENIGMA

10. ツールの選択は慎重に Giovanni Asproni:『プログラマが知るべき97のこと』 - MY ENIGMA

11. ドメインの言葉を使ったコード Dan North:『プログラマが知るべき97のこと』 - MY ENIGMA

12. コードは設計である Ryan Brush:『プログラマが知るべき97のこと』 - MY ENIGMA

13. コードレイアウトの重要性 Steve Freeman:『プログラマが知るべき97のこと』 - MY ENIGMA

14. コードレビュー Mattias Karlsson:『プログラマが知るべき97のこと』 - MY ENIGMA

13. コードレイアウトの重要性 Steve Freeman:『プログラマが知るべき97のこと』 - MY ENIGMA

14. コードレビュー Mattias Karlsson:『プログラマが知るべき97のこと』 - MY ENIGMA

15. コードの論理的検証 Yechiel Kimchi:『プログラマが知るべき97のこと』 - MY ENIGMA

16. コメントについてのコメント Cal Evans:『プログラマが知るべき97のこと』 - MY ENIGMA

17. コードに書けないことのみをコメントにする Kevlin Henney:『プログラマが知るべき97のこと』 - MY ENIGMA

18. 学び続ける姿勢 Clint Shank:『プログラマが知るべき97のこと』 - MY ENIGMA

19. 誰にとっての利便性か Gregor Hohpe:『プログラマが知るべき97のこと』 - MY ENIGMA

20. すばやくデプロイ,こまめにデプロイ Steve Berczuk:『プログラマが知るべき97のこと』 - MY ENIGMA

21. 技術的例外とビジネス例外を明確に区別する Dan Bergh Johnsson:『プログラマが知るべき97のこと』 - MY ENIGMA

22. 一万時間の訓練 Jon Jagger:『プログラマが知るべき97のこと』 - MY ENIGMA

23. ドメイン特化言語 Michael Hunger:『プログラマが知るべき97のこと』 - MY ENIGMA

24. 変更を恐れない Mike Lewis:『プログラマが知るべき97のこと』 - MY ENIGMA

*1:ティッカーシンボル (Ticker symbol) は、株式市場で上場企業や商品を識別するため付けられる符丁のこと.ティッカーシンボル - Wikipedia

*2:Diggはソーシャルニュースサイトの一種である.ユーザーの投ずる「票(digg)」の数によってエントリーの順位が決められるシステムを採用していることが特徴.またDel.icio.usとは異なり、コメント欄での議論に重点が置かれている点も特徴Digg - Wikipedia