今週水曜日に、オラクル青山センターで行われたGlassfish Japanユーザーグループの勉強会でJava EE6のお話をさせていただきました。勉強会のスライドとビデオは以下のリンク先にあります。 Glassfish勉強会(JavaEE6について) View more presentations from Ryo Asai http://www.ustream.tv/recorded/16552906 今回は基本的に私がこのブログで書いてきたJava EE6関連の情報について紹介させていただきました。欲張って少し内容を詰め込み過ぎたところがあったかもしれませんが、Java EE6を使った単体試験や結合試験の自動化については、説明をスキップしてしまい、ちょっとわかりにくくなってしまいました。ここで、あらためてJava EE6上のアプリケーションのテスト自動化について簡単に補足させていただき
Closures (Lambda Expressions) for the Java Programming Language Closures for Java "BGGA" project (by Gilad Bracha, Neal Gafter, James Gosling, and Peter von der Ahé) BGGA closures specification: Closures for the Java Programming Language (v0.5) Doug Lea's jsr166y fork-join concurrency framework: without function types and with function types. Get the code here. Latest openjdk prototype: http://www
今回はJava SE 7で導入される機能について紹介していきます。 筆者が思うに、Java SE 7で最も議論を起こすであろう機能はクロージャです。クロージャの導入には紆余曲折がありましたが(詳しくは本記事の後半で述べます)、とうとう2009年11月に正式に導入されることが決まりました。 そこで、本連載ではいち早くクロージャについて取りあげることにします。 とは言うものの、現在提案されている仕様はまだたたき台レベルです。このため、今後仕様が大幅に変化する可能性があります。その点をご了承ください。 関数型とクロージャ クロージャの仕様を紹介する前に、クロージャがどういうものかということを説明しましょう。 ここでは例として、ボタンをクリックしたときのイベント処理を考えてみます。 Swingではイベントの処理をリスナを用いて行います。例えば、以下のようなコードになります。 JButton but
勉強会ワーキンググループの活動 † 日本Androidの会では、全体のイベントの他に、小規模なワーキンググループ活動を行っています。 勉強会ワーキンググループでは、ハンズオンセッションなどのイベントを開催しています。 ↑ Android SDK ワーキンググループの活動 † Android SDK ワーキンググループ(Android SDK WG)は、Android SDKの理解を深めながら、開発者同士仲良くなろう!を目的としたフランクな集いです。 定期的に「セッション」と言う名のAndroid開発者間交流会(勉強会)を開催しています。活動内容は勉強会WGと統合しています。発表者は立候補制で発表内容や時間は自由です。ぜひお気軽に御参加下さい。詳細は「ワーキンググループ/Android-SDK」のページをご参照ください。 ↑ ハンズオンセッションの活動 † ハンズオンセッションは、Andro
はじめに 第2回目の本稿は、前回のサンプルコードをもとに、Javaの文法、特にクラスに関連する基本的な構文などを解説していきます。 対象読者 Androidアプリケーションの開発を始めたい方で、JavaとEclipseのごく基本的な知識がある方を対象とします。 HelloWorldアプリケーションのファイル構造 前回は、いわゆるHelloWorldアプリケーションを作成しました。作成といっても、ほぼソースは自動生成されたものです。Eclipseのパッケージ・エクスプローラーには、このプロジェクトで生成されたファイルが表示されています。最小のアプリケーションとはいえ、さまざなファイルが作成されています。主なフォルダ、ファイルは、以下のようになっています。 <HelloWorld> ├ \src ソースフォルダ │ └ \codezine.androidjava.chap1 │ └ Hello
正しく意味を理解している方にとっては、まったく常識レベルの話であり、何をいまさらと思われる方々も多いかと思いますが、大規模案件のレガシーコードなど、私が仕事で見かけるJavaのコードを読むと、「このコードを書いたSEやPGの方々は、はたして継承の意味を正しく理解していないのではないか」と思われる設計のコードに出会うことが少なからずあります。現在では改良されましたが(Javaプログラミング能力認定試験の問題がかなり改善されていました - 達人プログラマーを目指して)、以前のJavaプログラム認定試験の問題は、そうした不適切な設計がされている典型的な例となっていたのですが、実際、SI業界ではあのような品質のコードのシステムが今でも現役で多数稼動しているというだけでなく、現在でも新たに生み出されているというのは残念ながら紛れもない事実のようなのです。 確かに新人研修で「哺乳類を継承して犬クラスと
今回の概要 本稿ではWebアプリケーションの開発プロジェクトで実際に直面したメモリに関するトラブル事例の中からjava.lang.OutOfMemoryErrorを題材としたTipsを紹介する。 帰宅直前に、突然電話が鳴り響く 業務を終えて帰宅しようとしたとある夜、突然電話が鳴る。相手は社内のプロジェクトのマネージャである。 「現在、テストを実施しているが、数分経つとOutOfMemoryErrorが発生してアプリケーションが落ちてしまう。再起動を掛けると、また順調に動くが、しばらく利用していると、同じようにOutOfMemoryErrorが発生する。メモリ不足のエラーなので、物理メモリを増やそうかと思っているが、物理メモリ増設の前に、アプリケーションという観点からメモリ不足を引き起こす問題がないか調査してほしい」 取りあえず、原因を探るために現場に急行した。 現場にてトラブルの詳細をヒア
10万行コード読んだらJava分かるよってTwitterに書いたらすげぇ勢いでRTされたので、調子に乗って捕捉エントリ書くよ。 Java Core API JDKインストールしたディレクトリに入ってるsrc.zipを展開すると入ってるから読むと良いよ。 すぐ近くにあるのから読むってのはメンタル的に楽でいい。 厳密にはOSSじゃなくて単に公開されてるってだけなんだけども、JavaプログラマなのにコアAPIのコード読んでないとか無いよね? どれから読めば良いか分からんかったら、 java.lang java.util java.io java.text 辺りをまずはキチンと理解すること。当然コードを読み終わったら、それを使ってコードを書く事。 OpenJDK http://hg.openjdk.java.net/jdk7/jdk7 OpenJDKを読むことで、プログラム言語してのJavaではな
はじめに ソースコードは設計であり、コードの記述は品質に直結するのは言うまでもない。ちなみに、プログラマにとって特に重要なのは保守性だ。コードは書いた直後から保守対象となるからだ。コードは要求文書の範囲で動けばいいと思っている人がいれば今すぐ、ソースコードをコピペして100klに増えるプラグインがいつの間にかインストールされる呪いをかけてあげよう。幸い、ここを読んでいる人にはそんな人はいないだろうと思うけれども。 ということで、コードの品質を下げる要因、すなわちシステム全体の品質を下げる要因となり、かつ使われやすいアンチパターンを挙げ、対策を検討していくことにする。対象は以下: 出力パラメータ 処理状態返却 意味のある配列 無意味な初期化 多すぎるtry-catch 暗黙の順序 コンパイラ警告の無視 過剰なコメント e.printStackTrace() 出力パラメータ メソッドの引数にオ
オープンソース・ソフトウェア「Hadoop」のMapReduceジョブは、標準ではJavaで記述します(その他には、Pig、Hive、JAQLといったものがあります)。しかし、意外と初心者には分かりにくいと筆者は感じます。本記事では、MapReduceジョブのサンプルコードを使って、できる限り正しくコードの意味を理解し、MapReduceへの入り口を示したいと思います。 HadoopでMapReduceを記述するときに使うAPIが、0.19から0.20に変わるところで新しくなっています。実は、現時点でHadoopプロジェクト本体からでさえも、新APIを使ったサンプルが提示されていません。本記事では、新しいAPIで筆者が書き直したサンプルを使って解説しますので、このサンプルは0.19以前のHadoopでは動かないことに注意してください。この記事は、0.20.2を使って検証し、解説しています。
2010/09/13 元JavaプログラマのPaolo Perrotta氏は、Rubyを使い始めた頃のことを振り返り、こう話す。 「私はJavaの世界からRubyに来た当初、とてもハッピーなプログラマでした。Rubyっていいね、かっこいいじゃん! と。ところが、最先端のイケてるライブラリの中を覗いてみたら、分からないところだらけだったんです……」。 RubyKaigi2010で「A Metaprogramming Spell Book」(あるメタプログラミング魔術の書)と題した講演を行ったイタリア人プログラマのPerrotta氏は、Ruby on Railsのソースコードを覗いてみたときの驚きをこう表現する。 「例えばalias_method_chainというメソッドは、一体どこにあるんだと探しました。どこにあるか分からないんです。こんなことJavaではあり得ません。結局、テキスト検索で発
なぜ、いまScalaなのか? TwitterがScalaを利用しているのは有名ですが、他にも位置情報を利用したfoursquareはScalaで構築されたLiftというWebフレームワークを利用していますし、GTDツールとして有名なRemember The MilkもScalaの利用を検討しているようです。 Scalaは、Java Virtual Machine(以下JVM)上で動くオブジェクト指向+関数型言語です。簡潔で柔軟な記述が可能であり、マルチコアを意識したライブラリがあり、JVMでのスケールメリットを享受できることが、これらの企業で採用に踏み切った理由であると考えられます。 Scalaは、非常にバランスの取れたプログラミング言語です。本連載では、Scalaの基本的な文法を解説しながら、オブジェクト指向と関数型言語を組み合わせたプログラミングスタイルについて、解説したいと思います。
1分でWebアプリを作れるEclipseプラグイン「Dolteng」:Java初心者が超俊敏にWebアプリを作る方法(1)(1/3 ページ) Javaの業務用Webアプリ開発に必要なもの 読者の皆さんは、Javaで業務用のWebアプリケーションを開発するのに必要なものとして何を思い浮かべるでしょうか。統合開発環境? サーブレット/JSP? アプリケーションサーバ? Struts? DB接続のO/Rマッピング? DIコンテナ? 技術的には、これらも確かに必要です。また、アプリケーションが“安全”に“確実”に動くことが業務で使うときには求められます。 上記は当然のものとして、“仕事”として売り上げを上げるためにアプリケーション開発を行う場合に一番求められるのは、アプリケーションを一から開発する際や、デバッグ/修正する際の“速さ”や“俊敏さ”ではないでしょうか。 たとえJava言語の初心者、また
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く