IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
正しく意味を理解している方にとっては、まったく常識レベルの話であり、何をいまさらと思われる方々も多いかと思いますが、大規模案件のレガシーコードなど、私が仕事で見かけるJavaのコードを読むと、「このコードを書いたSEやPGの方々は、はたして継承の意味を正しく理解していないのではないか」と思われる設計のコードに出会うことが少なからずあります。現在では改良されましたが(Javaプログラミング能力認定試験の問題がかなり改善されていました - 達人プログラマーを目指して)、以前のJavaプログラム認定試験の問題は、そうした不適切な設計がされている典型的な例となっていたのですが、実際、SI業界ではあのような品質のコードのシステムが今でも現役で多数稼動しているというだけでなく、現在でも新たに生み出されているというのは残念ながら紛れもない事実のようなのです。 確かに新人研修で「哺乳類を継承して犬クラスと
おつかれさまです。 型を選ぶというのはプログラミングの基礎中の基礎ですが、以外に開発の現場でも注意が必要なのが、floatとdoubleの精度の問題があります。これぐらい当然と思っていたのですが、最近よく耳にしますので、あえて言及w これらの型の目的が科学技術計算のための用途。多少誤差が生じても高速に演算をすることを目的としています。グラフィックなどの描画系とかですかね。 このように、float型やdouble型は誤差を含む可能性があるため、科学・工学計算で多少の誤差は許容できる場合はよいのですが、金融・会計分野のように正確な値が要求される計算には向きません。 どうしても正確な値が欲しい場合は、BigDecimalクラスを使用することになります。基本データ型のdoubleやfloatと比較すると不便かつ低速ですが、精度が保証されており、丸め方も指定できます。 ここで言及されているように、お
The UDoc project (MYCOMジャーナルの解説記事) UDocは、JavaクラスをUMLのクラス図で可視化するオープンソース(GPL)のツール。これが結構便利。 上記サイトにはJava Webstart版もあるので、Javaの実行環境があれば、ブラウザからクリックするだけですぐに使い始めることができます。 クラスパスを指定して、可視化したいJavaクラスを選択すれば、そのクラスが表示されます。あとは、そのクラスの四隅にあるアイコンをクリックするだけで、関連するクラスをたどることができます。 自作のプログラムで、クラス図を表示させて見ました。 どうやら、以下のようなクラス間の関連を表示できるようです。 汎化関係 (クラス継承、インターフェイス実装) 集約関係 (フィールド) 依存関係 (メソッドの引数や戻り値) ソース解析したり、設計ドキュメントでクラス図書いたりするときなど
IBM Related Japanese technical documents - Code Patterns, Learning Path, Tutorials, etc. Please open new issue/pull requests in either English or Japanese if you would have any feedback or you would like to contribute this repo. We provide mainly "Japanese contents" by markdown text. IBM Developerの最新情報は https://developer.ibm.com/ にアクセスし、英語のコンテンツを参照してください。 このリポジトリは、IBM Developer Japan Webサイトで公開していた
Nagleアルゴリズム † 小さいデータをリアルタイムに通信を行うとき、遅延が生じます。 オンラインゲームを作るときなんか注意です(`Д´) もちろんSocketライブラリの実装によって異なりますが、 通常はデフォルトでONになっている事が多いです。 Nagleアルゴリズムは、以下のような動作をします。 ある一定のサイズ(ほとんどの実装では1024バイト)に満たないデータ(小パケット)は、 TCPフラグのACKを待ちます。ただし、遅延が200ms以下になるように待ちます。 こうすることで、パケットヘッダのオーバーヘッドを減らします。 つまり、小さいデータはまとめて送ってしまおうというアルゴリズムなわけで、 1024バイト以下のパケットを連続して送信すると、遅延が発生しますよ。 ということです。 Javaの場合はsetTcpNoDelayメソッドでNagleの有効・無効を変更で
Javaでアニメーションやゲームを作成したとき、画面がちらつくことがある。これは、背景を塗りつぶしてからキャラを描画するまでの間に、何もない画面が見えてしまうことで起こる。そこで、この背景を塗りつぶす作業も含めて一度に一枚の画像として描いてしまえばちらつきはなくなる。この方法を「ダブルバッファリング」といい、その画像をオフスクリーンバッファという。言葉では分かりにくいので図で説明しよう。部屋の中に亀の甲羅を書いてみる。 1. ダブルバッファリングを使わずに描く まずは背景を画面に描画する。 続いて亀の甲羅を描画する。 背景、キャラクターを描画する過程が見えてしまうのがイメージできるだろうか。これがちらつきの原因である。 2. ダブルバッファリングを使って描く オフスクリーンバッファに背景と亀の甲羅を描画する。 オフスクリーンバッファを画面に貼り付ける。 これにより、描画の過程を一切表に出さ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く