タグ

javaに関するdochanのブックマーク (58)

  • いまさらですが、職業Javaプログラマーなら理解しておいてほしい「継承」の意味について - 達人プログラマーを目指して

    正しく意味を理解している方にとっては、まったく常識レベルの話であり、何をいまさらと思われる方々も多いかと思いますが、大規模案件のレガシーコードなど、私が仕事で見かけるJavaのコードを読むと、「このコードを書いたSEやPGの方々は、はたして継承の意味を正しく理解していないのではないか」と思われる設計のコードに出会うことが少なからずあります。現在では改良されましたが(Javaプログラミング能力認定試験の問題がかなり改善されていました - 達人プログラマーを目指して)、以前のJavaプログラム認定試験の問題は、そうした不適切な設計がされている典型的な例となっていたのですが、実際、SI業界ではあのような品質のコードのシステムが今でも現役で多数稼動しているというだけでなく、現在でも新たに生み出されているというのは残念ながら紛れもない事実のようなのです。 確かに新人研修で「哺乳類を継承して犬クラスと

    いまさらですが、職業Javaプログラマーなら理解しておいてほしい「継承」の意味について - 達人プログラマーを目指して
  • Javaバイトコードの読み方 - プログラマーの脳みそ

    Javaのデバッグをしていて、ステップ実行中にステップインを繰り返したらソースコードのないところに行き当たったことがあるだろう。あるいはEclipseでF3キーでクラスやメソッド・フィールドの宣言元を辿っていってソースコードのないところに行き当たったことがあるだろう。 Eclipseの場合、"Class File Editor"というものが開く。そこにはJavaのバイトコードのニーモニックがズラズラと並んでいて、「これは読めないや、ワケが分からない」と投げ出してしまったりしていないだろうか。 怖がることはない。ちょっとコツを掴めばすぐに読めるようになる。 Class File Editorの開き方 自前のJavaクラスの場合、ビルドして出来上がったclassファイルを開く必要がある。"Package Explorer"だとclassファイルは隠されていて見えないのでWindow -> Sh

    Javaバイトコードの読み方 - プログラマーの脳みそ
    dochan
    dochan 2010/02/08
  • はてなブログ | 無料ブログを作成しよう

    【献血デビュー】体重が少し足りず400ml献血はできなくとも、献血ルームでの成分献血ならできたぞ、という話 いきさつ 2025年の抱負として「400ml献血をできるようになる」を掲げてから、冬を越し春が過ぎ夏が終わ………なかなか終わらないな……8月も終わろうとしている。記事を書いた頃の体重からは1kgぐらい増えたところだ。 夏バテなんてどこ吹く風とばかりに、ここ数週間は私の…

    はてなブログ | 無料ブログを作成しよう
  • 5年後に後悔しないJavaプログラムの書き方 - L'eclat des jours(2009-07-02)

    _ 5年後に後悔しないJavaプログラムの書き方 ここ数日、死ぬほど後悔しまくっているので、あらためて(というのは、数年前にも一度後悔しまくって、そのときの知見はあらかた処方箋とかコーディングの掟に書いているからだが)後悔しないための書き方をいくつか紹介する。 とにかく、ファクトリメソッドパターンを使うこと。 これは当に重要。しかも簡単でありながら効果は絶大。 だめな例。 public class FooBar { private Connection conn; ... protected void setup() { ... conn = DriverManager.getConnection(url); ... } urlを指定することや、DriverManagerの実装を交換すれば良いだろうと想定していても(というか、Connectionならそういう方法もあり得るが、そうはいかな

  • 「オブジェクト指向は教えないでください」ってなんてよくわかった会社だろうか - きしだのはてな

    よく分かってる会社だ。 次世代の基幹系オープンシステム開発に利用されるプログラミング言語は? - forest book 先日、SIer友人が新人研修の講師として Java を教えるというお話を聞きました。会社側からは「Java を教えるのではなく、"プログラミング" を教えてほしい。オブジェクト指向は教えないでください。」との指示を受けたそうです。 プログラミングにおいて、現場での「オブジェクト指向」の優先度が低いってことですよね。 そして、理論的にも優先度は低い。アルゴリズムとか関数的ななにかとかをちゃんと扱えるようになるのが先決ですね。 関数+制御構造がやはり基だし、その範囲がちゃんと扱えないで「オブジェクト指向」がちゃんと活用できるとは思えないし。 ただ、そうしようとしてもJavaではオブジェクト指向のための構文を知らざるを得ないので、その範囲のオブジェクト指向の知識は必要に

    「オブジェクト指向は教えないでください」ってなんてよくわかった会社だろうか - きしだのはてな
  • 実開発で分かったGoogle App Engine for Javaの“すごさ”

    ゴールデンウィークに特に予定のなかった筆者は,「ちまたで噂のGoogle App Engine for Java(GAE/J)とFlexでスケジュール共有ツールでも作ってみよう」と思い立ちました。およそ5日間かけて開発を進めたのち,2009年5月6日に「ご都合.com(画面1)」を公開しました。その後,はてなブックマークやニュースサイトなどでご紹介いただいたおかげで,公開後6日で約2000人の方にご利用いただいています。 そこで稿では,この「ご都合.com」の開発で実際に筆者が得た経験を通じて,GAE/JによるWebアプリケーション開発の実際とそのポテンシャルについて紹介します。 米Googleが2008年4月に発表したGoogle App Engine(画面2)は,「自分が開発したWebアプリケーションをGoogleのデータセンターで運用できるクラウドコンピューティング・サービス」です

    実開発で分かったGoogle App Engine for Javaの“すごさ”
  • バージョン管理に便利なSubversiveプラグイン (1/3) - @IT

    そもそもSubversionとは何か? Subversionとは、バージョン管理システムとして広く利用されているCVSの管理スタイルを踏襲しつつその欠点を解決したバージョン管理システムです。Google Trendsによると、日ではSubversionの検索数がCVSをすでに上回っており(2007年3月現在)、関心が高まってきています。 実際、筆者の周りでもSubversionを利用しているプロジェクトが増えてきています。稿では、SubversionをEclipseから利用するプラグインSubversiveとプロジェクト管理システム「Trac」との連携を中心とした利用ノウハウを提供します。 Subversionのメリット チェンジセットによるリビジョン管理 バージョン管理システムにおいて、ローカルで編集した内容をリポジトリへ反映するために行う作業を、コミットといいます。 CVSはファイ

    バージョン管理に便利なSubversiveプラグイン (1/3) - @IT
  • OracleのSun買収を支持します:Kenn's Clairvoyance

    OracleがSunを買収するとの発表がありましたが、ネット上ではあまり好意的な意見がなかったので、一言コメントしたくなりました。(ディスクロージャ。。。というわけでもありませんが筆者は新卒で入社した会社がOracleだったこともあり、適当に割り引いてみてください) というのも、昔からシリコンバレーの「おしどり夫婦」と呼ばれるぐらい、互いが互いの成長を支え合ってきたOracleとSunのコンビなのだから、この二人がくっつくのは実にいい結末だと思っているのです。 時代がメインフレームからミニコン、UNIXへと向かい、ダウンサイジングが進んだ1980-1990年代、SunとOracleはともにUNIX世代の盟主として君臨していました。ところが2000年代以降、さらにUNIXからPCサーバへとダウンサイジングが進むにつれ、両者は典型的なイノベーションのジレンマに陥っていました。たまたま直接的なダ

    OracleのSun買収を支持します:Kenn's Clairvoyance
  • 良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog

    Java並行処理プログラミングを読み終えた。ここ 1 年に読んだ技術書の中でダントツのベスト。(2位はWorking Effectively With Legacy Code) 「Javaだから関係ない」と思った人にこそ読んで欲しい。僕もここ数年 Java のコードなど一切書いていないが、このを読んで得たものは非常に大きかった。 このでは マルチスレッドプログラミングにおける問題と背景、その対処方法 Java が提供している API の設計と実装 を解説している。分かりやすさとレベルの高さを兼ね備えたとても良い。翻訳も最高。 僕はこのを読んで、Java の並行処理プログラミングは、想像を遙かに超えて進化している事に驚きを隠せなかった。何回も twitterJava すげーと叫んだ。 これを読んでしまうと、最近僕が熱心な Scheme も含めて、自分の身の回りにあるプログ

    良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog
  • 経験年数2年半のJavaプログラマがちょっと書くよ。

    はてな界隈では、Javaって、あんま人気無いみたいだけど、ちょっと書かせてよ。 SIerでお仕事してると、派遣とか常駐とか言う形で、色んな会社に行って、違う会社の人とお仕事するんだけど、「経験年数n年(n>3)です」っていう人達が、恐ろしく使えなくてびっくりすることがしばしば。 特に、Java 5以降の機能 拡張for構文Enum可変長引数辺りを全く知らなかったり。 って言うか、Javaの極々基的な知識である equals/hashCodeの実装Serializableの実装Iteratorの実装が全く出来ないんだよね…。 そういうのを知らなくても(出来なくても)業務をこなせちゃう(?)のが、Javaの言語特性だとは思わないけど、こういう人達だらけなんだよね…。 PMが新しい人を採用しようとして、ここら辺の知識を割りと厳し目にテストしたら、候補が10人居たのに全滅で、プロジェクトのスター

    経験年数2年半のJavaプログラマがちょっと書くよ。
  • Tomcatのセキュリティとリスクの基本分かってる? (1/4) - @IT

    Tomcatのセキュリティとリスクの基分かってる?:Tomcatはどこまで“安全”にできるのか?(4)(1/4 ページ) 前回までで、Tomcat 6系に関する機能や設定、運用といったところに触れてきました。今回と次回は2回に分けて、いよいよTomcatを運用していくに当たってのセキュリティ面に着目していきたいと思います。 「セキュリティ」対策をしないと、人生が変わる? 「セキュリティ」という言葉が注目され始めた2000年からすでに8年が経過し、時代は2008年となりました。いまのご時世、パソコンを使う人はみな耳にする、この「セキュリティ」とは一体何のことなのでしょうか? 一般的な解釈に従えば「セキュリティ」=「パソコンの安全性」になります。「ウイルス」や「不正アクセス」に対する安全性のことを指し、さまざまな対策を行うことで「セキュリティ」を保ち脅威から身を守ります。 それでは実際に「セ

    Tomcatのセキュリティとリスクの基本分かってる? (1/4) - @IT
  • As open air lovers, it's fundamental as far as we're concerned to work on setting up camp behavior to save the excellence of nature and make a positive setting up camp insight for all.

  • Java 7で登場するフォーク/ジョインを使って細粒度並列処理 | gihyo.jp

    Java 7にjava.util.concurrent.forkjoinパッケージとして導入予定のフォーク/ジョイン機構について解説した記事です。 Java 5より並行処理を容易に扱えるjava.util.concurrentパッケージが追加されましたが、Java 7にてより細かい粒度の並列処理を行えるフォーク/ジョインが簡単に扱えるようになります。フォーク/ジョインとは、大きな処理を複数のサブ処理に分割して並行的に処理し(フォーク)て各々の結果を合わせる(ジョイン)ことを表します。 記事では巨大な配列中から最大値を持つ要素を検索するという題材で、ForkJoinTasksをextendsしたRecursiveActionを利用して解説しています。フォーク/ジョインの実装はJava 6の環境にて取り込むことができるjsr166y.jarとして公開されていますので、実際に動かして試すことがで

    Java 7で登場するフォーク/ジョインを使って細粒度並列処理 | gihyo.jp
    dochan
    dochan 2008/02/26
  • Strutsをなめんな - ひがやすを blog

    リリースノートはこちら Bug [SASTRUTS-18] - ArrayWrapperでListを実装するようにしました [SASTRUTS-20] - ActionからActionへ遷移できない問題を修正しました Improvement [SASTRUTS-19] - ActionのプロパティがMapの場合も扱えるようにしました ダウンロードはこちら http://sastruts.seasar.org/download.html このバージョンから、チュートリアルに、ResourceSynchronizerプラグインを使ったリッチなエラーページをつけました。ResourceSynchronizerを超ざっくり説明すると、ブラウザからEclipseを操作するプラグインです。 チュートリアルのリッチなエラーページをクリックすると、Ext.jsで作ったリッチなエラーページが表示されます。ス

    Strutsをなめんな - ひがやすを blog
    dochan
    dochan 2008/02/17
    Strutsまだまだ現役
  • 【コラム】イマドキのIDE事情 (24) ちょっと便利なEclipseプラグイン | エンタープライズ | マイコミジャーナル

    Eclipseは有志の手による豊富なプラグインが魅力のひとつだ。しかし最近ではWTPなどEclipse標準のプラグインも充実してきており、最新の3.3(Europa)ではWTPなどが最初から導入済みのパッケージが提供されるなど、以前に比べ、自分でプラグインをインストールする必要性が薄れてきたのも事実だ。しかし、インストールすることでよりEclipseを便利に利用できるプラグインも多く存在する。 今回は、数多いEclipseプラグインの中から一般にはあまり知られていないものの、とくに便利な小物的なプラグインを紹介する。 RSE(Remote System Explorer) RSEはEclipse FoundationのDSDPプロジェクトの一部として開発されているものだが、単独のプラグインとしても便利だ。FTPやTelnet、SSHなどを利用してサーバに接続し、リモートのファイルをブラウズ

  • @IT:定番Javaサイトの歩き方(1/2)

    Javaプログラマになるための 定番Javaサイトの歩き方 アイ・ティ・ブースト 松慎一郎 2002/7/18 Java技術情報をインターネット上で公開しているサイトは数多くあります。これらのサイトから情報を得るのはとても良い方法です。しかし、逆に情報が多すぎて、どこを見たらよいか分からない方もまた多いかと思います。稿では、そんなたくさんのサイトの中から、まずはここを見るべし! といえる定番Javaサイトと、その歩き方を紹介しましょう。 まずはJavaの生みの親、Sun MicrosystemsのJavaサイトからスタートです(以降、Javaサイトと呼ぶことにします)。ここでは、Javaの各種仕様書やJDKがダウンロードできることをご存じですか? しかしそれ以外にも、Javaを学習するための、またはJavaを深く知るための情報が用意されています。サイト内は基的に英語で書かれてい

    dochan
    dochan 2008/02/03
  • 【コラム】Java API、使ってますか? (30) Javaアプリケーションにオブジェクトのキャッシュ機構を提供するJCache API | エンタープライズ | マイコミジャーナル

    JSR 107: JCACHE - Java Temporary Caching API Javaアプリケーション開発時に、繰り返し利用されるオブジェクトをキャッシュすることでパフォーマンスを劇的に向上させられる場合がある。「JSR 107: JCACHE - Java Temporary Caching API」は、そのような目的のための標準的なキャッシュ機構を提供するAPIだ。 JCacheは2005年にAPIのドラフトが公開されているが、それ以降目立った活動はなかった。しかし今年になって高性能なキャッシュライブラリであるEhcacheの開発者の一人、Greg Luck氏がスペックリードに加わり、再び標準化作業が進められるのではないかと期待されている。EhcacheはThe Apache Software License, Version 2.0のもとに公開されているオープンソースのキ

    dochan
    dochan 2007/11/10
  • Java開発者が学んでおくべき3つの言語 - カレーなる辛口Javaな加齢日記

    http://codezine.jp/a/article/aid/1502.aspx ちょっと問題ありなので後で何か書こうと思っていたけど,一から書くのは面倒なのでちょっと拝借. http://d.hatena.ne.jp/Isoparametric/20070725/1185341963 要約すると難易度的には C++ >= Java == C# > Perl == PHP == Ruby == Python == JavaScript == C >= VisualBasic ……なんかおかしくね? 難易度の比較は難しいなあ. ポインタの有無:ポインタのある言語の方がポインタ関係のバグが出るので難しい. 言語仕様:C++は不必要なまでに複雑だと思う. 並列処理:有りの方が並列回りのバグが出るので難しい:Java.多分C#も? 他にも色々な基準での比較があるから,どれが簡単とかは言えない気

    Java開発者が学んでおくべき3つの言語 - カレーなる辛口Javaな加齢日記
  • ひがやすを blog - Javaを古くしたやつとRubyを煽っているやつ

    その正体はわかったよ。正体わかった瞬間からだが震えたよ。まじで。 まずは、羽生さんのこのエントリを見て欲しい。 http://d.hatena.ne.jp/habuakihiro/20070922#1190464426 その後によしおりのこの有名なエントリも復習して欲しい。 http://d.hatena.ne.jp/jYoshiori/20070826/1188150596 もうさぁ、変わってないよねぇ。昔からのこの構図。歴史は繰り返すっていうの。 あからさまにいうとさぁ。賢いスーツな奴らと、頭の固くてあわれで保守的なおやじの歴史だよ。 最初は、EJBだよ。EJB。これからは、ビジネスコンポーネントが流通して、もうプログラミングはいらなくなる。コンポーネントの組み合わせを考えるだけでOKみたいな。最初にね、キャッチーな言葉とともに、あらたなテクノロジーを広めようとするのは、賢いスーツな奴

    ひがやすを blog - Javaを古くしたやつとRubyを煽っているやつ
  • marsのメモ - 開発環境に関わるメモ

    今月で今やってる仕事の契約が切れるので,ここで培ったノウハウなどをメモしておこうと思う。 しかし,今後この手の開発系の仕事ができるとは限らないってのが悲しいところ。 プロジェクトポータルまわり とりあえず,Subversion(SCM), Trac(ITS/Wiki), Hudson(CI)は必須。この3セットがないプロジェクトなんてうんこ。 とにかくTrac-Subversionの連携が強力なので,Subversion以外のSCMは無視していい。HudsonはCIつうよりプロジェクトダッシュボードとして使うのが吉(数あるプラグインを有効利用しよう)。 marsのメモ - Trac marsのメモ - MacroBazaar - The Trac Project marsのメモ - 角谷HTML化計画(2006-04-25) marsのメモ - trac-post-commit-hookが

    marsのメモ - 開発環境に関わるメモ