タグ

javaに関するkazhrのブックマーク (64)

  • ログは、もっと立体的であるべきか。 - 設計と実装の狭間で。

    slf4jとlogbackに、魂を売り渡す勢いであります。 と言うのは冗談としても、何だか使い方が分からないけど、 Loggerのメソッドには、引数として存在しているorg.slf4j.Markerについて、考えてみたり。 現段階では、slf4jとlogbackを使ってる大きめのOSSプロダクトにおいて、 どんな使われ方をしてるかちゃんと見てないので、妥当な使い方なのかは、微妙。 まぁ、僕なら、こんな風に使ってみるよ、と言う感じのエントリ。 slf4j使おうって人達が、使い方を考える時のとっかかりになればいいかな…とか。 まず、org.slf4j.Loggerの、Markerを引数に取るメソッドの宣言と、org.slf4j.Markerの宣言を抜粋してみるよ。 public interface Logger { public void debug(Marker marker, String

    ログは、もっと立体的であるべきか。 - 設計と実装の狭間で。
  • JavaでさくさくWebアプリ開発 - しんさんの出張所 はてなブログ編

    かなり久々の技術エントリ。 運用はお堅い重いサーバーを使ったとしても開発は軽いほうがいい。当たり前ですね。 というわけでさくさく開発する方法を書いてみる。DIコンテナはCDIやGuice、Springなど好きなものでよいが、今回は省く。軽いこともあって開発中はGuiceを使うことをお勧めしたい。注入は@Injectを使うため、開発中と運用中でコードが変わるってのは少ないはずだ。 まずはJAX-RS まず、アクションベースのWebアプリはJAX-RSを使うこと。これが基。サーブレットAPIを使わずに開発することについては今までも書いてきた。サーブレットAPIを触らないことにより開発効率とテストのしやすさを両立できる。 こんな感じ。 @Path("/") public class Hoge { @GET @Path("add/{a}/{b}") public Response add(@Pa

    JavaでさくさくWebアプリ開発 - しんさんの出張所 はてなブログ編
  • java-ja.ddd の資料、ブログ記事などのまとめ

    matome.md 概要 この資料は、java-ja.ddd の資料、ブログのまとめです http://connpass.com/event/1934/ 資料 和智さんの発表資料 http://www.slideshare.net/digitalsoul0124/ddd-17678116 増田さんの発表資料 http://www.slideshare.net/masuda220/ddd-forname ブログ http://erukiti.hatenablog.com/entry/2013/03/23/162949 http://d.hatena.ne.jp/kaz_shu/20130323/1364030804 http://starzero.hatenablog.com/entry/2013/03/23/232532 http://heartbeatheart.blogspot.jp/

    java-ja.ddd の資料、ブログ記事などのまとめ
    kazhr
    kazhr 2013/03/25
    java.ja.dddのまとめ。勉強させてもらいます。
  • リッチなドメインモデル 名前探し

    3. ドメイン駆動設計への道 設計の改善 ドメインの理解 ・メソッドの構成 オブジェクト指向 ・オブジェクト間の特性移動 設計のスタイル 言葉の力 基礎訓練 ・データの再編成 モデル駆動 ・条件記述の単純化 責任駆動設計 エクササイズ ・メソッド呼び出しの単純化 役割ステレオタイプ 9つのルール 小さく作る 責任割当の原則 GRASP For 実装の原則 Thoughtful Developer ・クラス Leading Designer ・振る舞いとメソッド ・状態とコレクション 契約による設計 4. ドメイン駆動設計への道 シンプルな トランザクションスクリプト リッチな 大きな トランザクション 泥団子 スクリプト リッチな シンプルな ドメインモデル ドメインモデル アーキテクチャなし 汎用データ型 テーブルと対応した 業務の言葉で組み立てる 汎用命名ルール ドメインオブジ

    リッチなドメインモデル 名前探し
    kazhr
    kazhr 2013/03/25
    ドメイン駆動設計の勉強に。名前探しの旅。
  • Javaでヒープ領域を余らせたままOutOfMemoryErrorを出す方法 - 西尾泰和のはてなダイアリー

    先日、こんな問題を見かけたのだけども、JavaのGCにはあまり詳しくないので答えがわからなかった。 OutOfMemoryErrorが発生しました。(中略)ヒープメモリは足りているようです。原因として何が考えられますか? http://d.hatena.ne.jp/iad_otomamay/20130318/1363596244 なんでだろうなぁと思っていたところid:moriyoshiが「Permanent領域があふれたんじゃないの」と一言。「Permanent領域」で検索してみると、なるほど、そういうことなのかー。 というわけで早速それを再現させるコードを書いてみた。ヒープの大部分ががら空きなのにPermanent領域だけ99%になっているのがわかるかと思う。 Exception in thread "main" [Full GC [Tenured: 515K->515K(56896K

    Javaでヒープ領域を余らせたままOutOfMemoryErrorを出す方法 - 西尾泰和のはてなダイアリー
    kazhr
    kazhr 2013/03/20
  • 8つの質問で、Java SI業界の現状を知る - レベルエンター山本大のブログ

    Webサービス系の会社の隆盛があって、人材流出が騒がれたのが1−3年ぐらい前だろうか。 SIの産業の人材動向が、今どうなってるかって? 大方の予想より凄惨ですよ。 それが分かる方法がある。JavaWeb技術者に技術力を問う8つの質問によってだ。 SI業界のエンジニアの平均レベルを知りたくって、いろんな会社さんのJavaWeb開発者(経験者)向けに以下のような8つの質問を継続的にしている。 対象者としては、Java経験3から10年ぐらいの現役バリバリのはずのJavaエンジニアだ。 その8つの質問というのはこんな問題だ。 JavaWeb技術者に技術力を問う8の質問 インターフェイスのメリットを一言で表して下さい。(筆記解答) HttpRequestオブジェクトからPostされたデータを取得するServletのメソッドは何ですか?(筆記解答) Sessionのスコープを端的に説明してください。(

    8つの質問で、Java SI業界の現状を知る - レベルエンター山本大のブログ
    kazhr
    kazhr 2013/03/18
  • Tomcat7 でゼロダウンタイムデプロイ - mallowlabsの備忘録

    「Web アプリのバージョンアップ時に Tomcat を再起動してもいいのは小学生までだよねー」 ということで、Tomcat でダウンタイム無しで Web アプリのバージョンアップをする方法についてまとめてみる。 Parallel Deployment Tomcat 7 から Parallel Deployment という機能が追加され、同一 Web アプリの複数バージョンを同時にデプロイができるようになった。 war のファイル名を somewebapp##001.war 等にしておくことで、 - $CATALINA_BASE/ - webapps/ - somewebapp##001.war - somewebapp##002.warのように配備をすると、 http://localhost:8080/somewebapp/ でアクセスした場合に、セッションが継続している場合には古い方(

    kazhr
    kazhr 2013/03/16
    Tomcat7 でゼロダウンタイムデプロイ
  • はじめまして、クラスメソッドの都元ダイスケです | DevelopersIO

    2013年1月から、クラスメソッド社にエンジニアとしてjoinいたしました、都元ダイスケと申します。よろしくお願い致します。 都元の戦歴 今までエンジニアとしてはJavaのサーバサイド技術をガッツンガッツンやってきました。とは言え、技術の勉強は個人的なものが主であった為、有償製品の知識には少々疎く、無償製品、特にOSSに関して知見を広めて行く志向を持っています。また、私自身もOSSとしていくつかのプロダクトを公開しております。最近は開発を止めてしまっていますが、かつてJiemamyなんていうプロダクトを作ったりしていました。(※じーまみー と読んでください) 唐突ですが、オブジェクト指向が好きです。だけど、関数型言語にも興味津々です。アーキテクチャねたのブログエントリも、書いて行きたいと思っています。その他技術的な嗜癖は、↓の私の棚から察してくださいw 最近はめっきりご無沙汰になってしま

    はじめまして、クラスメソッドの都元ダイスケです | DevelopersIO
  • Javaはどのように動くのか~図解でわかるJVMの仕組み 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    Javaはどのように動くのか~図解でわかるJVMの仕組み 記事一覧 | gihyo.jp
    kazhr
    kazhr 2013/01/17
  • オブジェクト指向プログラミングの教え方? | システム設計日記

    技術者仲間で話していたら、4月入社の新人に、オブジェクト指向プログラミングをどうやって教えたらよいか?、という話になった。 想定している言語は Java。 ■動物・犬・モデルの説明から ■基用語の説明から:「カプセル化とは」「継承とは」... ■サンプルコードから: System.out.println( "hello world" ) ... どのパターンでもうまくいかなかったので、今度の新人研修では何か工夫したいね、という話。 結論から言うと「これだ」というアイデアがでたわけではないが、話の内容は、いろいろ興味深かったのでメモ書き。 Java はオブジェクト指向の言語なの? Java は、ある意味 C言語の仲間。ある側面はほとんど同じ言語。 ・int, long (プリミティブなデータ型) ・配列操作 ・if/for/return ここだけ見れば、C言語のまま。つまり命令型、手続き

  • オブジェクト指向のソースを読むのが難しい理由 - 都元ダイスケ IT-PRESS

    ダラダラ書かない予定だよ。ざっくり行くよ。あと、分かってる人には当たり前な事だと思うよ。 あるクラスについて知りたかったら、まずその基底クラスを知れ 例えば、Integerクラスについて知りたいと思ったら、Integer.java だけを読んでいてはダメだ。確かに「Integerに特化した責務・構造・操作」は読み取れるかもしれないが、数値としての基的な責務・構造・操作はNumberに書かれている。それを読まずして、Integerが保つ数値という一面を知ることはできない。Integer.javaには「Integer - Number」*1の情報しか書いてないのだよ。差分プログラミング。 さらに、忘れちゃいけない。Object.javaを読め。全ての道は暗黙的にObjectにつながっている。Objectを知らずしてJavaのクラスを知る事は絶対にできない。Objectなんて、みんな「知った気

    オブジェクト指向のソースを読むのが難しい理由 - 都元ダイスケ IT-PRESS
    kazhr
    kazhr 2012/12/25
  • JDK 6 ドキュメント

    JavaTM SE 6 プラットフォーム一覧 このドキュメントでは JavaTM Platform, Standard Edition 6 JDK を対象としています。製品バージョン番号は 6 であり、開発者バージョン番号は 1.6.0 です。説明は プラットフォーム名とバージョン番号をご覧ください。JDK の機能についての情報は、下の図のコンポーネントをクリックしてください。

    kazhr
    kazhr 2012/11/29
  • はてなブログ | 無料ブログを作成しよう

    思いは言葉に。 はてなブログは、あなたの思いや考えを残したり、 さまざまな人が綴った多様な価値観に触れたりできる場所です。

    はてなブログ | 無料ブログを作成しよう
    kazhr
    kazhr 2012/11/29
  • @Override アノテーション - 倭マン's BLOG

    『Effective Java 第2版 (The Java Series)』を読むまで知らなかったのですが、Java SE 5 から Java SE 6 に移行する際に @Override アノテーション*1の使用方法が変更になっていたそうで。 一言で言えば、「インターフェースに宣言されているメソッドをオーバーライドする際にも @Override アノテーションを使える」ように拡張されました。 確かに Java SE 5 の頃に何故こういう風に使えないんだ!と思ったことがありましたが、拙者だけではなかったのですね。 以下で、Java SE 5 と Java SE 6 の間の @Override アノテーションの使い方の違いを、サンプル・コードを用いて見ていきましょう。 分類表 拡張する型 (extends) と拡張される型 (super) で、有り得る組合せは以下の表の通り: extend

    @Override アノテーション - 倭マン's BLOG
    kazhr
    kazhr 2012/11/27
  • Java好き

    Javaプログラマ及びインストラクタによるソフトウェア開発に関する記事のwiki

  • 『Webアプリケーション構築入門』のウェブアプリをHeroku上で動かす方法 | 配電盤

    拙著『Webアプリケーション構築入門 第2版』では、PHPJavaでウェブアプリを作る方法を解説しています。作ったウェブアプリを公開しようとするとき、PHPのウェブアプリはたいていのレンタルサーバで動くのでいいのですが、Javaのウェブアプリはほとんどのレンタルサーバでは動かないので、自分のサーバを持っていない場合はいろいろ面倒でした。 クラウド(IaaS)やVPSの普及によって、Javaのウェブアプリを公開するための経済的なハードルは下がりましたが、「レンタルサーバにファイルをコピーするだけでOK」というPHPに比べると、IaaSやVPSでの「サーバに各種サーバソフトウェアをインストールして・・・」という技術的ハードルはあまり下がりませんでした。 しかし最近(と言うほどでもありませんか)、HerokuのようなJavaも使えるクラウド(PaaS)の登場によって、Javaのウェブアプリを公

    『Webアプリケーション構築入門』のウェブアプリをHeroku上で動かす方法 | 配電盤
  • Javaでenumを使ってプロパティファイルのキーを定義する - No Programming, No Life

    はじめに enumでインタフェースが実装できることが分かったので、その応用例の一つとして、Javaでenumを使ってプロパティファイルのキーを定義するサンプルを書いてみました。 プロパティファイル読み込みは何が問題か Javaでの外部プロパティファイルの機構は、 key=value の形で外部ファイル *.properties にて定義し*1、それをjava.util.Properties を利用して取得する。 // 例 Properties prop = new Properties(); prop.load(...省略...): String key = "key1"; // ← キーが文字列! String value = prop.getProperty(key); // ← 文字列のキーを渡してプロパティの値を取得! ですが、プロパティファイルは、決められた値の設定を記述しておく

    Javaでenumを使ってプロパティファイルのキーを定義する - No Programming, No Life
    kazhr
    kazhr 2012/11/16
  • 一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。

    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ではな

    一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。
    kazhr
    kazhr 2012/11/15
  • 難解なSerializableという仕様について俺が知っていること、というか俺の理解 - 都元ダイスケ IT-PRESS

    java.io.Serializable …、ある程度Javaに触れて来た人は必ず見たことがあるインターフェイスだと思う。私も何度も見てきたし、必要に迫られて自分の作ったクラスにSerializableをつけたこともある。しかし、こいつは一体何なのか? 継承の便利さ 僕らがまだJava初心者だった頃。継承というメカニズムに助けられながら育って来た。簡単に言えば、HttpServletクラスを継承しさえすれば、自分の作ったクラスがサーブレットとして認識されるのだ。また、abstractメソッドなどという便利な機能もあり、継承にあたって実装しなければいけないメソッドは確実に指示され、言われた通りにそのメソッドを実装すれば良い。 StrutsのActionも然り。そう、多くの場合は「継承さえすれば、望む物がだいたい出来上がる」というのがJavaの世界だと思っていた。 だが、世の中そんなに甘くない

    難解なSerializableという仕様について俺が知っていること、というか俺の理解 - 都元ダイスケ IT-PRESS
  • 「JavaはOracleから直接入手を」、Apple経由のプラグインに削除措置

    OS X向けのJavaセキュリティアップデートを導入すると、Appleが提供したJavaアプレットのプラグインが、全ブラウザからアンインストールされる。 米Appleは、10月16日に公開したOS X向けJavaセキュリティアップデートJava for OS X 2012-006」で、Appleが提供したJavaアプレットのプラグインを、全ブラウザからアンインストールする措置を取ったことを明らかにした。 Java for OS X 2012-006は、OS X Lion v10.7とOS X Mountain Lion v10.8向けに公開され、Java SE 6を最新版に更新して深刻な脆弱性を修正している。さらに、このアップデートをインストールすると、Web上でJavaが必要な領域に、「Missing plug-in」と表示されるようになるという。 ユーザーがJavaアプレットを使い

    「JavaはOracleから直接入手を」、Apple経由のプラグインに削除措置
    kazhr
    kazhr 2012/11/13