タグ

Javaに関するwakaranyのブックマーク (43)

  • Java 開発のディレクトリ構成

    Copyright (C) 1997-2004 by Haruaki TAMADA All rights reserved. Last Modified: Mon Jan 10 11:07:29 JST 2005 おしながき ページのトップへ 序論 はじめに 大規模開発の場合、初期のディレクトリ構成が非常に大切となる。 私は今まで 2 年企業でエンタープライズ系の Java 開発要員として働いてきた実績がある。 その 2 年間で「こうしたら良いのでは」と思えるようなディレクトリ構成が多少なりともわかってきたので、 ここに書こうと思う。ただし、あくまで「私がこうすれば良い」 というディレクトリ構成であるので、 ここで説明する理由が該当しないプロジェクトにおいてはこの限りではない。 とは言え、ここで説明することはあながち的外れではないと思う。jakarta プロジェクトの多くのプロジェクトがこ

  • JRubyからSVFを使ってみる - Rubyで販売管理

    現在、仕事でSVFによる帳票開発をしていますが、簡単なテストスクリプトを書くためにJRubyを使ってみました。 ちょーてきとーですが、こんな感じです。 test.rb require 'rubygems' require 'fastercsv' require 'kconv' require 'java' import 'jp.co.fit.vfreport.SvfrClient' import 'jp.co.fit.vfreport.SvfrException' begin svf = SvfrClient.new() ret = svf.VrInit(); ret = svf.VrSetPrinter("", "PDF"); ret = svf.VrSetSpoolFileName2("hoge.pdf"); ret = svf.VrSetForm("hoge.xml", 4); Fa

    JRubyからSVFを使ってみる - Rubyで販売管理
  • プログラマが知っておきたいJavaと.NETの違い

    システム開発がますます複雑化していく中、エンジニアには、テクノロジを理解して、さまざまな場面に適した選択が求められます。連載では、Javaと.NETの基的な仕組みから最新の傾向や技術などについて、数回に分けて紹介します いまさら聞けない、Javaと.NETの違い 今日、アプリケーション開発・実行のプラットフォームは、大きく2つのテクノロジに収束しているといえるでしょう。 1つは、エンタープライズ・アプリケーション開発の定番ともいえる「Java」です。 実行環境、開発環境の無償提供、OSを自由に選べること、フレームワークや開発環境が充実していることが人気の理由です。大規模アプリケーションの採用実績も多く、ほかのプラットフォームをリードしてきました。 もう1つは、マイクロソフトが発表した「Microsoft.NET」構想に基づいた「.NET」です。 プラットフォームが主にWindowsに制

    プログラマが知っておきたいJavaと.NETの違い
  • JPA 2.0の新機能 悲観的ロックを試す - しんさんの出張所 はてなブログ編

    JPA1.0では楽観的ロックだけ仕様が定義されていた。実際は各プロバイダが独自にヒント等で悲観的ロックを用意していたのだが、それもやっと定義されたために安心して使うことが可能だ。 楽観的ロックはバージョン番号を用意し、トランザクションの開始直前に取得した番号を元に更新にしくというもの。もしそれが存在しない場合、すでに更新されたものとみなし、トランザクションを最初からリトライさせる。 たまに楽観的ロックのようにバージョン番号を利用した値を画面表示時にあらかじめ持っておくといった、アプリケーションでのロックをかけてるところも多いけど、それは楽観的ロックではなく、そういう仕様のアプリケーション。あくまでもトランザクションをどう整合性とるかというだけが楽観的ロックだ。 そもそも更新時にはどのみち行ロック等がかかるわけで。更新方法によってロックがかかる順番が変わることも多いため、デッドロックの可能性

    JPA 2.0の新機能 悲観的ロックを試す - しんさんの出張所 はてなブログ編
  • DB操作の“壁”を壊すJPAが起こした「赤壁の戦い」

    DB操作の“壁”を壊すJPAが起こした「赤壁の戦い」:現場から学ぶWebアプリ開発のトラブルハック(13)(1/2 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) O/Rマッピングツールは、上手に使えば開発効率を上げることができる、便利なツールです。しかし、データベース(以下、DB)アクセスを隠ぺいしてしまうため、下手に利用するとトラブルの温床になりかねません。稿では、Java EE 5で採用された標準のDB永続化APIである「JPA(Java Persistence API)」による“悲劇”をお送りします。 「“トラブルハッカー”は神速を尊ぶ」 プルルル、プルルル、午前2時の深夜、不吉な電

    DB操作の“壁”を壊すJPAが起こした「赤壁の戦い」
  • GitHub - IBM/japan-technology: IBM Related Japanese technical documents - Code Patterns, Learning Path, Tutorials, etc.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - IBM/japan-technology: IBM Related Japanese technical documents - Code Patterns, Learning Path, Tutorials, etc.
  • Efficient data transfer through zero copy

    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.

    Efficient data transfer through zero copy
  • 中里一日記: C. Bauer、G. King『Hibernate イン アクション』

    C. Bauer、G. King『Hibernate イン アクション』 1年ほど前にJavaORM(O/R マッピング)を調べた。そのときから、一番人気はHibernateだった。が、私は大いに気に入らなかった。 気に入らない点はいくつもあったが、なんといっても、「POJO」というバズワードだ。このバズワードは、臭う。かつて「has-a」だの「is-a」だのをこねくりまわしていた連中の匂いがする。 POJO党はコンテナ問題を持ち出すのが好きだ。いわく、コンテナ内でしか動作しないコードは、単体テストに時間がかかるのでよくない。だが、コンテナに依存しないこととPOJOであることは、まったくの別問題だ。コンテナの起動は時間がかかるので、コンテナへの依存性は最小限にしたいのは事実だ。しかし、永続化クラスに親クラスがないのが利点とは思えない。 (Cayenneの永続化クラスはCayenneDat

  • Java読書会BOF

    2024-08-27:読書会(基礎からのサーブレット/JSP 第5版)第6回議事録を掲載しました。 2024-08-26:10月以降の開催日および場所を公開しました。 2024-08-08:読書会(基礎からのサーブレット/JSP 第5版)第5回議事録を掲載しました。 2024-06-30:6月の読書会の開催はキャンセルになりました。 2024-05-28:8月以降の開催日および場所を公開しました。 2024-05-27:読書会(基礎からのサーブレット/JSP 第5版)第4回議事録を掲載しました。 日時:9月21日(土) 10:00~17:00 場所:川崎教育文化会館 第3会議室 募集要綱:定員24名 地図:https://www.city.kawasaki.jp/kawasaki/page/0000030630.html 最寄駅:川崎 電話: 住所: 費用:会場費として一人300円ご用意く

  • Mockito (Mockito API)

  • 【ハウツー】シンプル&タイプセーフなJava用モックライブラリ"Mockito"の魅力 (2) Mockitoを使ってみよう | エンタープライズ | マイコミジャーナル

    それではさっそくMockitoを使ったテストケースを書いてみよう。 MockitoのダウンロードページではZIPアーカイブのディストリビューションと、ライブラリのJARファイルが単体で配布されている。使用するだけであればJARファイルをダウンロードするといいだろう。クラスパスに追加すれば準備完了だ。稿では最新のRCである1.8.0-RC2を使用した。 まず、以下のようなインタフェースを持つDAO(Database Access Object)があるとする。 public interface ItemDao { public Item findItem(int id) throws IllegalArgumentException; } public class Item { public int itemId; public String itemName; public int pri

  • プライベートメソッドのテスト

    なんとなくテストコードはかけるようになった。 でも、公開(パブリック)メソッドだけでなく、 内部実装であるプライベートメソッドの方も直接テストしてみたい。 というわけでやってみよう。 ●プライベートメソッドをテストしたい ちまっとソースを書いてすかさずテストというサイクルをまわすには、 プライベートなメソッドもテストしたくなる。 というか、実際には際どいところはたいていプライベートな内部コードに 存在しているのでその近辺を濃密なテストで取り囲むにはどうしても 直接プライベートなメソッドを呼び出したい。 1つの案としてはプライベートメソッドテスト用にパブリックなコードを 体側に組み込む手もあるけど、せっかくの「テスト用コードと体コードを分離できる」という JUnitを使うメリットが失われるし、 テスト実体とテスト用の窓口という形でテストコード自体が分散してしまう。 プライベートをやめ

  • NetBeansでdjUnit的なこと - ぼそっと

    昨日、「続きは明日書きます」とかいいつつ今日は全く違うネタを書こうとしている私が来ましたよ。 昨日の続きはまた明日書くとして(おい)。 私は、djUnitを結構気に入っているのです。というか、Virtual Mockを結構気に入っているのです。interfaceの挙動しか弄れないEasyMockと違って、実クラスも弄れるところがスバラスィ。ついでにカバレッジを取ってくれるところもまたスバラスィ。Cactusとかで頑張らなくてもWeb層のテストも比較的余裕。カバレッジ100%も夢じゃない(まぁ実プロジェクトで実際100%目指すのは大変ですけど)。 でも、djUnitのサイトを見るに、Eclipse用のプラグインはあってもNetBeans用のプラグインは無さげ。例によって、antなりmavenなりでの実行で代用することもできますが、それだと普通にやると毎回全クラスのテストケースを実行してしまう

    NetBeansでdjUnit的なこと - ぼそっと
  • DB2/400 で Java Persistence API (主キーによる SELECT)

  • Javaリフレクションメモ(Hishidama's Java Reflection Memo)

    Javaでは、クラス生成やメソッド呼び出しをソース上に直接書いてコンパイル時に決定されるだけでなく、文字列(クラス名)を使ってクラスを生成したり、 メソッド名の文字列を使ってメソッドを呼び出したりすることが出来る。 クラス(インスタンス)生成 [/2015-04-26] Classのメソッド [/2021-03-21] instanceof [2007-02-16] Classからのインスタンス生成(非推奨) [/2018-04-30] インスタンス生成 [/2013-08-06] 総称型による限定 [2007-05-02] 内部クラスのインスタンス生成 [/2008-02-10] メソッド呼び出し staticメソッド実行 [/2017-07-23] メソッド実行(引数なし) [/2017-07-23] メソッド実行(引数あり) [/2017-07-23] 可変引数メソッド [/2015

  • Java総称型メモ(Hishidama's Java Generics Memo)

    メソッドの総称型 メソッドのみに総称型を適用した定義を行うことも出来る。[2007-06-12] 戻り値の型の直前に「<仮型引数, 仮型引数…>」を置くだけ。後はクラスの場合と同様。 public static <T> T notNull(T arg1, T arg2) { T ret; if (arg1 != null) { ret = arg1; } else { ret = arg2; } return ret; } このメソッドを呼び出す側は、クラスの場合とは異なり、明示的に型引数を指定する必要は無い。 指定した引数の値に応じて、自動的に型が判断される。 String s = notNull("abc", "def"); //型引数はString Long l = notNull(new Long(1), new Long(2)); //型引数はLong int i = notNu

  • Rhinoで自作スクリプトを動かす - 今日覚えたこと

    WindowsにはJScriptがあるけど、Macには標準ではJavaScriptでバッチ処理を書ける仕組みは無い。でも、以前書いたMacJavaScriptシェル - 今日覚えたことで導入したRhinoを使えばやれるっぽい。 // test.js var a = parseInt(arguments[0], 10); var b = parseInt(arguments[1], 10); print(a + b); ターミナルから起動。 $ java -jar js.jar test.js 100 200 300jばっかりだ。 js.jarに対してまずスクリプトのファイル名を渡す。さらにそれ以降に渡した値はargumentsに入る。 これでJavaScriptでバッチ処理とかも書けそうだ。ファイルアクセスはJavaのクラスライブラリを呼び出すんだよねきっと。vimからマクロ風に呼び出し

    Rhinoで自作スクリプトを動かす - 今日覚えたこと
  • JavaScriptでローカルファイルを読み書きする方法(Rhinoを利用) - Object Design

    Ajaxがブームになって以来ここ数年、自分内JavaScript使用頻度や期待度がアップしている。 Webページのカスタマイズでも、InDesignでもJavaScriptを使っている、ActionScriptもほとんどJavaScriptだし。 最近では、O'REILLYの "JavaScript: The Good Parts" というさえ購入している。 ただ、JavaScriptを日常的に発生するいろいろな仕事に使おうと思うと、 ローカルファイルの読み書きが必要になるケースが多い。 JavaScriptにはその機能がないからなぁ〜と思っていたが、とんでもない勘違いだと今日気づいた。(のでメモ) JavaScriptでローカルファイルにアクセスする Rhinoを使って、Javaライブラリ経由でローカルファイルにアクセスする。それだけでOK。 簡単すぎるです。 しかし、Jythonとコ

  • Javaバイトコードの読み方 - プログラマーの脳みそ

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

    Javaバイトコードの読み方 - プログラマーの脳みそ
  • John Heintz氏による、Javaアノテーションのベストプラクティス

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    John Heintz氏による、Javaアノテーションのベストプラクティス