Java総称型のワイルドカードを上手に使いこなすための勘所

Java5以降では総称型(generics)がJava言語に導入されています。総称型自体は、最近の静的な型付けのプログラミング言語で珍しいことではなく、現在の最新版では.NETのC#やVisual Basicにも導入されています。一般的には総称型をサポートするクラスライブラ…

普通の(業務)Javaアプリケーションでは配列をなるべく使用しない方がよい

以前、業務系のJavaプログラマーが知っておくべき10個のBad Partsとその対策 - 達人プログラマーを目指してにて、Java言語の配列はListなど他のコレクションとの不統一が顕著であるという点を説明しました。Java言語の配列は 要素に[ ]演算子を使って簡単に…

ドラゴンボールで学ぶオブジェクト指向 改(第弐話)

ドラゴンボールでオブジェクト指向の学習という元ネタのアイデアがうけたのか、ドラゴンボールで学ぶオブジェクト指向 改 - 達人プログラマーを目指しての記事がかなり大きな反響がありました。前回の記事では、クラス図とデザインパターンを使った設計によ…

ドラゴンボールで学ぶオブジェクト指向 改

ドラゴンボールといえば、大変に人気の高い国民的、いや世界的な漫画、アニメですが、昨日匿名ダイアリーでドラゴンボールをネタにしたオブジェクト指向の解説がホッテントリに入っていました。 ドラゴンボールで学ぶオブジェクト指向 多くの人に親しみやす…

まだそれを考える段階でないかもしれないが、巨大地震に遭ってSI業界は今後どうなるのだろうか?

日本列島を突然東北地方太平洋沖地震(東日本巨大地震、東北関東大震災)が襲いました。このような時期に、今回の地震に関してブログエントリを書くことは畏れ多いこと、不謹慎なことと感じられるかたもいらっしゃる思いますし、しばらくブログを書くのもお…

Groovyのオーバーロードメソッドの解決はユニークなところがある

Java、C#、C++などを含めて現代のほとんどの静的な型付けのプログラミング言語では、異なる型を取る複数のメソッドを同じクラス中に多重定義することができます。これはメソッドのオーバーロード(overload)*1として知られています。たとえば、以下のように同…

よりGroovyらしいプログラムへのリファクタリングに挑戦してみました

先日認定試験問題のリファクタリング結果をGroovyにとりあえず移植してみました - 達人プログラマーを目指してにてJavaプログラミング認定試験のサンプルプログラムのGroovy化について紹介しました。その記事を書いた時点では、とにかくGroovyとJavaとの親和…

SI業界の改革には責任者に対するショック療法が有効かもしれない

私の直属の上司ではないのですが、会社の大先輩がインドに1ヶ月程滞在し、現地のSIerの開発現場を視察してきました。現地での研修を提供している会社は、あのデータさんの子会社になっているみたいです。 http://www.vertexsoft.co.jp/services/learning-in-…

クラウドが昔ながらのSIerの仕事を奪うようになってきてはいるけれど

Salesforceといえば、ちょうど最近行われたSalesforce Developers | Developer Eventsというイベントに参加された方もSI業界では多くいらっしゃるのではないかと思います。私はそのイベントには参加していませんでしたが、先日会社でSalesforceのSE*1の方か…

認定試験問題のリファクタリング結果をGroovyにとりあえず移植してみました

最近Groovyから遠ざかっていたため、勘を取り戻す練習も兼ねて、先日Javaプログラミング能力認定試験課題プログラムのリファクタリングレポート(その3) - 達人プログラマーを目指してでご報告したサーティファイJavaプログラミング認定試験のリファクタリ…

IntelliJ IDEAはGroovyの学習や開発に最適なIDEだった

先日、業務系のJavaプログラマーが知っておくべき10個のBad Partsとその対策 - 達人プログラマーを目指してで、Javaのイケていない部分について説明し、そこでGroovyやScalaといったいわゆる軽量言語(LL)を使うことでコードが単純化されるという説明をしま…

業務系のJavaプログラマーが知っておくべき10個のBad Partsとその対策

Java: The Good Partsの本のタイトルに触発されて、逆にJava言語の使いにくい部分をいくつかピックアップしてみました。Java EEなどの業務系のアプリケーションプログラマーの視点で書いていますので、別の立場ではここで指摘している事項が必ずしもBad Part…

JGGUGの勉強会(G*ワークショップ)に初めて参加してきました

昨日JGGUGが主催するGroovyの勉強会に初めて参加してきました。 2月24日 第15回 G*ワークショップ(東京都) 今まで知らなかったのですが、もう15回も行われているのですね。なお、勉強会の詳しい内容については、既に、id:absj31さんが以下で詳しくレポートし…

RMIのサーバーオブジェクトはスレッドセーフでなくてはならない

RMIのAPIのJava Docに書かれていないようなので見落としがちなことですが、RMIのサーバーオブジェクト(Remoteの実装クラス)は、複数のスレッドから同時に呼び出される(可能性がある)ようです。このことは、Java並行処理プログラミング ―その「基盤」と「…

システム系の例外は実行時例外+AOPでハンドリングするのがベスト

インフラ層のチェック例外はやはりJavaのBad Partだと思う 先日のJava言語のチェック例外は本当にGood Partなのか? - 達人プログラマーを目指してで、 インフラ層のフレームワークなどでは実行時例外が適切 ということを書いたのですが、この点についてもう…

