nDiki : 2008年06月14日
2008年6月14日 (土)
■ スクラッチから書き直したくなるプログラマは、書き直したプログラムもまたスクラッチから書き直したくなる。

自分がプログラムをスクラッチから書き直したいと思った時、またスクラッチから書き直したいと言われた時のためにまとめておこう。
@ スクラッチから書き直したい理由
スクラッチから書き直したいと思う理由はだいたいこうだ。
- もっと良くできると思うから
- 「もっと良いやり方がある」「自分ならもっとうまく書ける」
- 「統一されていない」「もっと汎用的にできる」
- 「今なら新しい開発環境(・新しい実行環境・新しいライブラリ・新しい言語)を使って簡単によりいいものが素早く作れる」
- よくわからないいから
- 「何をやっているかわからない」「どう直していいかわからない」
- 「もう直しようがない」
- 「作り直した方がはやい」
- あいつのだから
- 「あいつが書いたコードだから」
どんなプログラムでも開発が進み詳細がわかってくると、こうしておけば良かったと思う点がでてくるものだ。
さらに、他人が書いたプログラムだとよく分からない。
It's harder to read code than to write it. (プログラムというのは書くより読むほうが難しい。) -- Things You Should Never Do, Part I - Joel on Software
いっそ作り直してしまいたいと思うのはどの開発者でもあることだ。
@ スクラッチから書き直してはいけない理由
しかし多くの場合スクラッチから書き直すことはリスクとデメリットだらけだ。
- 今までの投資を失うから
- 「そのプログラムには検討・不具合修正に膨大なエネルギーが投入されている」
- 「ユーザは今のプログラムのために学習コストをかけている」
- 時間がかかるから
- 「その新しいプログラムが今と同じレベルの価値を実現するまでは時間がかかりすぎる」
- 「スクラッチし直してから投入したのでは、もはや価値を失っている可能性が高い」
- 前轍を踏むから
- 「どう直していいかわからないと思う時は往々にして目標がわかっていない。目標がわからずに作ったものは結局またスクラッチから書き直したくなる」
- 「あなたが連続的にプログラムを修正できないというのなら、どちらにせよ新しく作り直したプログラムもあなたは連続的にプログラムを修正できない」(リグレッションテストの習慣はあるの? リファクタリングスキルはあるの?)
ほとんどの場合は、漸進的に今のプログラムを修正・改良していった方が得策なのだ。
@ スクラッチから書き直してもいい場合
そうはいってももちろんスクラッチから書き直した方が合理的な場合もある(書き直してはいけない場合も書き直した方が合理的だと思ってしまうわけではあるが)。
それは次のような場合だろう。
- ソースコードがない場合 (ディスククラッシュした。利用する権利がなくなった)。
- もはや開発環境も実行環境も手に入らず、移植も困難な場合。
- 個人的な趣味のプログラムの場合。
- スクラッチから書き直したプログラムに対して、また「スクラッチから書き直したい」という欲求にかられない自信がある場合。
本当にスクラッチから書き直した方がよい場合は止める理由はない。
さてこの記事をスクラッチから書き直したいと思う時がきませんように。
@ 参考
- Joel on Software - 必読書 (2008-08-14)
- ナノパーセント日 (2005-10-26)
- 今日のさえずり - 納豆にオリーブオイル+胡椒 (2008-08-02)
- [ WiKicker ] 日記機能開発開始 (2003-12-27)
- [ WiKicker ] 久しぶりに作業 (2004-04-29)
■ 今日のさえずり - 紳士服屋の完全閉店は信用ならない

- 08:47 立ってて気がつくの遅れた。まだ揺れてる。L:品川区[mb]
- 09:21 NHK 緊急地震速報。[mb]
- 13:15 まぶたの裏に抜けたまつげが2本隠されていた。
- 13:47 これから床屋。[mb]
- 14:00 床屋のテレビで朝の地震の被害を知る。速報の時の話よりひどい状況なんだ。[mb]
- 15:03 床屋終了。ばっちり寝てた。[mb]
- 15:27 紳士服屋の完全閉店は信用ならない。[mb]
- 17:01 まりも水交換した。
- 帰省土産は大丸東京店で (2008-08-10)
- 今日のさえずり - アイスも冷凍食品も全滅っぽい (2008-01-04)
- 今日のさえずり - え? ラミヤータ閉店なの? (2007-10-19)
- 今日のさえずり - 「エビちゃん」マックカード当たった (2008-02-12)
- 今日のさえずり - 「じゅうふく(重複)」はやはり気持ち悪い (2008-03-21)
■ 14:00 床屋 - 前髪の長さの希望が伝わらなかった

いつものアドバンストヘアーナカタニで。
4月5日以来、2カ月強ぶり。
前回のメモをもとに「前髪を額に押し当てた時に先が眉毛ぐらいに」とオーダー。 そしたら、前髪をおさえて「それだとあまり切らないですね」と言われたので、「では気にしないでもっと切ってください」とリクエスト。
でほとんど寝てしまった。
家に帰って前髪を額に押し当ててみたら目のところまできた。
どうオーダーすればよいのだ?
- 12:00 床屋 - 店を出ると通り雨 (2006-04-08)
- 10:30 床屋 (2007-12-01)
- 10:00 床屋 (2005-02-26)
- 13:00 床屋 (2004-09-04)
- 11:30 床屋 (2005-08-20)
スポンサード リンク
■よく検索されるキーワード
提案書(65) perl(54) 書き方(49) torrent(49) linux(40) debian(35) アジェンダ(33) 使い方(31) windows(31) x31(30) svn(26) ssh(25) tc-1(25) サンプル(23) usb(22) java(22) ganttproject(21) mp980(20) 画像(20) tortoisesvn(20) インストール(19) 手帳(19) cvs(19) 壁紙(19) a6(18) thinkpad(17) subversion(16) 石垣祐馬(16) ほぼ日手帳(16) 作り方(16) 修理(16) 動画(15) 日本語(15) 充電式カイロ(15) ノート(14) ダイソー(14) 方眼(14) ヨドバシ(14) リフィル(13) 秋葉原(12) ダウンロード(12) apache(12) アジェンダとは(12) iwgp(12) 設定(12) c#(11) mp3(11) ヨドバシカメラ(11) テンプレート(11) 無線lan(11) ubuntu(11) nikon(11) dropbox(11) システム手帳(11) porter(11) クラリチン(10) 筆まめ(10) centos(10) ヤマダ電機(10) window(10) ポメラ(9) フリー(9) リポジトリ(9) イメージテック(9) wiki(9) flex(9) xampp(9) フォーマット(9) terastation(8) flash(8) gmail(8) ドラマ(8) proxy(8) rcs(8) 無料(8) 温度計(8) トランサミン(8) constant(8) truecrypt(8) google(8)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 0.686715s / load averages: 0.31, 0.22, 0.24
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク