タグ

antipatternとあとで読むに関するItisangoのブックマーク (4)

  • SI系企業で社内独自のフレームワークを作りたくなる理由について

    tl;dr社内フレームワークは開発生産性を高めるためと言われることが多いが、実際はシステムを守るために産まれる(ことがある)すべては複雑怪奇な業務をシステム化する人が、システムアーキテクチャや非機能面まで全て見れないことに起因する画期的なハックはなく、業務にもシステムにも詳しい人を増やしていきましょうはじめにSI系の大規模な業務システム開発に参加すると、社内独自の重厚なフレームワークに遭遇することがあると思います。ここでいう社内フレームワークとは以下の条件に一致するものを指すことにします。 クローズドソースであるその社内でゼロベースで開発されたり、既存のフレームワークを拡張・ラップしているなど、独自の背景・思想により開発されているそのため、フレームワーク独自のお作法や制約がある開発生産性の向上や、非機能的な要件を満たすことを目的とする社内フレームワークに思いを馳せる自分が経験があるのはJa

    SI系企業で社内独自のフレームワークを作りたくなる理由について
  • 例えば, 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
  • crontabのガイドライン - Qiita

    cron (クーロン) と言えば定期実行してくれるおなじみのシンプルな機能だがそこには奥行きがあり様々なノウハウがある。 そこで設定するときのガイドラインをまとめた。 深くはあまり説明出来ないので気になる用語機能を見つけたら別途検索していただきたい。 cronの場所 /etc/crontab crontabの書式 意識してここに書く必要は現在あまり無い。 RedHat系は非推奨とか言われてるが根拠はよくわからない。 rootで実行される。 #crontabの書式 # (行頭の # マークはコメント行を示す) # +------------ 分 (0 - 59) # | +---------- 時 (0 - 23) # | | +-------- 日 (1 - 31) # | | | +------ 月 (1 - 12) # | | | | +---- 曜日 (0 - 6) (日曜日=0)

    crontabのガイドライン - Qiita
    Itisango
    Itisango 2020/10/26
    >/dev/null is crontab's anti pattern. #Linux
  • 1