タグ

softwareとantiPatternに関するItisangoのブックマーク (3)

  • 例えば, Singleton を避ける | Born Too Late

    この記事は TDD Advent Calendar jp: 2011 の 14 日目です. 前日: TDD戦略 -TDDを導入し進化させる方法- #TDDAdventJP (@kyon_mm さん) 翌日: TDDに対して思っていること (@gab_km さん) この記事の概要 TDD で開発することで設計上の問題点に気づきやすくなる Singleton はグローバル変数である Singleton の使用はできる限り避けるべきである テスタビリティを意識しよう TDD では, 原則としてユニットテストを書いてから実際のコードを実装します. なので, 自然と「テストのしやすさ (テスタビリティ)」を意識して実装することになります. そして, TDD においては一般的に, テスタビリティを意識することで, 設計が改善されるとされています. オブジェクト指向には難しい概念がたくさん登場します.

    Itisango
    Itisango 2020/11/14
    「テストのしやすさ (テスタビリティ)を意識して」「意識することで, 設計が改善される」処方箋「状態を初期化できるようにする/依存性の注入 (Dependency Injection) の利用/そのクラスは本当に Singleton なのか」 #antiPattern
  • シングルトンパターンの誘惑に負けない | プログラマが知るべき97のこと

    シングルトンパターンの誘惑に負けない著者: Sam Saariste シングルトン(Singleton)パターンは多くの問題の解決に役立つパターンです。このパターンでは、クラスのインスタンスは必ず1つしか生成されません。そのインスタンスは使用前に必ず初期化されます。そしてシングルトンをグローバルアクセスポイントとすることで、設計をシンプルにできます。こう書いていくと良いことずくめのようですが、この「古典的な」デザインパターンに何か短所はあるのでしょうか 実はたくさんあります。それはよく考えてみるとわかります。確かにシングルトンパターンは魅力的なのですが、私の経験では、このパターンには利点よりも弊害の方が多いと言えます。まずテストの妨げになります。そして保守性の点でも不利です。残念ながらその事実は広く知られているとは言えないため、多くのプログラマを窓きつけているのです。つい使いたい誘惑にから

    シングルトンパターンの誘惑に負けない | プログラマが知るべき97のこと
    Itisango
    Itisango 2020/11/14
    「シングルトンへの直接のアクセスは、あらかじめ定めておいたごく少数の箇所からのみ行うようにします。そして他のコードからは、インタフェースを通じてアクセスするのです」 #antiPattern
  • クソコードをクソで終わらせないために僕らが出来ること - 何か着ていればいいよ

    あけましておめでとうございます。 新年最初のエントリーですが、こんな話題でなんだかな?って感じもしますが気にしない! 仕事プログラマーをしていると避けられないのが、既存のくそコードです。 このエントリーではクソコードを プログラマーが読んでいると小声で「クソっ!」とか悪態が自然と出てしまうようなコード などと適当に定義しておきます。 クソコードにやられてばっかりいられない クソコードにまみれて地べたを這いつくばっている我々プログラマーですが、ただやられているのも癪に障りますよね。 そこで、なんとかクソとみそを美味しくいただけるようなアプローチは無いものか?と思案して最近やっていることをクソポエムとして残しておきます。*1 クソな部分を抜き出して一般化アンチパターンとして何か名前をつける なぜクソなのかを把握し、書き残す どのような経緯でクソにまみれてしまったのか?を探ってみる*2

    クソコードをクソで終わらせないために僕らが出来ること - 何か着ていればいいよ
    Itisango
    Itisango 2015/01/09
    でもなくならないんですよね。 #antipattern #リファクタリング
  • 1