The King's Museum

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

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

【Effective Java】項目48:正確な答えが必要ならば、float と double を避ける

浮動小数点数 数値に関する正確な答えが知りたい場合、float と double の利用は避けるべきです。 float と double は2進数浮動小数点数で表されます。 浮動小数点数は広い範囲の数値計算に対して、近似をすばやく行うために設計された小数計算方式です。 …

【Effective Java】項目47:ライブラリーを知り、ライブラリーを使う

標準ライブラリーの利点 標準ライブラリーを使うことには大きなメリットがたくさんあります。 第一に自作ライブラリと比較して、標準ライブラリは非常に完成度が高いです。 高度なバックグラウンドをもったシニアエンジニアが設計、実装、テストを行っていま…

【Effective Java】項目46:従来の for ループより for-each を選ぶ

for ループよりも for-each ループを利用しましょう。 Java 5 よりも前では、コレクションと配列を走査する好ましい方法は以下の通りでした。 // コレクションの走査 for (Iterator i = c.iterator; i.haxNext(); ) { doSomething((Element) i.next()); } //…

【Effective Java】項目45:ローカル変数のスコープを最小限にする

ローカル変数のスコープは最小限にするべきです。 Java では古いバージョンの C 言語と違って、文が書ける場所であれば変数宣言を書くことができます。 スコープの先頭ですべての変数を宣言せず必要な箇所で変数を宣言すれば、変数のスコープを最低限に保て…

【Effective Java】項目44:すべての公開 API 要素に対してドキュメントコメントを書く

Javadoc Javadoc はソースコードに書いたドキュメンテーションコメントを処理して、ソースコードから自動的に API ドキュメンテーションを生成することができます。 Javadoc のドキュメントコメント規約は Java の一部ではありませんが、事実上の API となっ…

【Effective Java】項目43:null ではなく空配列か空コレクションを返す

配列やコレクションを返すメソッドは、null を返すべきではありません。 null の代わりに空の配列か空のコレクションを返すべきです。 null を返すとメソッドを利用するコードには null チェックが必要になるため、コードが煩雑になります。 そこで null チ…

【Effective Java】項目42:可変長引数を注意して使用する

可変引数メソッド Java 5 から可変長引数メソッドが利用できるようになりました。 正式には『可変引数メソッド(variable arity method)』と呼ばれています。 可変引数メソッドは任意の0個以上の引数を受け付けることができます。 実際の動作は次のとおり…

【Effective Java】項目41:オーバーロードを注意して利用する

オーバーロード オーバーロードとは同じ名前・同じ数の引数を持つメソッドに対して、呼び出し側の引数に応じて、対応するメソッドが呼び出される機能のことです。 たとえば、引数の型ごとに型の名前を返すメソッドをオーバーロードを使って実装します。 publ…

【Effective Java】項目40:メソッドのシグニチャを注意深く設計する

ここでは独立して項目を作るほどではないような API 設計時のヒントを説明します。 メソッド名を注意深く選ぶ メソッドに限らず名前は常に標準命名規約に従うべきです。 理解可能で同じパッケージの他の名前と矛盾しない内容にするべきです。 さらに、一般的…

【Effective Java】項目39:必要な場合は、防御的にコピーする

不変オブジェクトの抜け道 クラスの製作者は常に「クライアントは不変式を破壊するためにあらゆる方法を使ってくる」と仮定し、防御的にプログラムを書くべきです。 「セキュリティホールをついてくるような悪意のある開発者」から「単純な間違いをおかす初…

【Effective Java】項目38:パラメータの正当性を検査する

第6章が終わったので『第7章:メソッド』に入る。 この章は一般的な話なのですぐに終わりそうだ。 パラメータをチェックする ほとんどのメソッドとコンストラクタは、渡されるパラメータに関して何らかの制限を持っています。 この制約は文書化し、メソッ…

(c) The King's Museum