読書メモ EffectiveJava

Effective Java 第2版 (The Java Series)

Effective Java 第2版 (The Java Series)

Javaやるなら必読。誰もが絶賛する。ただ、Java初心者には敷居が高い気がする。自称中級者くらいからが対象?(自分には難しめ。。)

Effective Java 読書会 4 日目「最近はあまり継承とか使わないらしい」 - IT戦記

まとめ方が超的確ですごい。さらに面白い。

第4章 クラスとインタフェース

項目13 クラスとメンバーへのアクセス可能性を最小限にする

ソフトウェアの適切な機能と矛盾しない最も低いアクセスレベルを使用すべきです。

最初は、とりあえず全部privateでいくぐらいの気持ちでいいと思う。

もし、トップレベルのパッケージプライベートのクラス(あるいはインタフェース)を、1つのクラスだけが使用しているのであれば、その使用している唯一のクラスのprivateのネストしたクラスにすることを検討してください(項目22)

見られる範囲がパッケージ内の全クラスから、自クラスだけに!!

読書メモ 良いコードを書く技術

良いコードを書く技術 ?読みやすく保守しやすいプログラミング作法 (WEB+DB PRESS plus)

良いコードを書く技術 ?読みやすく保守しやすいプログラミング作法 (WEB+DB PRESS plus)

はじめて身の丈に合った本っぽい。

第10章メタプログラミング

本書の中では一段難しい。応用編。

コードを自動生成するプログラムをプログラミングすること。 JSPDSLと言える。

読書メモ Junit実践入門

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

具体的な使い方だけでなく、テスト駆動開発についてなどもカバーしている。

テストのコンテキスト

Enclosedによるテストクラスの構造化

これは取り入れたい。テストメソッドを並列に並べるんじゃなく、グループ化した単位でネストクラス作ってく。

読書メモ Java並行処理プログラミング

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―

第1章 はじめに

割愛。今後出てくる用語だけメモ。

競り合い状態 race condition

複数のスレッドからアクセスされ不正な状態となること

生存の危機

プログラムがハングして進まなくなること。(デッドロックとか)

追記

業務でマルチスレッドの試験をする必要になり久しぶりに取り出してみた。以前は読み飛ばしてた試験についての章に目を通す。

第12章 並行プログラムを試験する

まとめ

並行プログラムの正しさの試験は、とても困難です。 これに尽きる。バグもタイミングに依存することが多いし。なのでバグ摘出の確率をあげる努力をしようということ。

従来的な試験テクニックに加えて、コードレビューと自動分析ツールを併用してください。 これは実体験からも重要。まずはfindbugus流すことから。(検出したバグパターンをちゃんと理解して修正すること。その場しのぎで治しがち。)

12-1 正しさを試験する

並行プログラムのユニットテスト書く上でのテクニックなど。JSR166のテストコードへのリンクと解説が必読!

ツールメモ GoogleChrome

主にextention(拡張アドアイン)のまとめ。

Vichrome

chromeをviライクに操作できる。 必須。f-modeが超便利。(元ネタとしてhit-a-hintというのがある??)

AutoPager Chrome

自動で頁送りなどしてくれる。例えばgoogleの次へリンクを自分で押下する必要がなくなる。

Auto-Translate

翻訳拡張。ctrl押下+選択範囲の内容がポップアップで表示される。

Gestures for Google Chrome

マウスジェスチャ

LastPass

パスワード管理ソフトのchrome拡張

ato-ichinen

google検索結果を1年以内のものにフィルタリングできる。

読書メモ 知識ゼロから学ぶソフトウェアテスト

知識ゼロから学ぶソフトウェアテスト 【改訂版】

知識ゼロから学ぶソフトウェアテスト 【改訂版】

ソフトウェアテストの入門書。入門書だけあって極めて平易な文体で書かれている。が、内容は以下の通りテストについての諸々を網羅してる。

  • テストの種類
  • 探索的テスト
  • 非機能要求のテスト
  • テストの運用
  • テストの自動化

まとめ

  • ブラックボックステストが最重要
    • 入力ダイアログがあれば、境界値テスト
    • 複数の入力ダイアログがあれば、ディシジョンテーブルテスト
    • ダイアログの遷移があれば、状態遷移テスト
  • 要求仕様のバグ、設計のバグ、コーティングのバグのうち、コーティングのバグは比率が低い
  • 組み合わせテストは往々にしてやりすぎ

2章 ホワイトボックステスト

  • 仕様不良は検出不可!
  • カバレッジはあくまで目安として考えよう

3章 ブラックボックステスト

  • ソフトウェアはつまるところ、入力、出力、計算、保存の4つの振る舞いをテストすれば良い(大意)
  • 基本は、同値分割と境界値分析
  • ゼロは常にバグになりやすい数
  • 複雑な入出力には、ディシジョンテーブルテスト
  • ブラックボックステストは、もっとも重要であり、もっとも多くバグが出る!

ツールメモ 一覧

エディタ

ブラウザ

Office

Excel

  • ExcelSniper 複数Excelファイルのgrep&置換ツール
  • RelaxTools 便利機能が色々入ったExcelアドイン
  • ピボットテーブル Excel標準の機能だが、あまり使われていない非常に便利な機能。集計とかに使う

Word

  • 校閲 標準機能だが、これは便利。レビュー指摘と指摘反映に使おう

タスク管理

  • To-Do DeskList シンプルで良い。ただWindows限定っぽい。仕事で使用中。

その他

  • TiddlyWiki5 ローカルwiki。メモに使用。非常に使いやすく便利。だがchromeだと、保存がちょいめんどい(どうにかならないか?)