かとじゅんの技術日誌

技術の話をするところ

Java

コードで学ぶドメイン駆動設計入門 〜アグリゲート編〜

コードで学ぶドメイン駆動設計入門 〜エンティティとバリューオブジェクト編〜 - じゅんいち☆かとうの技術日誌 コードで学ぶドメイン駆動設計入門 〜振る舞いとサービス編〜 - じゅんいち☆かとうの技術日誌 コードで学ぶドメイン駆動設計入門 〜ファクトリ編…

コードで学ぶドメイン駆動設計入門 〜リポジトリ編〜

コードで学ぶドメイン駆動設計入門 〜エンティティとバリューオブジェクト編〜 - じゅんいち☆かとうの技術日誌 コードで学ぶドメイン駆動設計入門 〜振る舞いとサービス編〜 - じゅんいち☆かとうの技術日誌 コードで学ぶドメイン駆動設計入門 〜ファクトリ編…

コードで学ぶドメイン駆動設計入門 〜エンティティとバリューオブジェクト編〜

先日、DevLOVEで発表した「コードで学ぶドメイン駆動設計入門」ですが、入門としながらも難しかったかもしれません。モデリングの話は難しい方の話題なので仕方ないのですが、できるだけわかりやすく補足するブログを書いてみたいと思います。まず、レイヤー…

DEVLOVE HangarFlight で話したスライド&ソースコード

12月18日 DEVLOVE HangarFlight - Winter Sortie -(東京都) で、「コードで学ぶドメイン駆動設計入門」と題してしゃべってきました。スライドはこちら。http://slidesha.re/h0ffOI ソースコードはこちら。https://github.com/tricreo/schema-generator休日に…

クラスローダについて

Javaでは欠かせないクラスをロードするためのクラスローダ。普段意識していないかもしれませんが、しっかりと縁の下で支えているよね。(Java言語仕様を確認しながら書いてないので間違っていたらツッコミよろしくです) クラスローダとは Javaクラスローダー…

JavaプログラマのためのObjective-C講座 その1

