タグ

2012年4月18日のブックマーク (23件)

  • Java総称型のワイルドカードを上手に使いこなすための勘所 - 達人プログラマーを目指して

    Java5以降では総称型(generics)がJava言語に導入されています。総称型自体は、最近の静的な型付けのプログラミング言語で珍しいことではなく、現在の最新版では.NETのC#やVisual Basicにも導入されています。一般的には総称型をサポートするクラスライブラリを自分で正しく定義することは非常にスキルがいるが、事前に定義されたクラスを使うだけであれば、それほど難しくないとされています。しかし、Java言語の総称型はエントリで説明するように特殊なところがあり、単に利用するだけでも他の言語に比べて遥かに難しいところがあるというのも事実です。特に総称型をパラメータ化する際に指定するワイルドカード型(List<? extends Serializable>など)の意味を正しく理解して使いこなすことは簡単なことではありません。その結果、昔のJDK1.4までのように型パラメーターのない

    Java総称型のワイルドカードを上手に使いこなすための勘所 - 達人プログラマーを目指して
  • 型に属する情報をジェネリックに扱う試み - プログラマーの脳みそ

    Generics 勉強中 - しげっと! 妥協案 - しげっと! Integer.MAX_VALUE で Integer の最大値をとってくるみたいに、 // このソースはコンパイル通らないので参考にしないでね。 class Values <T> { private T max, min; public Values() { this.max = T.MAX_VALUE; this.min = T.MIN_VALUE; } public T getMax() { return this.max; } public T getMin() { return this.min; } } class ValuesTester() { public static void main(String[] args) { Values <Byte> obj = new Values<Byte>(); Sy

    型に属する情報をジェネリックに扱う試み - プログラマーの脳みそ
  • 再帰的ジェネリクスの代入互換性 - プログラマーの脳みそ

    Javaのややこしいジェネリクスの話をしよう。*1 再帰的ジェネリクス クラスHogeがあったとして、型変数Tを取る。 public class Hoge<T> {} このHogeの型変数Tがextends Hogeとすると public class Hoge<T extends Hoge> {} すると、T extends Hoge の Hoge が raw型だと警告される。Hogeの<>の部分にHoge型を継承した型を指定しなければならない。ここで型変数T が extends Hogeだったので、丁度いいからT型をおさめよう。 public class Hoge<T extends Hoge<T>> {} これは再帰的ジェネリクス(recursive generics)と呼ばれているようだ。 追記:僕は勝手に自己言及型ジェネリクスなどと呼んでいた。情報サンクス!併せてタイトルなども表現

    再帰的ジェネリクスの代入互換性 - プログラマーの脳みそ
  • https://nagise.hatenablog.jp/entry/20110729/1311950039

  • ジェネリクスの代入互換のカラクリ - プログラマーの脳みそ

    Javaジェネリクス再入門 - プログラマーの脳みそでは、「変数の型の宣言」の項で「ジェネリクスの<>の中は一般のJavaの型の代入互換性とは異なる。このことはよく覚えておかなくてはいけない。」と言ったものの、深入りはしなかった。 このあたりについて深入りしてみようじゃないか。 とりあえずサンプルコードはJavaで記述していくが、このあたりはジェネリクス指向の概念の部分だから、あまり言語に依ることはない。便宜的にJavaで書く、としておこう。 まず、型変数の境界について考えるために以下の継承関係のクラスを用意しておく。 public class A {} public class B extends A {} public class C extends B {} public class B2 extends A {} public class C2 extends B {} これは図で

    ジェネリクスの代入互換のカラクリ - プログラマーの脳みそ
  • Javaジェネリクス再入門 - プログラマーの脳みそ

    ジェネリクスでは、「型」を変数にした「型変数」というものを取り扱う。型変数で何が嬉しいかというと、メジャーな例ではコレクションAPIが挙げられる。java.util.Listとかjava.util.Mapとかのデータを格納するタイプのユーティリティクラスのことだ。 2004年にJavaのバージョンが5.0となるまでは、Javaにはジェネリクスの機能はなかった。なので、Listにデータを格納し、取得する場合は List list = new ArrayList(); list.add("hello!"); String str = (String) list.get(0); といったソースコードになる。 add()の引数はObject型で宣言されており、どんな参照型でもadd()することができた。 get()の戻り値もObject型で宣言されておりキャストが必要だった。このキャストはプログラ

    Javaジェネリクス再入門 - プログラマーの脳みそ
  • Javaジェネリクスに関する資料メモ - 情報科学屋さんを目指す人のメモ

    タグ Windows  /  インストール  /  Linux  /  設定  /  エラー  /  Java  /  Eclipse  /  AutoHotkey  /  TeX  /  C#  /  VisualStudio2008  /  対策  /  Subversion  /  LaTeX  /  Vista  /  方法  /  CentOS  /  Android  /  Microsoft  /  Windows7  /  Office  /  バージョン管理  /  プログラミング  /  eclipse  /  PowerPoint  /  SSH  /  Ubuntu  /  WindowsVista  /  コマンド  /  ショートカット  /  .NET  /  Desire  /  VisualStudio  /  便利  /  P2P  /  Unix  /

  • MongoDBの薄い本

    2.6対応版 MongoDBの薄い The Little MongoDB Book Karl Seguin 著 / 濱野 司 訳 i 目次 目次 i このについて iii ライセンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii 著者について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii 謝辞 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii 最新バージョン . . . . . . . . . . . . . . . . . .

  • NTTデータのアジャイルは現場への警告であり、日本のソフトウェア産業の大きな1歩である | Act as Professional

    アジャイルソフトウェア開発はキャズムを超えたと言われてもピンと来てなかったけど、当に超えたと僕が実感でき日も近いのではないかと思う@HIROCASTERでございませう。 「キャズム」という意味は、先進的な人と一般的な人との間にある隔壁のことです。 つまり、一部で活発になってきているアジャイルソフトウェア開発が一般的になってきているということ。 システムインテグレータ大手のNTTデータが下記の発表をしたことについて、思うことを書いておきたい。 若手リーダー層を対象としたアジャイル開発研修を開始 会社としての姿勢これまで欧米を中心に普及してきたアジャイル開発は、米国IT企業のソフトウエア開発における採用率で30%を超えるなど、欧米では最も利用されている開発手法となっています。昨今では、日国内でも、Webサービス業界やゲーム開発業界などを中心に多くの開発事例が見られるようになってきましたが、

    NTTデータのアジャイルは現場への警告であり、日本のソフトウェア産業の大きな1歩である | Act as Professional
  • Java コードから Java ヒープまで

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Java コードから Java ヒープまで
  • オープンソースのJavaテストツール、「Arquillian Core」登場

    Arquillian is a revolutionary testing platform for Java and the JVM The Arquillian teamがJavaミドルウェアテストツールの最新版「Arquillian Core 1.0」を公開した。The Arquillian teamはJavaミドルウェア向けにシンプルで強力な統合テストツールの開発を目的としており、Arquillianは同チームが開発したJava EEアプリケーションサーバ向けのユニットテストツール。 ArquillianはJava開発者のビルド環境に不要な複雑さを与えないよう、JUnit 4やTestNG 5などのテストフレームワークとシームレスに統合し、AntやMavenなどのビルドツールを使用してテストスイートを組み込むことができる。また、コンテナアダプタを利用することでJBoss AS、Gl

  • Subversion で保守フェーズの構成管理をしてみた - kaji_3's blog

    以前TFSで構成管理していましたが、今のプロジェクトでは Subversion 使ってます。 Subversion はTFSと同じセントラルリポジトリ形式ですが、案件の背景に合わせて違う運用したのでメモ。 背景 保守フェーズ 運用後、要望、不具合が1日1件程度発生している状況。 規模 6人チーム 目的 構成管理台帳をなくしたい 短期間で不具合、要望に対応するためプログラマー増員。1名から4名に。しかし番運用中。うっかり開発中のコードが混入する事態は防ぎたい。でも構成管理台帳で受払申請をするのは負荷が高い、というかそもそも意味を感じない。なので、変更はブランチで行い検証後メインラインにマージするという方法を取りました。 対応中のバージョン管理をしたい git を使い始めてから自分用のバージョン管理できないのがストレスに。個人でバージョン管理できるということはうっかりミスしても戻せる訳で開発

    Subversion で保守フェーズの構成管理をしてみた - kaji_3's blog
  • なんでアジャイルに取り組みたいか - kaji_3's blog

    はじめに 社内アジャイルエバンジェリスト(自称)として活動する事にしました。今週末に「アジャイルとはなんだっけか」というLTを社内の歓送迎会でやるテロを計画中でした。そんな私を後押しするかの如く色々状況は変わってきています。 NTTデータ、3年間で社員1000人をアジャイル開発人材に育成 - ニュース:ITpro 若手リーダー層を対象としたアジャイル開発研修を開始 2012年4月17日 | ニュースリリース | NTTデータ アジャイル開発検定試験の準備委員会を日IBM、NTTデータ、日立ら7社が設立 - Publickey 最近、自分で発信する事で色々な方の考えに触れる機会が増えました。ただ、意見の触れる事は影響を受ける事であり未熟な私としては「なんでこれをやりたいと思ったか」を自分の言葉なのか人の言葉なのか区別が付きにくくなってきました。自分の考えがブラッシュアップされるのはよいとし

    なんでアジャイルに取り組みたいか - kaji_3's blog
  • JUnit 強化キャンプに参加してきた #junitbc - Diary of absj31

    JUnit 強化キャンプ : ATND 2012/04/07 JUnit 強化キャンプ #junitbc - Togetter (写真:会場となった某漫画喫茶個室内に映し出される実践映像を眺める参加者一同) 私自身、勉強会に於いてテスト関連のイベントには参加しつつも(TDDBC等)、そこから先テストに於いて諸々を(Bootからの次の段階である)ブースト(Boost)出来ていなかったので、このイベントを見つけ次第『これは!』と思い参加してきました。 会場はまんがねっとラウム新宿店。 自身としては、漫画喫茶で勉強会やるってのは初めてだったので、『(諸々)どうなんだろう?』という気持ちがありましたが、実際やってみると殊の外快適で"これは良い"という感じでしたね。ネット回線(立地上の問題で時々調子が悪い時があった)や部屋に対する定員を上手く調整すれば、利用場所としてはかな〜り良いものになるのでは

    JUnit 強化キャンプに参加してきた #junitbc - Diary of absj31
  • Oracle OpenWorld Unconference with MySQL 復習 - SH2の日記

    というわけで、Oracle OpenWorld Unconferenceに参加して発表をしてきました。直前までデータ取りをしていてやはり睡眠不足だったのですが、とても楽しかったです。JPOUGのみなさま、日オラクルのみなさま、当日お越しいただいたみなさま、どうもありがとうございました。 御礼。大盛り上がりの!OTN Unconference powered by JPOUG | oracletech.jp 技術者の憩いの場「OTNラウンジ」で体験したくつろぎと交流のひととき――Oracle OpenWorld Tokyo 2012レポート | oracletech.jp Oracle Database経験者がMySQLの設計思想を知っていろいろ考える会 私のセッションでは、Oracle DatabaseMySQLそれぞれに対してコネクションプール、およびパラメータのバインド機構が性能に

    Oracle OpenWorld Unconference with MySQL 復習 - SH2の日記
  • Java EEアプリケーションの開始

    This tutorial needs a review. You can edit it in GitHub following these contribution guidelines. このドキュメントでは、Java Enterprise Edition 6 (Java EE 6)仕様の一部として導入された、いくつかの機能について簡単に紹介します。新機能を説明するため、このチュートリアルでは、エンティティ・クラス向けのEJB 3.1ステートレス・セッションBeanファサードを含む、単純なJava EE Webアプリケーションを作成する方法を示します。エンティティ・クラスとセッションBeanを生成するため、IDE内のウィザードを使用します。ウィザードで生成されるコードでは問合せを使用します。この問合せは、JPA 2.xの一部で、Java EE 6仕様に含まれるCriteria API

  • Groovy 入門

    2009.3.19 - 2009.4.16 - 2009.7.24 (鈴) 2011.3.23 リンク追加等 2009.4.16 時点のページ 1. はじめに 2. てほどきとインストール 3. 10 分で分かる Groovy の大半 4. もっとスクリプト言語らしく 5. クロージャ 6. おわりに 7. 参考文献 付録 1. Emacs 編集モード 付録 2. NetBeans プラグイン Groovy 応用: 遅延評価によるフィボナッチ数の計算   2009.4.8 Groovy 応用: Struts への透過的な適用   2011.3.23 1. はじめに Groovy は主に Ruby に強くインスパイアされた Java の1方言 である。 その処理系は標準的な Java VM 上で動作し,標準的な Java 言語によるプログラムと同じバイナリ形式 (class ファイル)

  • Redmine1.4におけるNo Ticket, No Commitの強化 - プログラマの思索

    Redmine1.4の機能改善において、No Ticket, No Commitの強化につながる機能があったのでメモ。 【元ネタ】 Redmine 1.4新機能紹介: チケットとリビジョンの関連づけの追加・削除 | Redmine.JP Blog Twitter / @mkinside82: ほんとにCommit Relation Editor Pluginそっくりですね/Redmine 1.4新機能紹介: チケットとリビジョンの関連づけの追加・削除 | Redmine.JP Blog Twitter / @mkinside82: Commit Relation Editor - Plugins - Redmine Twitter / @mkinside82: @akipii もともとチケットが上がっていたようですね ⇒ http://bit.ly/HPLVM5 @haru_iida さん

    Redmine1.4におけるNo Ticket, No Commitの強化 - プログラマの思索
  • MongoDBの薄い本(The Little MongoDB Book) - cuspy diary

    Karl Seguinさんの「The Little MongoDB Book」を和訳しました。 このはMongoDBの基礎を実際に手を動かして学ぶチュートリアルです。 MongoDBの基礎から、データモデルの設計方法、MapReduceなど幅広い内容をカバーしています。 また、特別MongoDBに興味が無くても筆者のNoSQLへの考え方は一読の価値があるだろう。 ダウンロードPDF版 the-little-mongodb-book-ja.pdf epub版 the-little-mongodb-book-ja.epub(あんまりきれいに組版できてないけど…) 誤訳などあれば @hamano まで ソースはこちら: https://github.com/hamano/the-little-mongodb-book 更新履歴2012/04/17 v1.0 初版公開。 2012/06/15 v

  • Groovy/G*界隈でBoostする為に有用なリンクを集めてみた(Groovy編) - Diary of absj31

    だいぶ前からGroovy関連の勉強会に参加し、そして先日もStartupGroovy#1に参加してそろそろBoostしなきゃいけなくね?と思いながらもエンジンが掛かってない今日この頃、皆様如何お過ごしでしょうか。 と言う訳で、(Groovy/G*界隈を)Boost(加速)すべく、これまでに数々のブログやレポート等で記されてきた記録を整理し、足掛かりとしようと思いエントリとしてまとめてみました。 まずは代表的なところから、Groovyを始めるには欠かせない第1歩。 公式 Groovy - Home Groovy - Japanese Home 国内(ユーザーズグループ界隈) 日 Grails/Groovy ユーザーグループ(JGGUG) G*Mag Japan ※日Grails/Groovyユーザーグループが提供する、Groovy関連情報誌。 Groovy関連勉強会・イベント そしてここ

    Groovy/G*界隈でBoostする為に有用なリンクを集めてみた(Groovy編) - Diary of absj31
  • Get Started Faster with Forge · Arquillian Guides

  • Java EE環境における非同期プログラミング - nekop's blog

    Java EE環境では基的にスレッドの生成は許されていません。この制限はEJB仕様書に記述されており、ブループリントなど他のドキュメントにも記載されています。これらの制限はかなり古い時代に考えうる最大の制限を記述したものであり、「ファイルにアクセスしてはならない」など今となってはあまり現実的ではない記述も多くなっています。しかしながら、「スレッドを生成してはならない」というのは依然多くのコンテナに適用される現在も有効な制限であり、実際にスレッドの生成などを行うと誤動作するケースがあります。今回は、なぜこのスレッドの制限があるのか、現実的にどうすれば良いのか解説します。 コンテナは様々なものをスレッドに結びつけて管理しています。様々なものというのは例えばセキュリティ、トランザクション、データソースなどのコンテナリソースです。コードのほうがイメージしやすいでしょうから、以下に擬似コードを挙げ

    Java EE環境における非同期プログラミング - nekop's blog
  • 第1回 Node.jsとは | gihyo.jp

    はじめに 連載では、注目を集めるNode.jsを使って、Webアプリケーションを様々なクラウド環境で動かすことを最終目的にしています。Node.jsに触れたことがないJavaPHPなど普段サーバサイドで開発されている方を主な対象として、まずNode.jsの概要から紹介していきます。 Node.jsとは Node.jsとは、ブラウザGoogle Chrome用に開発されたJavaScriptエンジンV8がサーバ上でプログラムを実行できるように、ファイルやネットワークI/Oなど多くの機能を追加したものです。軽量で効率よく多くのリクエストを処理するネットワークアプリケーションの構築ができるプラットフォームになっています。いわゆるサーバサイドJavaScriptの代名詞として注目を集めています。 Node.jsでは“⁠軽量で効率良く⁠”というのを実現するために次の2つのモデルを採用しています。

    第1回 Node.jsとは | gihyo.jp