Java言語のチェック例外は本当にGood Partなのか?

デブサミ2011会場のオライリーのブースで目に入ったため、以下の本を購入しました。Java: The Good Parts作者: Jim Waldo,矢野勉,笹井崇司出版社/メーカー: オライリージャパン発売日: 2011/02/24メディア: 大型本購入: 3人 クリック: 148回この商品を含むブ…

Developers Summit 2011参加メモ(2日目)

Developers Summit 2011参加メモ(1日目) - 達人プログラマーを目指してに続いて、2日目のレポートです。 【18-B-1】プログラマが知るべき、たったひとつの大事なことがら タイトルはもちろん、以前もすべてのプログラマーに読んでもらいたい本 - 達人プロ…

Developers Summit 2011参加メモ(1日目)

創発 未来につながるために 世界に帆を立てるために Developers Summit 2011に参加してきました。記憶が薄れない前に、ノートに取ったことを以下にまとめておきたいと思います。基本的にはこのブログで日ごろ書いている内容と同様に、エンタープライズ開発や…

jXLS Readerを使ってアップロードされたExcelファイルを読み込む

先日、jXLSを使ったExcelテンプレートをSpring MVCのビューとして利用する方法 - 達人プログラマーを目指してでjXLSを使ってExcelファイルを生成してダウンロードする方法について説明しました。ここでは逆に、アップロードされたExcelファイルを読み込んでP…

jXLSを使ったExcelテンプレートをSpring MVCのビューとして利用する方法

jXLSを使ってJSPと同様の方法でExcelファイルを生成する 業務アプリケーションでは好むと好まざるとにかかわらず、Excelファイルの入出力を行う必要がある場合が多くあります。JavaからExcelファイルの読み書きを行うOSSのライブラリーはいくつかありますが…

Spring MVCでコントローラーのリクエストハンドラメソッドのメタ情報を記録する方法

正攻法でアクションハンドラメソッドのメタ情報を取得することは困難 開発で利用するフレームワークを作成する際には、実行対象となるオブジェクトの型やメソッドに付けられたアノテーションなどのメタ情報を利用したい場合が多くあります。特に、Spring MVC…

自分の定めた目標に向かって努力するということ

最近id:j5ik2oさんの努力する人が最後には”できる人”になる - じゅんいち☆かとうの技術日誌というエントリーを読んだことがきっかけで、エンジニアとして「努力する」ということについてちょっと考えてみました。 努力と目標設定 普段意識していなかったので…

Javaプログラミング能力認定試験課題プログラムのリファクタリングレポート(その3)

少し間が開いてしまいましたが、前回のJavaプログラミング能力認定試験課題プログラムのリファクタリングレポート(その2)に続いて、試験問題のリファクタリングについて説明します。 Template Methodデザインパターンを使った制御の反転 前回までのリファ…

日本では職業上専門家たるプログラマーという地位が確立されていない?

ずっと前に読んだことがあるのですが、金持ち父さんのキャッシュフロー・クワドラント作者: ロバートキヨサキ,白根美保子出版社/メーカー: 筑摩書房発売日: 2001/06/27メディア: 単行本購入: 23人 クリック: 601回この商品を含むブログ (142件) を見るという…

Spring MVCでJSONデータを返すための手順

バージョン3以降のSpring MVCでは、コントローラーのメソッドからJSON文字列を簡単に返却させることができます。以前のバージョンでもビュークラスを独自に拡張することでJSONの返却は一応可能でしたが、最新バージョンでは非常に簡単にJSON対応させることが…

いまさらだけど、Java言語にはクロージャーがない

Java言語でメソッド中で内部クラスを作る時、そのメソッドのパラメーターやローカル変数に内部クラスのメソッド中からアクセスできます。しかし、この場合にはこれらの変数にfinalを付けないとコンパイルエラーになってしまいます。 public void test(int pa…

英語コンプレックスを持つプログラマーの弱音

想像以上にガラパゴス化した日本のIT業界?に対して ありがちな英語コンプレックス。 というコメントをいただいたことで、私は英語コンプレックスが非常に強いということをあらためて思い出しました。英語は全然平気だという方も中にはいらっしゃるかもしれ…

想像以上にガラパゴス化した日本のIT業界?

出版されている技術書のタイトルやネット上での情報を元に、なんとなくシステム開発で使われる技術が国によって差があるように感じるということを、これまでいろいろな記事で書いてきたのですが、はたして実際のところはどうなのでしょうか?300年前なら、Ma…

Groovy言語とAspectJの人気が今ひとつな本当の理由

先日DevLOVEの主催するぐるぐるGroovyという勉強会に参加してきました。 1月24日 DevLOVE ぐるぐるGroovy -Easy Going Groovy-(東京都) Groovy言語については、構文がJava言語に非常に近い上に、Javaの既存ライブラリーとの相互運用性も高く、さらに、Java言…

AJDTを使って規約違反のコードを検出する方法

AspectJというと、メソッドなどに処理を織り込むAOPのイメージが強いと思いますが、AJDTというeclipseのプラグインを使うと強力なコード検証ツールとして利用できることは意外と知られていないようです。(AJDTはSpring Tool Suiteには最初から内蔵されてい…