The King's Museum

ソフトウェアエンジニアのブログ。

2016-07-01から1ヶ月間の記事一覧

【Effective Java】項目59:チェックされる例外を不必要に使用するのを避ける

チェックされる例外はプログラマに例外の処理を強制させることができるので、プログラムの信頼性を大きく向上させることができます。 ただし、これを過剰に利用すると API が使いにくいものになってしまいます。 次の条件がすべて満たされる場合のみ、チェッ…

【Effective Java】項目58:回復可能な状態にはチェックされる例外を、プログラミングエラーには実行時例外を使用する

例外の種類 Java には次のような種類の例外があります。 チェックされる例外(checked exception) チェックされない例外(unchecked exception) 実行時例外(runtime exception) エラー(error) チェックされる例外 チェックされる例外がスローされると…

『CODE COMPLETE (上)』を読んで

CODE COMPLETE 上巻を読み終えた。 Code Complete 第2版 上 完全なプログラミングを目指して作者: スティーブマコネル出版社/メーカー: 日経BP社発売日: 2014/04/02メディア: Kindle版この商品を含むブログ (12件) を見る 平日のお昼休みに10ページずつ読ん…

【Effective Java】項目57:例外的状態にだけ例外を使用する

例外は例外的な状況に対してのみ利用するべきです。 正常なパスで例外を利用するべきではありません。 よいパフォーマンスを得ようとして、次のようなコードを書く人達がいます。 try { int i = 0; while (true) range[i++].climb(); } catch (ArrayIndexOut…

【Effective Java】項目56:一般的に受け入れられている命名規約を守る

Java には命名規約(naming convention)があります。 命名規約は2種類に分類されていて、活字的(typographical)と文法的(grammatical)に分けられています。 活字的命名規約はパッケージ、クラス、インタフェース、メソッド、フィールド、型変数を扱っ…

【Effective Java】項目55:注意して最適化する

最適化に関してはさまざまな格言があります。 特に知られているのは Knuth によるものでしょう。*1 僅かな効率、たとえば、時間の約97%、については忘れるべきである。時期尚早の最適化は、すべての悪の根源である。 速いプログラムを書くことよりも、良…

【Effective Java】項目54:ネイティブメソッドを注意して使用する

Java Native Interface (JNI) を使うと C/C++ などで書かれたネイティブメソッドを呼び出すことができます。 歴史的にネイティブメソッドには3つの用途がありました。 レジストリ、ファイルロックなどのプラットフォーム固有機構へのアクセス 古いコードのラ…

【Effective Java】項目53:リフレクションよりインタフェースを選ぶ

リフレクション機構 リフレクション機構を使うと、ロードされたクラスの情報に、プログラムからアクセスすることができます。 具体的には Class インスタンスに対して、それが表すクラスのコンストラクタ・メソッド・フィールドを取得することができます。 …

【Effective Java】項目52:インタフェースでオブジェクトを参照する

適切なインタフェース型が存在するのであれば、パラメータ、戻り値、変数、フィールドではすべてインタフェース型を利用して宣言するべきです。 オブジェクトのクラス名を参照する必要がある唯一の箇所は、そのオブジェクトを生成するところです。 // 良い例…

【Effective Java】項目51:文字列結合のパフォーマンスに用心する

文字列の結合演算子(+)は文字列を結合するための便利な演算です。 しかし、これを利用する場合にはパフォーマンスに注意する必要があります。 Java の文字列(String)は不変です。 そのため、2つの文字列が連結される時、2つの文字列をコピーして連結…

【Effective Java】項目50:他の型が適切な場所では、文字列を避ける

文字列は文字列以外の場所で使うべきではありません。 例えば文字列を値の代わりに使うことは避けるべきです。 一般的に入力パラメータは文字列ですが、適切な型がある場合はパラメータをその型に変換するべきです。 int や boolean として扱えるパラメータ…

【Effective Java】項目49:ボクシングされた基本データより基本データを選ぶ

『基本データ』と『ボクシングされた基本データ』 Java では int などの基本データ型(primitive type)と、String などの参照型(reference type)の2つの型があります。 int や double の基本データ型は、それぞれに対応するボクシングされた基本データ(b…

(c) The King's Museum