人間、「要領がいいね」と言われると、必ずしもホメ言葉にならない昨今でありますが、いかがお過ごしでしょうか。
思えば、もう6月も半ばにかかり、2010年もあっという間に半分が終わろうという勢いです。
こんな時、もうちょっと人生を有益なものにしたい、とかガラにもないことを考えてしまうところではあるのですが、過去プログラマをしていたときに「速いプログラムを書くにはどうすればよいか」という課題がありまして、それについて色々と調べていたところ、「ループの中のコードをまず最適化する」というルールがあり、自分の中で「ガーン」と思ったことがあります。
すなわち
仮にプログラムがあったとして
処理1
ムダA
while (条件を満たすまで){
処理2
ムダB
}
処理3
ムダC
というようなものであったとすれば、まず何と言ってもwhileループの中の「ムダB」を最初に減らさなければなりません。もし、このループが100万回回る処理であったりするならば、他のムダを無くそうという手間が、もしそれぞれ同じだけの労力を必要とすると仮定するならば、他のムダAやCに比して100万倍の無駄を省く効果が現れるから、ということになるからなんですね。なのに労力は同じであると。
だからこういうプログラム構造を一日の動きに見立て、そこにおけるルーチンワークを見直して、もし機械化できるところはするとか、コストをかけて道具でサクっと処理できるようにするとか、まあ、費用対効果がよく現れるところではあります。一方、もうそれができていれば、たまにしか現れないムダは、そのまま放っておいてもいいのではないかと思うのですよね。ムダはムダが出てくる理由があり、うっかりムダだと思って削除すると意外に必要であったりもするからです。
特に人間関係が絡む場合は、ムダを簡単にムダだから何とかしろと言ってしまうと、それはそのムダをなんとかするための責任者たる立場になってくる可能性すら孕むこともありますし。
まあいずれにしても、やはり短い人生においては、費用対効果というものを常に考えて行かねばならないなあと思う今日この頃であります。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。