今日は不運の日である。 私は反射気分の新しいソフトウェアを設計して。 およびソフトウェアが単に愚かな設計があるか私達の普及したフレームワークの何私実現した有用性および美学についての心配 無しに。 パターンは盲目的に続かれる。 どこでもxを持っているソフトウェア/フレームワークについての広告を読むまたはあなたが悩みのために先頭に立たれることを知るべきであるyパターン。

ある普及した専門語は今日IoC (依存の注入)、MVCである、MVC2等はどれもないことそれらのパターンがいつ使用されるべきではない空白の凝視かぞんざいな応答をほとんど必ず得るかどん欲にincoroporateが使用についてのそのようなパターン包装するそれらの同じデザイナーにの多数を尋ね。

私はMVCが使用されるべきではないし、私がまだ適当な応答を得ていないときであり私の潜在的な従業員に尋ねる。 できるか。

私はStripesと呼ばれたこの新しくすばらしいフレームワークについて読んでいた。 私はそれを好む。 但しそれは「邪悪な」ゲッターおよびセッターがあるように要求する。 ゲッターおよびセッターは悪いことをどうして人々が意識しないか。 実際にオブジェクト志向ではないことをどうして人々が意識しないか。 実際はゲッターおよびセッターを持っていることは大抵設計問題を示す。

どうして人々が実現しないか設計はパターンか専門語についてない。 それは可能性間のトレードオフ常にである。 よいデザイナーだけ結果のバランスをとりある特定の持続期間のために有効な適切な選択をする方法を知っている。

私は私がアランHolubから古い記事のまわりで走った分までに気短かになっていた(彼は熟した老齢期にそして完全な健康と住んでいるかもしれない)。 彼は私が述べている丁度話し、それをよく表現した問題について私ができたより。 私を彼を引用することを許可しなさい。

、元来、ある一連のトレードオフが設計しなさい。 あらゆる選択によく、悪い側面があり、必要によって定義される全面的な規準という点においてあなたの選択をする。 しかしよく、悪い状態絶対的存在は。 1つの文脈のよい決定は別のもので悪いかもしれない。

問題の両側を理解しなければ、理性的な選択をすることができない; 実際はあなたの行為のすべての分枝を理解しなければ、全然設計していない。 暗闇でつまずいている。 それは4の設計ファッションブックの一団のあらゆる章はいつ記述する、そしてパターンをなぜ使用することが不適当である「結果」セクションが含まれていること事故ではない。

言語特徴にか共通のプログラミングのイディオムに(アクセス機構のように)問題があることを示すことは言うことが決してそれらをどのような場合でも使用するべきなのと同じ事ではない。 そしてどちらかそれを使用するべきであることをちょうど特徴かイディオムが一般的であるので意味しない。 知らされていないプログラマーは多くのプログラムを書き、Sun Microsystemsかマイクロソフトによって単に雇われて魔法のようにプログラムしている誰かを改良しないし、能力を設計しない。 ジャワのパッケージは多くのすばらしいコードを含んでいる。 しかしまた著者は是認するために当惑することをことを私が確かめるそのコードの部分がある書いたことを。

同じように、販売するか、または政治刺激は頻繁に設計イディオムを押す。 時々プログラマーは悪い決定をするが、あなたがする方法がそれ理想よりより少なくあること会社は技術がことができる、従って重視しないものを促進しするたいと思う。 それらは悪い状態のベストを作る。 「その結果のであなたが」。事をするために仮定される方法であるプログラミングの練習を単に採用するとき、責任を問われずに行動する 多数は企業のJavaBeans壊れた(EJB)のプロジェクトこの主義を証明する。 EJB基づかせていた技術は適切に使用されたとき、しかし大きい技術文字通りもし使用するなら不適当に会社を低下させることができる。

私のポイントは盲目的にプログラムするべきではないことである。 破壊が特徴かイディオムもたらすことができることを理解しなければならない。 その際に、その特徴かイディオムを使用するべきであるかどうか決定する大いによりよい位置にある。 あなたの選択は知らせられ、実用的なべきである。

私は110%年彼と同意する。

それが私の箱から離れているので、私を戻る設計に許可しなさい。