ぬるぽを見かけたら 全力でぶっ叩くのみ


by Denullpo Smasher Hammerson
カレンダー
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

反面教師とすべきか、適材適所にあてがうべきか

ちょいと、考えさせられる内容
プログラミングのカルト宗派

今時の優れたプログラマってぇのに、進歩的であることという要素があるです。
昔と今では技術も環境も全然違うかんね。だから、保守的であることは大きな足枷。
とはいえ、こういった特性をもったプログラマがそれぞれ得意とする分野において
誰よりも優れたコードを書くということも否めない。
特に多人数のプロジェクトでは、各メンバーの個性を殺すことはできれば避けたいこと。

・経験カルト
新しいことに対して慎重になるのは、大事なことです。
無闇に突っ走るとデスマーチを招く。
かといって、新しいことを忌避するのはダメダメですけどね。
如何にして新しいことを取り込み、身につけていくかが神髄なわけで。




・最適化カルト
最近(っつーか、ここ十数年)のコンパイラは優秀で、わざわざアセンブラで難解な
コードを書かなくても自動的にコードの冗長性を解消してくれるようになっている。
が、以下の点を見落とすべからず。

1. MMX, SSEといった特殊なプロセッサを有効活用するには、依然としてアセンブラ
  でのコーディングが要る。
  (高級言語用のラッパがないわけでもないけど、不充分デスヨ)
2. 外部のメソッドを巻き込んだ最適化は期待できない。例えば、同じ結果を返す
  外部メソッドを何度も呼んでいる場合、それは1つにまとめてくれない。
  こゆのは最低限、高級言語で書いたコードが実際どう動いているのか知っておく
  必要あり。
3. 高度な最適化アルゴリズムを使うほど、最適化バグに遭遇しやすくなる。
  (バグの原因が容易に突き止められないほど想定外の挙動してくれるのよ、マジデ)
  これは本業のプログラマでも年に1度あるかないかというレアケースだが、一度遭遇
  してしまったが最後、そのプログラマは最適化レベルを上げることを躊躇するように
  なるだろう。そんな状態で"最適化はコンパイラがやってくれる"なんて言えんて。

そんなわけで、自分で書かなくてもアセンブラの心得はあった方がいい。
これを踏まえて、最適化を自動でやってくれるようなコードを書くのが理想。

・簡単カルト
はっきり言います。煩雑なコーディングを強いるフレームワークはゴミです。
"過去の資産を活用して工数を減らす"という観点で役に立ってないケースが
多いんだも。新プロジェクトでフレームワークを流用するにあたって、既存のコードを
一つ一つ、コピペのままでいいか考えながら書いてんの。呑気なもんだ。

・高速カルト
これは利点ないかな?

・不確実性カルト
これはセキュリティホール対策向き。
穴を突かれないように、考え得る限りの可能性を追求するですよ。
この手の問題は、遅くとも単体テストの段階で完璧に仕上げとく必要あるかんね。
ここで失敗すると、後で苦労する。

・完璧カルト
どっちかっつーと、コーディング規約にうるさい輩が該当しそうな。
tab嫌いでわざわざspaceに置き換えてるシトとか、演算子の前後に空白入ってるか
いちいちチェックするシトとか。

これは、仕事でやることぢゃない。
この作業で消費した無駄な人件費の額を言ってやれ。
どーしてもというならindent使っておくんなさいまし。

・カーゴ・カルト
プロジェクトにおいては癌細胞のような存在だが、デスマ脱却の救世主でもあります。
仕様上の欠陥をうまく誤魔化す絶妙な調整には、彼等のもつ仙人的センスが不可欠。
[PR]
by denullpo | 2008-01-05 23:35 | こっち関係