Introduction to Annotation Processing.
public class Ratio { public long numerator; public long denominator; public Ratio(long numerator, long denominator) { this.numerator = numerator; this.denominator = denominator; reduce(); } public Ratio plus(Ratio x) { if (x.denominator == this.denominator) { this.numerator += x.numerator; } else { long d = this.denominator * x.denominator; this.numerator = this.numerator * x.denominator + x.numer
Java SE 7から、switch構文で文字列が使えるようになりました。 public void hoge(String s){ switch(s){ case "a": System.out.println("AA"); break; case "b": System.out.println("BB"); break; default: System.out.println("Other"); } } ところが、残念なことに、sがnullの場合はdefaultには飛ばず、ぬるぽが発生します。 そこで、null判定は事前にif文で行うことになるので、次のようなif-else switchイデオムを使うと便利です。 if(s == null){ System.out.println("Null!"); }else switch(s){ case "a": System.out.printl
Java仮想マシンで動作するプログラミング言語「Ceylon」のWebサイトが登場した。Ceylonはまだ開発段階にありメジャーリリースは実施されていないが、Red Hatは情報提供サイトを提供することで「Ceylon」へのコミットメントの継続を主張したい狙いがあるものと見られる。 CeylonはJava仮想マシンで動作する型セーフなプログラミング言語。Javaに強く影響を受けたプログラミング言語で、C言語風の文法に各種機能を実装している。C、Java、C#などの開発者にとっては学習コストが低く、比較的早期に開発を開始できるという特徴がある。Eclipseベースの統合開発環境が提供されている点もポイント。 同様にJava仮想マシンで動作するJavaインスパイア言語はほかにいくつもあるが、ソフトウェアベンダが積極的に開発を支援または推進しているものに、JetBrainsが開発している「Kot
ある程度プログラマーとして経験を積めば、ソースコードを読んだときに、そのソースコードの良し悪しというものは、嗅覚を使って直感的に嗅ぎ分けることができるものです。実際、そのように体の感覚を使ってこのコードは不吉だと感じるところは実際大いにあり、コードの臭い(code smell)として知られています。 コードの臭い - リファクタリングの必要性を示す兆候 これはファウラーの名著 リファクタリング―プログラムの体質改善テクニック (Object Technology Series) 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史出版社/メーカー: ピアソンエデュケーション発売日: 2000/05メディア: 単行本購入: 94人 クリック: 3,091回この商品を含むブログ (312件) を見るでも紹介されており、こういった不吉な部分を適切に嗅ぎ分け
前回はJavadocを書く - しげるメモというタイトルで話を進めましたが、今回は逆にJavadocを減らすプラクティスについてメモがてら。 私は別にJavadocを書くのが好きなわけではなく、単純に書いたほうがめんどくさくないと思うのでそうしてます。ただ、Javadocを書くのもかなりめんどくさいとは自分自身で感じているので、そのめんどくささをできるだけ減らす道を現在も模索中です。 やり方としては単純で、次のうちどちらかです。 Javadocをそもそも書かない Javadocに書くことを減らす かなりの部分がEffective Java (Java Series)に紹介されているプラクティスとかぶりますが、ここではあくまで"めんどくさくないJavadoc"という視点でいきます。 Javadocをそもそも書かない If an API is to be usable, it must be
Java におけるコード進化パターン (Code Evolution Patterns in Java) asato shimotaki <asatohan at gmail.com> 最終更新日 : 2009/6/21 (2004/4/22 より) [...] For twenty years, I spent two or three hours a day looking at pairs of things -- buildings, tiles, stones, windows, carpets, figures, carvings of flowers, paths, seats, funiture, streets, paintings, fountains, doorways, arches, friezes -- comparing them, and asking my
Javaプログラムにおいて,クラスを作ることを厭う人たちが多い. そのような人たちの多くはデータを桁数依存にて構造が存在する文字列にして扱うことを好む. しかしJavaにおいてStringを解析することは多くの例外の原因となり,ひいてはシステム障害の原因となることが多い. またStringの演算は重く,Stringはメモリ消費量が多い. この文章では,Java利用システムにおいてStringの濫用を戒め,適切な型の利用と適切なクラス設計を行うことを勧める.*1 Stringの問題 多発する例外 Stringを利用することにより発生する例外には次のものがある. NullPointerException StringIndexOutOfBoundsException IndexOutOfBoundsException IllegalArgumentException UnsupportedEn
http://codemonkeyism.com/generation-java-programming-style/ 次世代Javaプログラミングスタイルだって。ちょっと面白かった。こうゆうスタイルが身に付いたらプログラマのステージがひとつ上がりそうだけど,世間一般に普及させんのは難しいんだろうなとオモタ。 1.Final is your new love. (変数の)final宣言を好めって良く聞くね。気持ちもはわかるけど,徹底するのは大変。 2.No setters. ミューテータ(setter)作んないでコピーコンストラクタ使えと。オブジェクトの普遍性不変性にこだわりますな。 アクセサ(getter)も作んな,って言ってるけど,ちょっと分かんなかった。→ Tell, Don't Ask | The Pragmatic Bookshelf 3.Do not use loops for
9 冊目の著作となる本書は、ある意味私らしい「ややズレた」スタイルの書籍となりました。6/29 発売ですが、池袋ジュンク堂では本日先行入荷したそうです。 ちなみに、サブタイトルは「現場で使える API 仕様書の作り方」。Javadoc をテーマとした書籍は、恐らく世界初ではないかと。 エンジニアのためのJavadoc再入門講座 現場で使えるAPI仕様書の作り方 作者: 佐藤竜一出版社/メーカー: 翔泳社発売日: 2009/06/30メディア: 単行本(ソフトカバー)購入: 15人 クリック: 263回この商品を含むブログ (49件) を見る 本書は、意味のある Javadoc(ドキュメンテーションコメント)をほとんど見たことがないという現実を何とかしようと思って書きました。確かに、多くの Java のソースコードにはドキュメンテーションコメントが記述されています。しかし、その多くは「メソッ
はじめに システム開発において例外処理は重要なポイントですが、あまりに軽視されているのが現状ではないでしょうか。本稿では、これまでの著者の開発経験の中から培った汎用的な手法を説明します。 この記事は「美しい設計」ではなく「現実的な設計」、現場に適用できる「できるだけ手間の少なく、汎用的な設計」を目指しています。 対象読者 J2EE開発者・アーキテクト。特に業務システムの開発現場の方が対象です。 必要な環境 概念の説明が中心ですので、開発環境は必要ありません。 エラーの分類 実装時に考慮すべきエラーは2つに大別できます。 想定内でトランザクションの実行開始前にチェックするエラー。主に入力エラー。 異常な状態としてトランザクションの続行が不可能なエラー(例外)。 前者については、例外を使うべきではありません。入力チェックエラーを表現するには、ステータスコードを使うべきです。理由は次のとおりです
Javalobby - The heart of the Java developer community Anthony Goubard氏がJavalobbyにおいてThe Top 10 Unused Features in Javaというタイトルのもと、Javaで使われていない機能を紹介している。Javaの歴史を感じられるおもしろい記事だ。紹介されている使われていない機能を簡単にまとめると次のとおり。 アサーション。Javaに欠けている機能としてアサーションが導入されたが、実際のところ使われていない Java 6 API - Appleが32ビットプラットフォームに対するJava 6サポートしなくなったため、Java 5レベルのAPIを使いつづける必要がでている MIDIライブラリ。CORBAとともに削除してほしい、モジュラーJREの登場後はぜひとも読み込まれてほしくないAPIナンバー
Java で Scheme JVM 上の Scheme 実行環境で遊んでみた。 どうやら SISC と Kawa という環境があるらしい。 SISC http://sisc.sourceforge.net/ Kawa http://www.gnu.org/software/kawa/ オレンジニュース - JavaベースのScheme処理系「Kawa」と「SISC」の違い http://secure.ddo.jp/~kaku/tdiary/20060412.html ひWeb / ひ日誌 - JavaベースのScheme処理系 http://www.fobj.com/hisa/diary/20060412.html#p02 Kawa にチャレンジ Kawa は jar 1 つで動作できる非常に軽い環境。 >set JAVA_HOME=c:\_java\jdk\1.5.0_06 >set P
自社の社員だったら、教育すればいいだけなんだけど、他社の人だったらきっついわーって人。大規模プロジェクトでかき集められた人員がこんなんだったらげんなりします。 javac でコンパイルできない IDE に頼りすぎ。いざというときに使い物にならない。こういう人は「そもそも論」がなってないことが多い。 IDE を知らない 上の逆。テキストエディタでこつこつ作る。そのほうがいいものができると確信してやってるわけでもないやつが多い。そういうやつはもちろん生産性が低い。 Entity クラスでもないのに public フィールドを使う カプセル化がわかってないことが多い。Entity クラスだけに限定して public フィールドを使ってたりするのは確信犯(?)だったりするので、別にいいけど。 static メソッドと static フィールドがやたら多い そもそも OOP がわかってないことが多い
2005.11.18 17:53 - final - const? 2005.11.17 14:43 - string != char[] 2005.11.02 03:10 - とりあえず基本的な事はを書き切りました 2005.10.28 23:55 - 引越し 一つでもプログラミング言語をマスターしていれば、それから他の言語をマスターするのは簡単です。所詮、プログラミング言語は最終的には機械語として実行され計算機を制御しようとしているだけなのですから。つまり、最終的にはどの言語でも出来ることはほとんど同じ。だって、計算機にできる事はプログラミング言語が変わったからといて変わるものでは有りません。なので最初にマスターした言語が低レベルであればより有利です。C 言語をマスターしていれば、Java をマスターするのは楽勝。と言うことで、C との違いという形で Java について解説します。 J
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く