Objective-Cの学習を始めました。 「キモい、キモい」といっていたのですが、なんか慣れてくると「あー、見える見える」って感じです。 Javaだと普通のクラスも class Person{ private String name; private int old; public Person(String name, int old){ …

非検査例外に萌えるわけ

検査例外はアジャイルやオブジェクト指向の考えに反するという事実 - じゅんいち☆かとうの技術日誌タイトルは釣り度が強すぎかなー、、、まぁ、個人のブログなんで気にしないでくださいw ブログはカジュアルに書けばいいんですよ。タイトル付け失敗してもサ…

「検査例外はアジャイルやオブジェクト指向の考えに反するという事実」について一部誤解あり

追記: id:Nagiseさんからエントリいただきました。 というわけで、ややしつこく感じられるかもしれないけど誤りだと思うところはツッコミを入れさせてもらいます。人に恨みがあるとかそういうわけじゃなくて、説に用事があるってところをご理解いただければ…

文字列の結合をやるからといって、すぐにStringの+をつかってはいけない

文字列の結合っていろいろなやり方があるのですが、みなさんはどんなやり方をされていますか? String firstName = "Junichi"; String lastName = "Kato"; String fullName = ""; fullName += firstName; fullName += lastName; とか、もちろんやってないで…

数値がBigDecimal型な計算式言語を作ってみた(2)

http://d.hatena.ne.jp/j5ik2o/20091107/1257598591 の続きです。まず、Calculatorのソースから。 /** * 計算式を渡すと指定した丸め方式で計算する計算機クラス。 * * @author j5ik2o * */ public class Calculator { private final EvaluateContext evalua…

数値がBigDecimal型な計算式言語を作ってみた

どもー、しげる塾 一期生のかとうです。 を見て悲しくなった。Javaってひどい。0.1は文字列で渡さないと誤差が出るってさ。泣ける。C#なら Console.WriteLine( 1.00M - 9M * .10M );でOK 「Javaってかわいそうとか、ひどい」っていわれたので、BigDecimalで…

前向きな人にコードレビュー

IT業界3年目の人で非常に前向きな方とお友達になりましたw ブログのタイトルからしてぶっ飛んでるんですがwww 勤務時間をテキスト形式で保存 コードを晒すことはすばらしいねー。適当にコードレビューしてみよう。 コマンドライン引数は1とか0ではなくてstar…

XMLとオブジェクトの変換をする方法

XMLファイルをプログラムからアクセスする方法をおさらいすると DOM SAX StAX といろいろある。 DOMとSAXとStAXと。 - 都元ダイスケ IT-PRESS このあたりを見てもらうとわかりやすい。XMLにアクセスする場合は、だいたいはモデルに変換することが多い。上記…

ジェネリック型配列は作れるか?

ごきげんうるわしゅぅ。さて、今回はジェネリックスの話題。 ジェネリックスになれてくるとうっかり書いてしまうのが、以下のコード。 public class MyArray<E>{ private E[] elements; public MyArray(int n){ elements = new E[n]; } public E get(int index)</e>…

小数点の計算をやるからといってすぐにfloatやdoubleを使ってはいけない

おつかれさまです。型を選ぶというのはプログラミングの基礎中の基礎ですが、以外に開発の現場でも注意が必要なのが、floatとdoubleの精度の問題があります。これぐらい当然と思っていたのですが、最近よく耳にしますので、あえて言及wこれらの型の目的が科…

例外の再考

愛する部下の一人がよいエントリを書いてくれたので、私も重い腰をあげてみたw Throwableについて本気出して考えてみた 2nd Season - 都元ダイスケ IT-PRESS 短時間で、ようまとめたなーwチェック例外は、Java以外の言語では聞いたことがないのですが。Java…

チェック例外がJavaにあってC#にない理由

例外の再考 - じゅんいち☆かとうの技術日誌に引き続き、チェック例外がJavaにあってC#*1になぜがないか考察してみようと思います。また、いろいろググっているとよい記事がありました。 なぜ C# の言語仕様に検査例外がないのか?という記事。 "Why doesn't …

JDKを読む 〜 ArrayList 〜

うちのスタッフの連中と昼間話題になったのでJDKのソースを少し読んでみることに。非常に基本的なことなんで諸先輩方には退屈なエントリですが、、、ここは初心に戻ってまずArrayListから。 ArrayListクラスの中 Arrayだけに内部は固定長の配列です。 余談で…

素のJdbcManagerあります

ここにあります。http://sourceforge.jp/projects/sisioh/svn/view/altair/?root=sisiohsisioh-jdbc-jpa-exampleがサンプルなんですが、 sisioh-commons sisioh-factory-enhancer sisioh-jdbc-commons sisioh-jdbc-datasource sisioh-jdbc-transaction sisio…

Serializableの飼いならし方

さて、Javaのシリアライズを改めて復習してみる。 まずこのあたりから。まぁ、よくわからん。。。 java.io インタフェース Serializable Effective Java 第2版 (The Java Series)作者: Joshua Bloch,柴田芳樹出版社/メーカー: ピアソンエデュケーション発売…

遅延初期化には気をつけろ

フィールドの遅延初期化について勉強したので要約としてまとめておきます。 遅延初期化とは 遅延初期化とは、コンストラクタなどで事前にフィールドを初期化するのではなく、フィールドが利用される時に初期化することいいます。遅延初期化は諸刃の剣と呼ば…

同期化不要なCopyOnWriteArrayListを使え

java.util.concurrent クラス CopyOnWriteArrayList どんなクラスかというと、リストの変更操作(addやremoveなど)で、ConcurrentModificationExceptionをスローしないことが保証されるArrayListクラスです。 たとえば、通常のArrayListでは、リストのイテレ…

wait, notifyはもう古い

スレッドでシグナルを送受信する場合は、典型的にwait, notifyのAPIがよく使われてきました。 でも、Java5以降ではもう古いんですよ。そのやり方。concurrentパッケージにCountDownLatchというクラスがあります。これで同様のことがすごくシンプルに実現でき…

チェックされる例外とチェックされない例外について

例外の扱いについてあれこれと調べてみました。まず、既存のエントリから。ふむふむ。ごもっとも。 Error callerによるリカバリは不能(原因はcalleeにある or 特定不能)である為。 RuntimeException リカバリの可否はcalleeに判断不能である為。callerはリカ…

Effective Javaの第4章 項目22 非staticのメンバークラスよりstaticのメンバークラスを選ぶをirenkaでやってみる件

非staticメンバークラスは、エンクロージングオブジェクトとは関係のない参照を作ってしまう原因になるので、GCの際にエンクロージングオブジェクトが残ってしまう可能性があります。詳しくは本を読んでくださいwちなみに、今書いているHackをGoogle Codeに…

EJ2

待望の書をついに買いました。これから読み込みます!これはうちの会社のメンバー全員読んで欲しいな。 というか、警告でよいのでIrenkaのハックに落とし込みたいなぁ。 Effective Java 第2版 (The Java Series)作者: Joshua Bloch,柴田芳樹出版社/メーカー:…

Java開発環境の構築に嵌る

新型MacBookに移行してほぼ1週間。開発環境の構築でここ数日嵌りまくりでしたorz やっとできたので、以下殴り書きしますw Macのパッケージ管理を知る Macのパッケージってアンインストールできるもんだとばかり思ってましたが、アプリ依存なんすね。。。(ア…

フロントエンドとしてのFlex

S2BlazeDSのサンプルでも公開されていますが,FlexをStrutsのビューとして実装することができるんですね.http://www.adobe.com/jp/devnet/flex/articles/struts_04.html http://www.atmarkit.co.jp/fwcr/rensai2/flexjava03/flexjava03_4.htmlFlexからはHTTP…

そろそろWicketさわってみよう

昨夜、やんやん(id:t_yano)とその愉快な仲間たちとSkypeチャットをしていて、Wicket本の話になった。 Struts -> S2JSF -> Teeda -> SAStrutsを触ってきて、最も扱いやすそうなのは今のところSAStruts。OSSを評価して開発で利用できるようにノウハウ化するの…

急がば回れ

って,常に賛否ある言葉ですが,自分は賛成派. 急いでいるときこそ,今一度立ち止まって考えを巡らせるべきだと思います. 開発においてもそう感じることが多い.その時点で求められる要求にこたえる設計や実装になっているかどうかって重要だねー.とりあ…