タグ

programmingとjavaに関するusadamasaのブックマーク (8)

  • GoFの23のデザインパターンを,Javaで活用するための一覧表 (パターンごとの要約コメント付き) - 主に言語とシステム開発に関して

    GoFデザインパターンの一覧表と,活用のためのコメント,および入門者が独学するためのリンク集(サンプルコード付き)。 入門者の独学を支援するために,このページのURLを提示して熟読させ,各パターンを短時間で効率よく学んでもらう。 デザインパターンはプログラマの常識だ。 Java使いかどうかは問わない。 にも関わらず,入門書を買ったまま,途中で挫折する人が多い。 挫折の原因は,パターンの数が23もあって,多いからだろう。 全パターンをすんなり覚えてもらうためには,各パターンごとに 「要するにこういう目的のパターンなんだ。」 「10文字で表現すると,パターンの意味はこうなんだ。」 という要点・質を,短いコメントで伝えれば助けになるだろう。 こういった学習を通して,Java言語の「設計思想」も併せて感じ取ってゆけるはず。 全パターンの一覧表(要約コメント付き) 全パターンについて,10文字以内

    GoFの23のデザインパターンを,Javaで活用するための一覧表 (パターンごとの要約コメント付き) - 主に言語とシステム開発に関して
    usadamasa
    usadamasa 2012/04/13
    GoFの23のデザインパターン一覧と使い所のまとめ
  • Log4J徹底解説〜目次

    目次 概説 使い方(1) 使い方(2) 基のAppender ファイル保存系Appender ネットワーク系Appender JMSAppender OSログ系Appender JDBCAppender その他のAppender 1.3で追加されたAppender フィルタ機能 Joran Hacks(1.3) 自前 Appender の書き方!(1.3) Chainsaw(1.3) アスペクトはお好き? Log4cxxと小物ツール Log4php の使い方 Log4php の Appender たち もともとこの文書はバージョン 1.2.8 をベースに書いたものだが、2006年中に 1.3 がリリースされる、とアナウンスされていることもあり、フライングか?と思わなくもないが、1.3 対応をしました! あと、どうも要望のありげな log4php についての記述を大追加! 2007.9.1

    usadamasa
    usadamasa 2011/08/19
    "しかし、フツーに使っている分には、RollingFileAppender でローテートするログファイルを作るのがせいぜいで、あまり凝ったことまで解説されていないことが多いわけだが、実は筆者はとある理由で Log4J をハックしたので、
  • ConQATを利用してソースコードの品質をチェックする - 達人プログラマーを目指して

    ある程度プログラマーとして経験を積めば、ソースコードを読んだときに、そのソースコードの良し悪しというものは、嗅覚を使って直感的に嗅ぎ分けることができるものです。実際、そのように体の感覚を使ってこのコードは不吉だと感じるところは実際大いにあり、コードの臭い(code smell)として知られています。 コードの臭い - リファクタリングの必要性を示す兆候 これはファウラーの名著 リファクタリング―プログラムの体質改善テクニック (Object Technology Series) 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史出版社/メーカー: ピアソンエデュケーション発売日: 2000/05メディア: 単行購入: 94人 クリック: 3,091回この商品を含むブログ (312件) を見るでも紹介されており、こういった不吉な部分を適切に嗅ぎ分け

    ConQATを利用してソースコードの品質をチェックする - 達人プログラマーを目指して
    usadamasa
    usadamasa 2011/06/12
    この図で長方形の面積はソースコードのステップ数に比例しており、赤い色の濃いところはクローンペアとして検出された行数の比率を示しています。濃い赤色のところほどコピペされた部分の割合が高いことを示していま
  • 大量データを扱うときはArrayListよりHashSetを使おう - greennoahの備忘録

    最近は性能問題が徐々に収束してきました。 解決された問題のうちの1つをここで紹介したいと思います。 「あるバッチプログラムの性能要件が100万件のデータを60分で処理しないといけない」というものがあったのですが、計測してみると2.5時間で40万件弱しか処理できないという問題がありました。(このデータから100万件にかかる時間を算出すると17時間。。。) このバッチプログラム、最初の15分間は処理量が6500件だったのに、時間が経過していくとどんどん劣化し、3時間経過で800件前後となり、その後は徐々に劣化していく、かなりお粗末なプログラムでした。 メモリリークは発生していなかったので、ログを埋め込んで時間のかかっている処理を切り分けていくとDBから取得したデータをArrayListに格納し、それを存在チェックしている箇所(ArrayList#contains)がボトルネックであることが判明

    大量データを扱うときはArrayListよりHashSetを使おう - greennoahの備忘録
    usadamasa
    usadamasa 2011/06/10
    大量のデータを扱う場合にHashSetを使うと、ArrayListと比べて処理速度が相当短縮されるよという実験。
  • Java Set/HashSetよくある使い方 - Java入門

    特徴 ◇ 重複のないコレクション。重複のあるデータを追加しようとしても、追加されません。重複であるかどうかの判定は、格納要素のequalsメソッドで行います。 ◇ null要素。null要素を許容しますが、禁止する実装もあります。許容する場合、重複要素を持たないため、null 要素を最大 1 つしか持ちません。因みに、Setインタフェース実装の一つHashSetは、null要素を許容します。なので、格納した要素はnullであることもありますので、細心の注意が必要です。 構造 java.util.Collection        [I] ∟java.util.Set            [I]  ∟java.util.SortedSet        [I]  ∟java.util.EnumSet  ∟java.util.HashSet  ∟java.util.LinkedHashSe

    usadamasa
    usadamasa 2011/06/10
    HashSetの使い方はわかったけど、使われ方がわかんない。なにが嬉しいのこれ。
  • 参照型変数と値が未定義の変数とnullと空文字 - 愚鈍人

    参照型変数と値が未定義の変数とnullと空文字 javaの 文字列 の、空文字 とnullとは同じものと勘違いしている人がいるので注意。 さらに、ややこしい事に、nullと「初期値が未定義である。」とは意味が異なる。 javaの データ型 には、 基データ型 と 参照型 がある。 基データ型はbyte,short,int,long,float, double,char,booleanの8つの型がある。 参照型は インスタンス や配列型)を指す。 基データ型と参照型の違いとして、基データ型には変数に値そのものが格納されるのに対して、 参照型の場合は、値の実体が格納されているメモリー位置を指し示す(参照する)値が格納されてる。 つまり、参照型変数にはデータそのものではなく、データの格納先(参照先)を示す値が入っている。 参照型にnullを代入すると、参照型の変数は何もオブジェクトを参照

    usadamasa
    usadamasa 2011/04/21
    「メモリを参照していない」状態と「変数が初期化されていない」状態は異なるという話。エラーが検出される段階も違う。
  • Javaプログラマが知るべき9のこと - @katzchang.contexts

    はじめに ソースコードは設計であり、コードの記述は品質に直結するのは言うまでもない。ちなみに、プログラマにとって特に重要なのは保守性だ。コードは書いた直後から保守対象となるからだ。コードは要求文書の範囲で動けばいいと思っている人がいれば今すぐ、ソースコードをコピペして100klに増えるプラグインがいつの間にかインストールされる呪いをかけてあげよう。幸い、ここを読んでいる人にはそんな人はいないだろうと思うけれども。 ということで、コードの品質を下げる要因、すなわちシステム全体の品質を下げる要因となり、かつ使われやすいアンチパターンを挙げ、対策を検討していくことにする。対象は以下: 出力パラメータ 処理状態返却 意味のある配列 無意味な初期化 多すぎるtry-catch 暗黙の順序 コンパイラ警告の無視 過剰なコメント e.printStackTrace() 出力パラメータ メソッドの引数にオ

    Javaプログラマが知るべき9のこと - @katzchang.contexts
    usadamasa
    usadamasa 2011/02/09
    javaコードの保守性を改善するためのよくある悪例とその対処法。java研修後に改めて読む。
  • 【インタビュー】このコードはいくらなのか - SaaSへのチャレンジがもたらした開発の新視点 | エンタープライズ | マイコミジャーナル

    usadamasa
    usadamasa 2010/06/30
    [for:@twitter]「エンジニアにとってパフォーマンスというと『この処理を何ミリ秒で』という思考になりますよね。それが、運用コストが頭にあると『このコードでコストをいくら削減できるか』という考え方になるんです。
  • 1