タグ

Java-articleに関するhamastaのブックマーク (111)

  • Webアプリケーションにおける Job Queue システムの構成例と Worker を作る際に気をつけること - blog.nomadscafe.jp

    Webアプリケーション内で処理を直列に実行せずにJob Queueに回して非同期に実行することが多くなって来て久しいと思いますが、そのおすすめ構成と気をつけることについてつらつらと。 1) 既存のデータベースをキューとして使う構成例 1つ目はMySQLなどのデータベースをキューとして用いる例。既にアプリケーションで利用しているデータベースにキュー用のテーブルを作成して利用します。データベースを利用したキュー管理の仕組みとしてJonk、Qudo、TheSchwartzなどがPerlでは有名どころです。 依存するミドルウェアが増えないので最もシンプルな構成になると思います。 上記の図ではWorkerはアプリケーション内で実行することで冗長性を確保しますが、キューを格納するデータベースはSPOFになります。しかし、、データベースに障害があった場合キューだけでなくすべてのサービスが停止すると思われ

  • https://ryoasai.hatenadiary.org/entry/20110321/1300696942

  • 2009-12-21 - Secret Sword!!!

    なぜか? おまじないの量が多くなってしまうから 一般的なHelloWorld public class HelloWorld { public static void main(String[] args) { System.out.println("Hello,World!"); } } staticとかStringとかSystemとかmainとか色々難しそう あと、このHelloWorldだと色々省略した結果このコードになっていることに気づけないんじゃないだろうか どうやったら初心者にやさしいJavaになるんだろうか 色々と省略しないで書いてみる public class HelloWorld { public static void main(java.lang.String[] args) { java.lang.System.out.println("Hello,World!")

    2009-12-21 - Secret Sword!!!
  • LL言語が後退局面に差し掛かっている件

    LLやばくねー 2年ぐらい前からやばくねー2003年から2009年にかけてPerlを筆頭にPHP,Ruby,Javascript,PythonなどのLL言語はこの世を謳歌していたが、どうやら去年頃からその成長に陰りが見え始めたように感じている。 webアプリケーションを構成する要素の一つとしてLLを見れば、まあ、よくやっている方だし、そちらの分野では今後も相当長く現役を続けるだろう。 しかし今はまさに超大規模データをほぼリアルタイムで解析して加工しなおされたデータにこそ富を生み出すポテンシャルを秘める時代だ。Hadoopが何かさっぱりわかっていないエンジニア連中はKENT時代のPerler程度の価値しかない。 テラが当たり前のように乱れ飛ぶ現場でLLが出来る事など無いに等しい。 IDEの進化がLLの優位性をかき消したeclipseやnetbeansなどIDEは地味なのであまり報道されないけ

    LL言語が後退局面に差し掛かっている件
    hamasta
    hamasta 2011/02/11
    >IDEの進化がLLの優位性をかき消した | Javaはガチですね、わかります。
  • Object-Oriented & Java maneuver 別室

    Object-Oriented & Java maneuver 別室 オブジェクト指向技術Javaを主にしたプログラミング言語、コンピュータ関連技術について公開しているサイトです。 題名が「別室」となっていますが、現在こちらのサイトが主となっています。(2008.9.15) サイトの更新履歴? Torutk Webサイト更新(更新は停止状態^^;) はてなのtorutkの日記 torutkの技術活動(読書会、講演、執筆、など) プログラミング言語JavaJava周辺技術 Javaプログラミング How To JavaでCORBAプログラミングのページ Java Media Framework Java Webアプリケーション Grails - Javaベースのスクリプト言語Groovyで記述されたWebアプリケーションフレームワーク SOAとJava AspectJ Java起動高速

  • Googleが開発したJavaデバッグを簡単にする新技術「cofoja」 | エンタープライズ | マイコミジャーナル

    Java Programming Language Googleの20%プロジェクトからJava向けの新しい技術「cofoja (Contracts for Java)」が公開された。既存の実装に大きく手を加えることなく、デバッグをより簡単にしてくれる効果が期待できる。バグは些細なコードが起こすものだったりするが、それを追跡して発見するのは時に困難を極める。これは問題が発生した箇所と、実際にバグがある箇所が大きく離れていることが理由になっていることもある。問題発生箇所とバグ発生箇所を近くにまとめることができれば、それだけバグ発見も取り組みやすくなる。 cofojaはこれを簡単に実現するための技術。インタフェースに制約表現を追加可能にするところがポイントとなっており、クラスの実装に手を加えなくてもインタフェースに制約表記を追加することで実行時にチェックできるようになる。ブログに掲載されている

  • Javaプログラマが知るべき9のこと - @katzchang.contexts

    はじめに ソースコードは設計であり、コードの記述は品質に直結するのは言うまでもない。ちなみに、プログラマにとって特に重要なのは保守性だ。コードは書いた直後から保守対象となるからだ。コードは要求文書の範囲で動けばいいと思っている人がいれば今すぐ、ソースコードをコピペして100klに増えるプラグインがいつの間にかインストールされる呪いをかけてあげよう。幸い、ここを読んでいる人にはそんな人はいないだろうと思うけれども。 ということで、コードの品質を下げる要因、すなわちシステム全体の品質を下げる要因となり、かつ使われやすいアンチパターンを挙げ、対策を検討していくことにする。対象は以下: 出力パラメータ 処理状態返却 意味のある配列 無意味な初期化 多すぎるtry-catch 暗黙の順序 コンパイラ警告の無視 過剰なコメント e.printStackTrace() 出力パラメータ メソッドの引数にオ

    Javaプログラマが知るべき9のこと - @katzchang.contexts
  • いまさらだけど、Java言語にはクロージャーがない - 達人プログラマーを目指して

    Java言語でメソッド中で内部クラスを作る時、そのメソッドのパラメーターやローカル変数に内部クラスのメソッド中からアクセスできます。しかし、この場合にはこれらの変数にfinalを付けないとコンパイルエラーになってしまいます。 public void test(int param) { // コンパイルエラー String value = "Hello"; // コンパイルエラー Test t = new Test() { public void print() { System.out.println("param = " + param); System.out.println("value = " + value); } }; } この問題については、ある程度経験を積んだJavaプログラマーなら常識なのかと思いますが、初心者は最初につまづくところかと思います。しかし、経験を積んだJav

    いまさらだけど、Java言語にはクロージャーがない - 達人プログラマーを目指して
  • Javaプログラミング能力認定試験課題プログラムのリファクタリングレポート(その2) - 達人プログラマーを目指して

    前回のJavaプログラミング能力認定試験課題プログラムのリファクタリングレポート(その1)に引き続き、試験問題のリファクタリングについて考えます。 画面入出力処理の抽象化とカプセル化 前回はこの試験問題でもっともコーディングが面倒なファイル入出力関連の処理をRepositoryというインターフェース型で抽象化することで、処理が共通化されるだけでなく、全体のプログラムの記述が簡易化されることを説明しました。この試験問題のプログラムでファイル入出力とならんでもう一つ面倒なのは、コンソールを使ったユーザーとの対話処理を行う部分です。この処理は一見単純そうですが、不正な入力値があった場合に処理を繰り返すなど、COBOL級の分岐とループ構造だけで表すと処理が結構複雑化してしまいます。実際、オリジナルのソースでは、以下のようなきわめて複雑な多重ループ構造がいたるところに出現します。 (Javaプログラ

    Javaプログラミング能力認定試験課題プログラムのリファクタリングレポート(その2) - 達人プログラマーを目指して
  • IBM Developer

    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.

    IBM Developer
  • Java技術最前線 櫻庭祐一 連載目次 :ITpro

    今日のソフトウエア開発において,Javaは最も重要なプログラミング言語あるいは開発環境といってもいいでしょう。そこで,ITproではJavaの最新技術についての連載を掲載しています。著者はJavaプログラマ向け情報ページ「Java in the Box」で有名な櫻庭祐一氏です。 この記事の目次へ戻る

    Java技術最前線 櫻庭祐一 連載目次 :ITpro
    hamasta
    hamasta 2011/01/12
    連載Javaニュース
  • Java HotSpot VM Options

    Please note that this page only applies to JDK 7 and earlier releases. For JDK 8 please see the Windows, Solaris reference pages. This document provides information on typical command-line options and environment variables that can affect the performance characteristics of the Java HotSpot Virtual Machine. Unless otherwise noted, all information in this document pertains to both the Java HotSpot C

  • 「Java SE 6完全攻略」第4回 Windowsでも利用できるようになった管理ツール

    J2SE 5.0からJava SEでもソフトウエアの管理機能が導入されました。JMXとMXBeanが目玉であることには変わらないのですが,そのほかにも次に示すツール群が提供されています。 jps jstat jinfo imap jstack ところが,J2SE 5.0ではjpsとjstat以外の三つのツールはWindowsでは提供されませんでした。それが,Java SE 6になって,ようやくWindowsでも使えるようになったのです。Windows以外のプラットフォームをお使いの方には旧聞に属すると思いますが,簡単に説明していきましょう。 jinfo jinfoはJava VMの構成情報を参照,もしくは設定するためのツールです。 HotSpot VMには-XX:ではじまる起動オプションがあることはご存じでしょうか。例えば,GCの情報を出力するための-XX:+PrintGCなどがあります。

    「Java SE 6完全攻略」第4回 Windowsでも利用できるようになった管理ツール
  • Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か

    GC周りでトラブルシューティングした際の経験や、Web等で調べたことをまとめてみる。 前提 ・JVMは、Sun Javaを想定。(他は使ったことないです。。。) ・Sun Java 1.5-1.6を想定。 目標 マイナーGC、Full GCそれぞれが頻発することなく、かつそれぞれの実行時間を1秒未満に抑えること。 マイナーGCは1秒未満どころではなく、もっと短くなるべき。どれくらいが理想かは?(0.1秒未満ぐらいを目指したい?) 連続した負荷状態(想定されるピークアクセス)でもOutOfMemoryErrorが発生しないこと。 理想的な状態は、上記に加えて、Full GCの発生が低頻度であること。 具体的には、できるだけマイナーGCで短命オブジェクト(1回使ったらもう使わないようなオブジェクト。逆にセッションオブジェクト等は長命オブジェクトとなる)を破棄させて、短命オブジェクトが、Tenu

    Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か
    hamasta
    hamasta 2011/01/11
    GC メモリ ヒープ リーク
  • Spring MVCのススメ - 達人プログラマーを目指して

    先日、Struts1に代わるWebフレームワークの選択 - 達人プログラマーを目指してにて、現状アクションベースのMVCフレームワークとしてはSpring MVCが有望ということを書いたのですが、今までStrutsの影に隠れてあまり人気がないようですね。*1これから何が流行りそうかというマーケティング上の問題はおいておくとして、純粋に技術的な観点から、私がSpring MVCで気に入っているいくつかの点について説明します。 インターフェースに対するコーディングの徹底による拡張性の高さ Spring MVCはDIコンテナーとしてのSpringのコア機能に隠れてあまり有名でないかもしれませんが、実は、Springが開発された当時から存在するコンポーネントです。ですから歴史的には意外に古く2003年くらいから存在しているということになります。(その原型は実践J2EEシステムデザインのサンプルコー

    Spring MVCのススメ - 達人プログラマーを目指して
  • フレームワークごとの生産性の違いを定量的に計算する方法があったらいいのにな - 達人プログラマーを目指して

    アーキテクトの重要な仕事の一つに、フレームワークの選択があります。そこで上流の方から毎回必ずと言っていい程求められるのは、選択肢となるフレームワークごとの生産性の違いがどのくらいあるか「定量的に」教えてほしいというものです。たとえば、Strutsの工数を100とした場合、Spring MVCなら70になるというようなことを事を答えとして求めてくるわけです。今、あるプロジェクトの提案書作成の支援をしているのですが、元請のマネージャーから提案書に生産性比較の定量的な評価を載せたいと言われてしまいました。まあ、いつものことですけれどね。 この業界では理科系の発想のできる人は少ないと言われていますが、なぜか数値化や定量化だけは良いことと信じられており、数字なら信じてしまう、(あるいは数字しか信じない)という人が多いようです。もちろん、性能の見積もりにしても、DBの容量見積もりにしても、定量化できる

    フレームワークごとの生産性の違いを定量的に計算する方法があったらいいのにな - 達人プログラマーを目指して
    hamasta
    hamasta 2010/12/30
    >なぜか数値化や定量化だけは良いことと信じられており、数字なら信じてしまう
  • OSS Javaフレームワークはどんどん高度化している - 達人プログラマーを目指して

    以前、いつまでStruts1を使い続けるの?という記事を書きました。技術から離れているSEの方は、いまだにJavaのオープンソースフレームワークと聞くとStrutsくらいしか思い浮かばないという人も多いと聞きますが、その記事では、Strutsの問題点をあげて、そろそろ新しいフレームワークを使いましょうという話をしました。 しかし、単にSpring MVCに移行しましょうということではなくて、OSSを利用したエンタープライズJava開発の世界*1では、もっと根的なレベルで進化が起こっているのではないかということを最近考えます。単純にOSSのJavaフレームワークといっても、時代によって考え方が大きく変わってきているという事実があるのです。この点についてちょっとまとめてみたいと思います。 第1世代(2000年〜2003年) いわゆるStrutsとかHibernateといったフレームワークで、

    OSS Javaフレームワークはどんどん高度化している - 達人プログラマーを目指して
  • なれる!CL 5分間で分かる?(OC4J)クラスローダ入門

    なれる!CL 5分間で分かる?(OC4J)クラスローダ入門AI-enhanced description The document discusses Hiroki Tateno's role as a Principal Engineer at Oracle Corporation Japan working on sustaining engineering. It notes his work on JDK, JDBC 1.0, JDBC 2.0, integrating XML into JPA versions a and b, updating loggers, and details some class loading techniques used including PolicyClassLoader, SearchSequence, findLoadedClass,

    なれる!CL 5分間で分かる?(OC4J)クラスローダ入門
  • HotSpot VMの特性を知る

    Permanent領域のチューニング JVMにはPermanent領域と呼ばれるヒープ領域があります。ここにはクラス定義やメソッド、フィールドなどのメタデータが格納されます。 Permanent領域のデフォルトのサイズは、一般的なアプリケーションにとって十分な大きさに設定されています。しかし、アプリケーションによっては非常に多くのクラスをロードするものもあり、Permanent領域が足りなくなることがあります。例えば、JSPやサーブレットを多用するアプリケーション(アプリケーションサーバなど)は、デフォルトのPermanent領域サイズでは足りなくなり、次のようなエラーが発生することがあります。 $ java ManyClassLoadingTest Permanent generation is full... increase MaxPermSize (current capacity

    HotSpot VMの特性を知る
  • 株式会社フォーエス | Fores Inc.