タグ

ブックマーク / ryoasai.hatenadiary.org (23)

  • JJUG CCC 2014 Springに参加してきました - 達人プログラマーを目指して

    日、日Javaユーザーグループ(JJUG)主催のCCC 2014 SpringというJavaの勉強会に行ってきました。会場は、ベルサール西新宿で、都営大江戸線都庁前のA5出口を出て、新宿中央公園の5分くらい歩いたところにありました。今はスマートフォンで地図を確認しながら行けるので、初めての場所でも方向音痴の私でも電車の駅さえ間違わなければ大丈夫ですね。 CCCというのはCross Community Conferenceの略で、さまざまなコミュニティーの交流の場となる会議という趣旨でしょうか?このCCCというイベントは2012から開催されているようなのですが(CCC | 日Javaユーザーグループ)、今回初めて参加させていただきました。残念ながら個人的な都合から、基調講演と午後の前半のセッションのみで後半と懇親会には参加できませんでしたが、参加したセッションについてまとめます。その他

    JJUG CCC 2014 Springに参加してきました - 達人プログラマーを目指して
  • 開発チームにアーキテクトがいないなと感じてしまうような、残念なコードスメルの例 - 達人プログラマーを目指して

    まったく個人的なモチベーションの問題から、前回の最終更新から2年以上が経過してしまい、多くの読者のみなさんにはご心配をおかけいたしました。「プログラミングに関して調べたことや日々感じたことをメモとして残していきたいと思います。」というもともとの原点に立ち返って、あまり気負わずに、また今後も時々更新していけたらと思います。今までこのブログの主なテーマとして、JavaEEやSpringといったような、いわゆる業務開発で使われるような技術を中心としてきたわけですが、最近Springを使ったJavaの開発に(アーキテクトではなく)プログラマーとしてちょっと参加する機会があったので、その時気づいたこと、感じたことを書いてみたいと思います。 さて、皆さんはアーキテクチャやアーキテクトという言葉に対してはどのようなものをイメージするでしょうか。システムのセキュリティを確保するための方式であったり、大量の

    開発チームにアーキテクトがいないなと感じてしまうような、残念なコードスメルの例 - 達人プログラマーを目指して
  • Apache Ivyの紹介と基本的な使い方 - 達人プログラマーを目指して

    Apache Ivyについてはブログでも何回か用語自体は取り上げてきましたが、現状日語での情報が限られるためか、AntそのものやMavenに比べるとユーザーが少ないように思われます。ここで基的な使い方やMavenとの違いについて簡単に紹介させていただきたいと思います。 Apache Ivyとは 家のホームページは以下の通りです。 Home | Apache Ivy ™ もともとはJayasoftという組織で開発されていたツールですが、バージョン2.0以降、Antの関連プロジェクトとしてApacheプロジェクトの元に加わっています。(Apacheというブランド名はツールを組織に導入する際に結構重要ですね。) 上記のホームページでは「アジャイルな依存性管理ツール」として紹介されていますが、Mavenの機能の中からビルド機能やプロジェクト管理機能を無くして、ライブラリーの依存関係の管理に

    Apache Ivyの紹介と基本的な使い方 - 達人プログラマーを目指して
  • Javaのクラスとオブジェクトについて再度解説を試みる - 達人プログラマーを目指して

    オブジェクト指向プログラミングの考え方については、今までこのブログでも何度か取り上げてきました。 [オブジェクト指向] - 達人プログラマーを目指して オブジェクト指向プログラミングはプログラミング技法のすべてではないとはいえ、Javaのようなオブジェクト指向言語で格的なプログラムを作るには理解を避けて通ることができませんし、また、関数型言語など他のパラダイムの言語を利用するにしても、オブジェクト指向の考え方をまったく理解しないまま使いこなすということは困難でしょう。オブジェクト指向の考え方はデータ構造やアルゴリズムといったことと同様に、プロフェッショナルなプログラマーが理解しておくべき基的な素養といってもよいと思います。実際、海外では募集要項でオブジェクト指向の理解を前提とすると書かれていることが普通ですし、プログラマーの面接試験で、アルゴリズムと並んでオブジェクト指向プログラミング

    Javaのクラスとオブジェクトについて再度解説を試みる - 達人プログラマーを目指して
    nobusue
    nobusue 2011/12/18
    staticおじさんて@ITの例のblogの人ですよね
  • Java EE6環境でJSF2を使う場合はCDIのBeanを管理Beanとして使う方がよい - 達人プログラマーを目指して

    先週の勉強会で紹介させていただいたjsf-scrumtoys-refactoredでは、JSFの管理Beanを使用する代わりにCDIのBeanを利用しています。この点説明が不十分だったので、ここで簡単に補足させていただきます。 JSFと管理Bean 勉強会の中で、JSFはコンポーネントベースのWebアプリケーションフレームワークであると説明させていただきました。(この点については以下のエントリーもご参照ください。Struts1に代わるWebフレームワークの選択 - 達人プログラマーを目指して) コンポーネントベースのフレームワークの場合、VBやSwingといった伝統的な(Webでない)GUIアプリケーションのように、フォームや入力フィールド、ボタンといった画面コンポーネントのツリーが構築されます。そして、画面部品の入力やクリックなどのイベントに従って、管理Beanと呼ばれるPOJOに対して

    Java EE6環境でJSF2を使う場合はCDIのBeanを管理Beanとして使う方がよい - 達人プログラマーを目指して
  • オラクルさんのWeblogicセミナーでJava EEについてディスカッションしてきました - 達人プログラマーを目指して

    前回の記事で予告させていただいたとおり、日、WebLogic & Java EE 活用セミナーの最終セッションの座談会にパネラーとして登壇させていただきました。今回、このような機会を与えていただいたオラクルさんの関係者の皆様、また、セミナーに参加された皆様、どうもありがとうございました。(座談会の内容はオラクルのFusion Middlewareのアカウントである@OracleMiddle_jpでもツイートされていますのでご参照ください。また、今回の勉強会のハッシュタグは#0906wlsjavaeeとのことです。) 今回は私がJava EEの開発者の立場から、斉藤さんがユーザー企業の情報システムの管理者・アーキテクトの立場から、新野さんが技術トレンドのより広い視野からJava EEをみた視点を提供するという立場でそれぞれ意見を交換しました。 今回のセミナーについての正式なレポート記事はま

    オラクルさんのWeblogicセミナーでJava EEについてディスカッションしてきました - 達人プログラマーを目指して
  • Java EE6標準の範囲でフルスタックのWebアプリケーションが簡単に作成できることを確かめてみました。 - 達人プログラマーを目指して

    Java EE6でさらに開発は容易になった? 以前JavaEE標準の進化から最近の業務アプリケーション開発手法の変遷について考える - 達人プログラマーを目指してにてJava EE標準の開発モデルの進化について説明しました。10年前の相当面倒だったJ2EEの開発モデルと比べて、最新のJava EE6では、様々なOSSの良い特徴を取り入れて、簡単にプログラミングできるように大幅に改良されています。また、Glassfish 3.1やJBoss AS7などは起動時間が非常に短縮されており*1、よほど遅いPCでなければわずか数秒で再起動することができます。さらに、Java EEサーバーが重くてテスト不能というイメージはもう過去の話かもしれない - 達人プログラマーを目指してで紹介したように、Java EE6では従来困難であった単体試験の自動化も容易になっています。 個々の技術は優れているのだけれど

    Java EE6標準の範囲でフルスタックのWebアプリケーションが簡単に作成できることを確かめてみました。 - 達人プログラマーを目指して
  • Javaエンジニア必携の「プログラミングGroovy」を献本していただきました - 達人プログラマーを目指して

    昨日、ポストを確認したところ、執筆陣の皆さんより、献として送っていただきましたプログラミングGroovyが届いていました。 プログラミングGROOVY 作者: 関谷和愛,上原潤二,須江信洋,中野靖治出版社/メーカー: 技術評論社発売日: 2011/07/06メディア: 単行(ソフトカバー)購入: 6人 クリック: 392回この商品を含むブログ (155件) を見る私の人生で初の「献」であったということもありますが、当に出版を心待ちにしていたであったので届いていたのをみつけたときは、(まったく季節外れな表現ですが)子供のころにサンタさんからプレゼントが届いていたのを見つけた時と同じような感動を覚えました。私は「Groovyおじさん」と呼ばれてもよい年齢なのですが、新しい技術書が届いた時のわくわく感というものは常にありますね。でも、出版から一足早く「献」を受け取るというのは生まれて

    Javaエンジニア必携の「プログラミングGroovy」を献本していただきました - 達人プログラマーを目指して
  • ConQATを利用してソースコードの品質をチェックする - 達人プログラマーを目指して

    ある程度プログラマーとして経験を積めば、ソースコードを読んだときに、そのソースコードの良し悪しというものは、嗅覚を使って直感的に嗅ぎ分けることができるものです。実際、そのように体の感覚を使ってこのコードは不吉だと感じるところは実際大いにあり、コードの臭い(code smell)として知られています。 コードの臭い - リファクタリングの必要性を示す兆候 これはファウラーの名著 リファクタリング―プログラムの体質改善テクニック (Object Technology Series) 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史出版社/メーカー: ピアソンエデュケーション発売日: 2000/05メディア: 単行購入: 94人 クリック: 3,091回この商品を含むブログ (312件) を見るでも紹介されており、こういった不吉な部分を適切に嗅ぎ分け

    ConQATを利用してソースコードの品質をチェックする - 達人プログラマーを目指して
  • JavaEE標準の進化から最近の業務アプリケーション開発手法の変遷について考える - 達人プログラマーを目指して

    昨日まとめの記事EJBコンテナが分散コンポーネントモデルから軽量なDIコンテナに変化してきた歴史を振り返る - 達人プログラマーを目指してを書いてみて、この10年間でエンタープライズJava開発の生産性がいかに向上してきたということをあらためて思い出しました。しかし、ちょっと考えてみると記述すべきコーディングの分量が単に10分の1になったということだけではなく、開発手法に対する根的な考え方が大きく10年前と比較して大きく変化しているという質的な変化も重要なのではないかと感じるところもあります。ここでは、Java EEの進化と開発手法の変化(日の業界ではなくやネットの情報から推測される世界の)について補足させていただきたいと思います。 ベンダー駆動型の仕様策定プロセスからOSSコミュニティーを中心とした開発者駆動型への変化 10年前は、エンタープライズ開発においてOSSのフレームワーク

    JavaEE標準の進化から最近の業務アプリケーション開発手法の変遷について考える - 達人プログラマーを目指して
  • EJBコンテナが分散コンポーネントモデルから軽量なDIコンテナに変化してきた歴史を振り返る - 達人プログラマーを目指して

    十年一昔といいますが、文字通り一昔前の書籍ではJ2EEのEJBコンポーネントはプロセスが分散化されたリモート呼び出しにより処理を行う分散コンポーネントとして説明されています。そして、残念ながら現状Java EE関連の日語の書籍はこうした古い時代に書かれたものがほとんどとなっています。それゆえ、 開発効率がきわめて悪い 実行性能が悪い*1 仕様がきわめて複雑で理解が大変 といった悪いイメージが定着してしまっているのではないかと思います。しかしながら、最新バージョンのJava EE6では、Spring、Guice、SeamなどのOSSの軽量コンテナのアイデアを取り込むことにより、以前とは比較にならないくらい開発効率が改善されているという事実があります。 ここでは、Hello WorldのEJBの書き方を以前の古いバージョンから順次振り返りながら比較してみることで、EJBのプログラミングモデル

    EJBコンテナが分散コンポーネントモデルから軽量なDIコンテナに変化してきた歴史を振り返る - 達人プログラマーを目指して
  • 普通の業務系PGには意外と知られていないJavaとJavaScriptの相違点10選 - 達人プログラマーを目指して

    以前はJava EEの普通のWebアプリケーションで、JavaScriptはあくまでも利便性のために補助的に使うものという認識がありましたが、さすがに最近では普通の業務系のSI案件でもテーブル表示や入力補助などで高度なAjaxライブラリーの使用が当たり前のように求められるようになりつつあります。サーバーサイドのJavaScript技術といったものもありますが、そういった新しい技術を使わないまでも、ごく普通にある程度大きなJavaScriptの作成が必要になってきているということです。 もちろん、JavaJavaScriptはその名前にかかわらず、来全く別の言語です。しかし、意図的に似た構文でロジックが書ける*1ため、兄弟の言語として認識している人も意外に多いのではないかと思います。しかし、使用できるライブラリーに違いがあるという点が一見してわかる最も大きな違いですが、基的な言語の文法

    普通の業務系PGには意外と知られていないJavaとJavaScriptの相違点10選 - 達人プログラマーを目指して
  • Java EEサーバーが重くてテスト不能というイメージはもう過去の話かもしれない - 達人プログラマーを目指して

    Java EE 5まではいろいろな面で生産性が低かったと言わざるを得ないところがあった 今まで仕事上、Java EEのサーバーを実行基盤として用いるさまざまなシステムの開発に関わってきましたが、JavaEE(古くはJ2EE)のサーバーというと経験上 xmlの設定ファイルの記述がきわめて面倒 J2EE1.4までは、EJBを使った場合Pojoとしてサービスやエンティティを作成できない サーバーの再起動にものすごく時間がかかる ライセンス料が高い サーバーを気軽にダウンロードして試せない というような非常に悪いイメージがあったというのが正直なところでした。 それゆえ、JavaをSEとEEに分類するのは今では無意味になってきている? - 達人プログラマーを目指してでも紹介したように、Seasar2やSpringといった軽量コンテナというしくみが登場し、事実上EJBコンテナの機能はほとんど利用せず、

    Java EEサーバーが重くてテスト不能というイメージはもう過去の話かもしれない - 達人プログラマーを目指して
  • SpringのJavaBeansアクセスAPIと型変換サービスは単独で利用しても利用価値が高いという事実 - 達人プログラマーを目指して

    Spring Frameworkはもともと、面倒なJavaEE環境における開発を簡易化する軽量のDIコンテナーとして有名になったので、あまり、そういうイメージがないのですが、実は、JavaSEのAPIを簡易化するためのライブラリーとしてもかなり良く設計されていると思います。実際、Springは低結合性、高凝集性、インターフェースに対するコーディングなどオブジェクト指向の設計がかなり徹底されているため、部分的な部品のつまみいも比較的容易なのです。ここでは、意外に知られていないSpring FrameworkのJavaSE簡易化機能についていくつか紹介したいと思います。これらの機能を流用して使いこなすことで、Webアプリケーションに限らず、さまざまなプログラムでJava言語を使った開発の生産性を向上させることができると思います。 JavaBeansに対するプロパティアクセスの簡易化 Spri

    SpringのJavaBeansアクセスAPIと型変換サービスは単独で利用しても利用価値が高いという事実 - 達人プログラマーを目指して
  • CORBA関連のJava技術について - 達人プログラマーを目指して

    CORBAで実装されたレガシーなサービス(課金関連?)をJavaのWebアプリケーションと連携させる仕事を担当することになりそうなので、今更ですがCORBA関連のJava技術に関して調査してみました。簡単に結果を以下にまとめます。 CORBAとは Common Object Request Broker Architecture - Wikipediaによると、さまざまな言語で実装されたオブジェクトを分散化された環境で相互に呼び出すためにOMGによって標準化された規格とのこと。IDL(Interface Definition Language)によって言語非依存のインターフェースを定義しておき、Java、C、C++、Ada、COBOL、Smalltalk、LISPなどさまざまな言語で実装可能となっています。*1つまり、CORBAでは言語透過性、位置透過性が実現されるということです。さらに、

    CORBA関連のJava技術について - 達人プログラマーを目指して
  • 達人プログラマーを目指して

    日、日Javaユーザーグループ(JJUG)主催のCCC 2014 SpringというJavaの勉強会に行ってきました。会場は、ベルサール西新宿で、都営大江戸線都庁前のA5出口を出て、新宿中央公園の5分くらい歩いたところにありました。今はスマートフォンで地図を確認しながら行けるので、初めての場所でも方向音痴の私でも電車の駅さえ間違わなければ大丈夫ですね。 CCCというのはCross Community Conferenceの略で、さまざまなコミュニティーの交流の場となる会議という趣旨でしょうか?このCCCというイベントは2012から開催されているようなのですが(CCC | 日Javaユーザーグループ)、今回初めて参加させていただきました。残念ながら個人的な都合から、基調講演と午後の前半のセッションのみで後半と懇親会には参加できませんでしたが、参加したセッションについてまとめます。その他

    達人プログラマーを目指して
  • プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して

    最近はアーキテクトという役割で客先に常駐し、フレームワークの選定をしたり、事前に共通部品を設計したりする役割を担う仕事を引き受けることが結構あります。そこで運よくお客様のマネージャーがオブジェクト指向開発の経験が十分にある方だと、IDEなどの開発環境やインターネット接続環境を当然のように用意してくれるので最初から仕事がスムーズにできるのですが、そうでないとMS Officeしか入っていないロースペックのノートPCを渡されて、要件定義フェーズの期間中、フレームワークの設計をお願いしますとか、私としてはちょっと首をかしげてしまうような困ったことを言われてしまう場合があります。開発フェーズが始まる半年後まではコーディングは基的に不要という考え方です。アプリケーションのアーキテクトという役割では少なくともコーディング規約を考えたり、ツールやフレームワークの選定をしたりする必要がありますし、プロジ

    プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して
  • SI業界の改革には責任者に対するショック療法が有効かもしれない - 達人プログラマーを目指して

    私の直属の上司ではないのですが、会社の大先輩がインドに1ヶ月程滞在し、現地のSIerの開発現場を視察してきました。現地での研修を提供している会社は、あのデータさんの子会社になっているみたいです。 http://www.vertexsoft.co.jp/services/learning-in-india.html そこで、実際にインドのプログラマーアジャイルプロセスを使って開発をしている現場を目の当たりにし、いい意味ですっかり洗脳されて帰っておいでになりました。 1週間ごとに追加機能をリリース スタンドアップミーティングによるタスクの割り当て 徹底的に自動化された進捗管理*1 徹底的に自動化されたテスト きわめて計画的で少ない残業時間 プログラマーの地位の高さと優秀さ やはり、百聞は一見に如かずといいますが、日のSI業界の開発手法が20年も遅れていると言われても、何十年も開発の現場から

    SI業界の改革には責任者に対するショック療法が有効かもしれない - 達人プログラマーを目指して
    nobusue
    nobusue 2011/03/10
  • クラウドが昔ながらのSIerの仕事を奪うようになってきてはいるけれど - 達人プログラマーを目指して

    Salesforceといえば、ちょうど最近行われたSalesforce Developers | Developer Eventsというイベントに参加された方もSI業界では多くいらっしゃるのではないかと思います。私はそのイベントには参加していませんでしたが、先日会社でSalesforceのSE*1の方からお話を伺う機会がありました。 Salesforceの提供するForce.comのようなパブリッククラウド上での開発を最初からなんとなく敬遠してしまう組織もあるかもしれませんが、多くの業務システム開発に対しては開発生産性がJavaや.NETの5倍という宣伝文句は決して大げさでないケースが多いと考えます。実際この5倍という数字は日における実績というよりワールドワイドでの実績に基づくものと思われますが、海外ではそもそもSalesforceが対象とするような領域ではもともと生産性の高いフレームワ

    クラウドが昔ながらのSIerの仕事を奪うようになってきてはいるけれど - 達人プログラマーを目指して
  • 認定試験問題のリファクタリング結果をGroovyにとりあえず移植してみました - 達人プログラマーを目指して

    最近Groovyから遠ざかっていたため、勘を取り戻す練習も兼ねて、先日Javaプログラミング能力認定試験課題プログラムのリファクタリングレポート(その3) - 達人プログラマーを目指してでご報告したサーティファイJavaプログラミング認定試験のリファクタリング結果をGroovyに移植してみました。また、使い始めたばかりで良くは理解できていないのですが、ビルドもMavenからGradleに切り替えてみました。 現時点ではテストも不十分ですし、十分にGroovyらしいコードにも修正できていませんが、一応コードは以下に登録してあります。(ビルド方法は後述) リファクタリングGroovy版 一方、もともとのJavaのリファクタリング結果は以下にあります。 リファクタリングJavaJavaからの基的な修正手順 Java版のリファクタリング結果に対して、基的には以下の手順で修正を加えました。

    認定試験問題のリファクタリング結果をGroovyにとりあえず移植してみました - 達人プログラマーを目指して
    nobusue
    nobusue 2011/03/02
    Java->Groovyでの実践的なまとめ