タグ

ブックマーク / wyukawa.hatenablog.com (31)

  • EclipseでWebアプリを作っていて別プロジェクトを参照している場合の注意点 - wyukawa's diary

    長いタイトルの割には伝わりづらいw ええと、Webアプリsample-webを作っているんだけど、ユーティリティ関連は別プロジェクトとしてsample-commonに切り出している。 で、sample-webはsample-commonを参照しているという状況です。かなりありがちだと思います。DBアクセスも外だししてバッチとWebで共有したりするでしょう。 sample-common側のソースは下記で package common; public class Greet { public static String greet() { return "hello"; } } sample-web側はこんな感じ。 package hello; import java.io.IOException; import java.io.PrintWriter; import javax.servle

    EclipseでWebアプリを作っていて別プロジェクトを参照している場合の注意点 - wyukawa's diary
  • S2Utilのプロジェクトサイト - wyukawa's diary

    地味に?知名度が上がってきた感のあるS2Utilです。 まだドキュメントはそんなに無いですが、サイトをお知らせしておきます。S2UtilでぐぐるとS2StrutsのS2Utilがトップにくるので。^^); http://s2util.sandbox.seasar.org/index.html JavaDocはこちら http://s2util.sandbox.seasar.org/apidocs/index.html ええと、以上だとなんか寂しいのでもう少し書きます。ネタないけどw まず、暗号化、復号化、ハッシュ値に関しては@shinsuke_sugayaさんが以下に書いていますので、ご参考に。 S2Utilで暗号化・復号化 - 今日のひとこと S2Utilでハッシュ値を得る - 今日のひとこと IO関連APIは整理して以下に統合されています。 InputStreamUtil Output

    S2Utilのプロジェクトサイト - wyukawa's diary
  • S2Util版BeanUtilの紹介 - wyukawa's diary

    これはそんなに細かくないので伝わりやすいとおもう。^^); プロパティのコピーはこんな感じ。 BeanUtil.copyBeanToBean(src, dest); Seasar2のBeanUtilとは異なりexecuteを呼びません。 特定のプロパティは除外したい場合は、CopyOptionsUtilをstatic importして BeanUtil.copyBeanToBean(src, dest, exclude("aaa", "bbb")); と書けます。 CopyOptionsUtilの各メソッドの戻り値は CopyOptions なので、 copyBeanToBean(src, dest, excludeNull().excludeWhitespace()); とチェーンすることも出来ます。 Mapにコピーする場合はこんな感じ。 Map dest = ... BeanUtil.

    S2Util版BeanUtilの紹介 - wyukawa's diary
  • RedmineとTracの比較 - wyukawa's diary

    これまた今更感のあるネタですが少し調べてみたので書いておきます。比較対象バージョンはRedmine 0.9.4とTrac 0.11.7です。 あと僕は基的にTracユーザです。といっても使い倒しているわけではありません。Redmineに関しては実戦投入したことはありません。 1. インストール これは前提条件を明確にしておかないと比較にならないので、OSはLinuxでtracdやMongrelのような開発サーバではなくApahceに連携させるという前提にします。なのでTracLightningはのぞきます。あとSubversion使う前提にします。 この前提にたつとインストールはどっちも面倒だと思います。結局体とは別にTracならmod_pythonやmod_wsgiと連携させますし、Redmineならpassengerに連携させるのでその辺が面倒だなと。 Redmineだとさらにマイ

    RedmineとTracの比較 - wyukawa's diary
  • 大規模受託開発におけるCI - wyukawa's diary

    そろそろ大規模ソフトウェア開発に一言いっておくか。デイリービルドとリグレッションテスト すばらしいスライドだ。ディリービルドとリグレッションテストを大規模パッケージ開発において適用したときの雰囲気が良く現れている。10年前の話のようだが今で言うCI(継続的インテグレーション)だよね。 僕も2年ぐらい前にパッケージ開発でCruiseControlを適用したことがある。junitのテストケースがあったがメンテされていなかったので使わなかった。結合レベルの自動テストもあったがこれもメンテされておらずそんなに使わなかった。スローテスト問題もあったしね。その代わり新たに結合レベルの自動テストを作っていってそれなりにうまくいったように思う。ただ実質一人プロジェクトだったこともあり途中から面倒になってやらなくなった。一人だと自分のローカルがマスターといってもいいので大規模に比べるとCIのメリットは薄い。

    大規模受託開発におけるCI - wyukawa's diary
  • オープンソースによるプロジェクト管理入門 - wyukawa's diary

    オープンソースによるプロジェクト管理入門 作者: ファーエンドテクノロジー株式会社出版社/メーカー: 秀和システム発売日: 2010/02/12メディア: 単行購入: 1人 クリック: 78回この商品を含むブログ (8件) を見る Redmine, Subversion, TestLink, NetBeansといったフリーのツールを使ってプロジェクトを管理する方法について述べられた。付属のブートCDを使えば面倒なサーバ構築作業をしなくても手軽に試せる。 Selenium, JMeter, Firebugの話は無くてもいいからHudsonを入れて欲しかったかな。広く浅くという感じのです。

    オープンソースによるプロジェクト管理入門 - wyukawa's diary
  • Hudsonを3ヶ月ほど使ってみての所感 - wyukawa's diary

    Hudsonを現場に実際に導入して3ヶ月ほど経った。 周りの反応も聞きながら運用していったがその過程で感じたことを書いておく。 まず結論から言うと導入して正解だった。というか導入していなかったらやばかったと思う。 これは導入した張人だから多少の贔屓目があるのは事実だがそれを除いても効果は大きかった。 周りの反応もいい。導入がすんなりいった要因にはHudsonはTracやRedmineと違っていままでの作業のやり方を変える必要が無いのも大きい思う。ビルドスクリプトとCIわかっている人間が一人いればとりあえずまわる。ダッシュボードがあるから共通のコミュニケーションパスになる。管理者受けもいい。 導入の最初の目的はコンパイルエラーの撲滅だったが効果を発揮したと思う。 ただ導入するだけではダメでやり方もちょっとづつ変えた。 例えばメール通知は最初はリーダだけだったが、実際にコーディングするのは担

    Hudsonを3ヶ月ほど使ってみての所感 - wyukawa's diary
  • Antいいね - wyukawa's diary

    最近Antの良さを実感している。 記述が冗長になりあんまりDRYじゃなくなりがちだけど、直感的なわかりやすさ、実績、情報量の多さなどで今もなおデファクトといっていいだろう。 同時期に出たStrutsは日のSI業界では今でもある意味デファクトではあるだろうが、Antはおそらく今、そして今後も当分はデファクトであり続ける気がする。 #そういえば最近1年半ぶりにAnt1.8がでましたね。 Mavenはフォルダ構成、依存性の管理など確かにメリットはあるけれど宣言的でDRYな記述形式はちょっとわかりにくい。それに品質面もちょっと怪しい。とくにエンコーディング周り。プラグインだけかもしれないけど。 あるパターンにマッチしたファイルをコピーするとかはAntではお手のものだ。こういった処理は開発以外でも意外と多い。RubyなりPythonなりでかけばいいじゃんという声も聞こえてきそうだが、僕はまだチャレ

    Antいいね - wyukawa's diary
    hiro360
    hiro360 2010/02/25
  • Java開発におけるフォルダ構成 - wyukawa's diary

    こんな感じでいい気がしてきた。 http://.../svn/sample/ | |--trunk/ | |--tools/ JDK, Ant, Eclipse, Tomcat, DBなどのツール類 | |--doc/ ドキュメント類 | |--sample-project/ 各プロジェクトのビルドスクリプトを呼び出す大元のビルドスクリプト | |--build.properties |--build.xml | |--build-test.properties |--build-test.xml | |--conf/ Eclipseの設定ファイル(epfファイル)などを格納する | |--sample-common/ 共通的に用いられるユーティリティクラスなどの置き場 | |--build.properties |--build.xml |--.classpath |--.project

    Java開発におけるフォルダ構成 - wyukawa's diary
  • Hudsonを使う際に知っておきたいこと - wyukawa's diary

    Hudsonの操作はかなり直感的にできるのですが初めて使う場合は管理者、ユーザともによくわからない部分に遭遇することもあると思います。 慣れてしまえば問題無いのですが、せっかくなので僕やユーザがよくわからなかった部分や知っとくと便利な機能について書いておきます。 おそらく大半の人には常識なのかもしれませんが、こういうメモがあると助かる人もいるかと思って書きます。 1.ジョブのステータス ジョブのステータスは3種類あります。 コンパイルが失敗した場合はアイコンが赤色になります。 SVNからチェックアウトできなかった場合も赤色になるので、赤色だったら「コンソール出力」のリンクをクリックして見てみましょう。 コンパイルは成功したけど、テストが100%パスしなかった場合は不安定ビルドということでアイコンが黄色になります。 コンパイルも成功し、テストも100%パスした場合は安定ビルドということでアイ

    Hudsonを使う際に知っておきたいこと - wyukawa's diary
  • Hudsonプラグインまとめ - wyukawa's diary

    Hudsonには多くのプラグインがあるわけですが、どれをインストールすればいいのかよくわからなかったりします。 ちなみにプラグイン数やダウンロードランキングは以下参照 Hudsonのプラグイン数をグラフ化する - ssogabeの日記 プラグインのダウンロード統計 - 川口耕介のブログ またプラグインの説明が英語しかなく画面キャプチャーも少ないので使い方がいまいちわからなかったりします。 使い方に関しては実際にインストールして試行錯誤するのが早いとは思いますが、 どれをインストールすればいいのかに関しての情報があんまり無いような気がするので独断と偏見で書いてみたいと思います。なおJavaプロジェクトを前提とします。 SCM連携 Subversion使っているならHudsonがデフォルトでサポートしているので何もする必要無し。 CVS, VSSは、、、いってよしっというわけにもいかない状況が

    Hudsonプラグインまとめ - wyukawa's diary
    hiro360
    hiro360 2010/01/18
  • コミットコメントの書き方 - wyukawa's diary

    ソースコードのコメントの書き方についてある程度情報が出回っているように思うが、コミットコメントの書き方についてはあまり情報が無い気がするのでちょっと書いてみる。自分が出来ているかはおいといてw で、これはリポジトリとバグ管理システムとセットで考えなくちゃいけないと思っている。まあ要するにTracやRedmineを使ったチケット駆動開発前提の話です。つまりコミットコメントにはチケット番号を書け。以上、って話でもあるw コミットにはタグやブランチ作成のコミットを除くと大きく分けて2種類あると思う。1つ目はバグ修正のためのコミットで2つ目は機能追加のためのコミット。リファクタリングは2つ目に属するとする。 コミットはバグ修正、機能単位つまりチケット単位で行うべきだと思ってる。複数のバグ修正のためのコミットを1回でやられるとどのコミットがどのバグ修正に関連付いているのかわからない。こうなっちゃうと

    コミットコメントの書き方 - wyukawa's diary
  • 入社3〜10年目くらいのエンジニアが読むといい本 - wyukawa's diary

    これまでいろいろとIT関連を読んできたのですが、そろそろ題記の観点でまとめというか整理したいと思います。 エンジニアがタイトル買い、著者買いすべき - Fight the Futureとかぶっているものもありますが、まあ参考になれば。 僕もそうなのですが学生時代にプログラミングをあまりやったことがなくても入社3〜10年目くらいになれば役職はともかく役割としてはサブリーダ、リーダ、PMになっていることがおおいものです。 そういった人たちが読むといいんじゃないかとおもわれるを挙げてみます。特定の言語に関するものやネットワーク、DBといったインフラ関連は除いています。 エッセイ、読み物系 Joel on Software 作者: Joel Spolsky,青木靖出版社/メーカー: オーム社発売日: 2005/12/01メディア: 単行購入: 18人 クリック: 371回この商品を含むブロ

    入社3〜10年目くらいのエンジニアが読むといい本 - wyukawa's diary
  • アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~ - wyukawa's diary

    アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~ 作者: Mike Cohn,マイクコーン,安井力,角谷信太郎出版社/メーカー: 毎日コミュニケーションズ発売日: 2009/01/29メディア: 単行(ソフトカバー)購入: 74人 クリック: 764回この商品を含むブログ (226件) を見る これはすばらしい。タスクではなくフィーチャをもとに考えるところ、規模と期間の見積もりを分離するところ、WBSではなくバーンダウンチャートを使うところなどなどはなるほどと思う。フィーチャ、ストーリーポイント、ベロシティ、タスクの言葉の定義もわかった。だが何よりも書を読むことで僕がいままで抱えていたモヤモヤがすこし晴れた気がする。そういう意味では書には勇気づけられた。実際に仕事に適用するには難しい部分もあると思うが(スコープと期限が決まっている中でアジャイルごっこしても

    アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~ - wyukawa's diary
    hiro360
    hiro360 2009/08/10
  • レガシーコード改善ガイド - wyukawa's diary

    レガシーコード改善ガイド (Object Oriented SELECTION) 作者: マイケル・C・フェザーズ,ウルシステムズ株式会社,平澤章,越智典子,稲葉信之,田村友彦,小堀真義出版社/メーカー: 翔泳社発売日: 2009/07/14メディア: 大型購入: 45人 クリック: 673回この商品を含むブログ (157件) を見る ちょっと難しいがこれは良書を超えて名著と言わざるを得ない。その理由は以下の3つ。 類書が無い 実践的なノウハウが記載されている 行間からレガシーコードに取り組む人に対するエールのようなものが感じられる 1つ目は異論が無いだろう。 2つ目は例えば依存関係の排除などはかなりページをさいて説明している。書の中心的なテーマといえるだろう。それ以外にも仕様化テストは個人的に興味深かった。これはシステムの現在の振る舞いを調べ将来のデグレを防止することを目的とし、現在

    レガシーコード改善ガイド - wyukawa's diary
    hiro360
    hiro360 2009/08/06
  • Javaにおける開発インフラまわりのメモ - wyukawa's diary

    Javaで開発する場合に使う可能性があるツール類(おもにインフラまわり)をメモっておきます。テスト関係はあんまりないです。その辺はJavaにおける開発・Test(Unit/Web/負荷)環境のまとめ - よねのはてななどを参考に。 構成管理ツール ツール名 URL 現行バージョン Subversion http://subversion.tigris.org/ 1.6.3 さすがに今やこれは鉄板といってもいいでしょう。 Eclipseプラグインとしては僕はSubclipseを使っています。 Subversiveでもいいんでしょうけど以前試してみて不安定だったのでやめました(不安定だったのは違う原因かもしれないけどw)。 TortoiseSVNも必須ですね。 というのも例えばtrunkの下が以下のようになっている場合Subclipseだとexample-porject/build.xmlが取

    Javaにおける開発インフラまわりのメモ - wyukawa's diary
  • JavaScript本 - wyukawa's diary

    JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス 作者: Douglas Crockford,水野貴明出版社/メーカー: オライリージャパン発売日: 2008/12/22メディア: 大型購入: 94人 クリック: 1,643回この商品を含むブログ (190件) を見る うーん、僕にはまだ早かったみたい。それにしてもnewと==はつかわないほうがいいんだー。 あとブロックスコープが無いので変数の宣言場所は使う場所じゃなくて関数の先頭がいいみたい。Javaでは推奨されない書き方だね。C言語風かな。 参考: 404 Blog Not Found:!!Oh(JavaScript); // - 書評 - JavaScript: The Good Parts ついでに JavaScript 第5版 作者: David Flanagan,村上列出版社/メー

    JavaScript本 - wyukawa's diary
  • Slim3のコネクションプーリングの実装を読んでみる - wyukawa's diary

    DIってAOPと組み合わせないとうまみがあんまり無いよね →AOPっていったらログよりトランザクションだよね →トランザクションっていったらコネクションプーリング関係するよね →じゃあSlim3のコネクションプーリングの実装を読んでみるか。まだソース少ないからよみやすそうだし。 というわけで Javaのコネクションプーリングの仕組み - yvsu pron. yas をたよりに読んでみました。ちなみにリビジョン71ね。72以降は登場するものが増えているので。 DataSource#getConnectionして、コミットして、Connection#closeまでの流れを読んでみる。あ、ちなみにステップ実行とかはしてない し、間違ってるとこあるかも。 DataSourceの実装クラスはXADataSourceImplです。このクラスがコネクションプーリングを実現している。freePoolフィ

    Slim3のコネクションプーリングの実装を読んでみる - wyukawa's diary
  • VisualVM - wyukawa's diary

    今日の晩飯(メインは鮭の味噌バター炒め)と中学、高校の時に割とよく聞いてた音楽(BOØWY、サザン、RCサクセション)についてブログに書いていたら、Safariが突然落ちて書いていた内容が消えてしまった。orz そのネタは今度気が向いたら(思い出したら)書くことにして、VisualVM関連をメモっとく。 [Seasar-user:15022] [S2JDBC] SQL自動生成のメモリ消費 [CONTAINER-199] S2JDBC で,Statement#getGeneratedKeys() をサポートした RDBMS で @GeneratedValue が指定されたエンティティを JdbcManager#insert(T) に渡した場合,PreparedStatement がクローズされない問題を修正しました.[Seasar-user:15022] - The Seasar Found

    VisualVM - wyukawa's diary
  • JavaのNIOパッケージ - wyukawa's diary

    このうち、GlassFishではGrizzlyというJavaのNIOパッケージを使用したライブラリを使用する事で、スレッドをブロックする事なく処理を行う事を可能としています。1000のコネクションが発生したからといって、1000個のスレッドが同時に消費される事はありません。 AjaxプログラマのためのJavaOne2008 -GrizzlyでComet!- へー、と思って以下の資料をぱらっと見てたけど、イメージがつかめない。。。 Grizzlyの概要 : C10K問題に対応するGlassFish(Grizzly) Grizzlyの概要 2 : Java New I/Oで実装されたサーバ http://www.java-users.jp/contents/events/ccc2008spring/materials/A3-Glassfish.pdf うーん、やっぱある程度OSの知識を持って

    JavaのNIOパッケージ - wyukawa's diary