かとじゅんの技術日誌

技術の話をするところ

2011-01-01から1年間の記事一覧

JavaでActorっぽいものを作ってみる

前回 JavaでScalaの"アクターのようなもの"を作ろうということだったので、早速 作ってみました。目的は、Actorの概念に触れることで、並行処理プログラミングの勘所を学ぶことなので、その前提で読んでいただければと思います。 リソース共有モデルには限界…

意図に関係する大事なことがら

最近、DDDの"意図の明白なインタフェース"というパターンの章を読みなおしています。このパターンが一環して主張していることは"名前が重要"ということです。その名前の重要性について、いろいろな文献からの引用を用いて考えてみたいと思います。 名前重要 …

トレイトで契約を表現してみる

Javaで契約をサポートする Googleが開発したJavaデバッグを簡単にする新技術「cofoja」 は記憶に新しいところですが、 まぁ、そこまでこだわるところでもないのですが、アノテーションに記述する事前条件や事後条件が文字列なのでちょっと残念かなと。Scala…

タスクを並行で実行するために必要なこと 〜基礎編〜

スレッドセーフの話も語ればキリがないのですが、そろそろ「タスクを並行に実行する」話題にいってみましょう。この手の記事は結構あるし、書籍の内容をまるまるというわけにいかないので、独断と偏見でポイントを絞って軽く解説する感じで書いてみます。と…

副作用を最小限に抑えるために必要なこと

若干、難しい話ですが、設計力を上げたいプログラマ向けなエントリ。私も道半ばです。一緒に考えていただければ幸いです。 堅牢なアプリケーションを実現する上で「副作用を最小限に抑える」という設計思想は、非常に重要な示唆を含んでいます。 その「副作…

バレンタインチョコ欲しい!

バレンタインチョコ欲しい! PlayStation 3 (320GB) チャコール・ブラック (CECH-2500B)出版社/メーカー: ソニー・コンピュータエンタテインメント発売日: 2010/07/29メディア: Video Game購入: 6人 クリック: 253回この商品を含むブログ (50件) を見る

DDDのバリューオブジェクトは不変性が本質ではない

id:ryoasaiさんから紹介してもらったエントリで「バリューオブジェクトは不変性が本質ではない」ということを知って、「あれ?」っと思ったので、もう一度DDD本を読んで簡単にまとめてみました。 不変性は本質ではない DDD P97-98より引用 The system has to…

[モデリング][Java] モデリング能力を鍛えるシリーズの書籍

下の2冊は読んでない...。読んでみるかー。 他におすすめな本があれば教えてください。 Domain-Driven Design: Tackling Complexity in the Heart of Software作者: Eric Evans出版社/メーカー: Addison-Wesley Professional発売日: 2003/08/22メディア: ハ…

スレッドセーフにするために考えること 〜応用編 その3〜

終わったかとみえたスレッドセーフのネタですが、再浮上。 連投ものだと読むのが大変なんですが、よくぞこのエントリまでおいでくださいましたm(__)mということこで、Departmentクラスはバリューオブジェクト(不変オブジェクト)でしたが、エンティティ(可変…

結構大事なアグリゲートについてもう少し考えてみる

ちと、小難しい話になります。DDDの話なんで、コードで学ぶドメイン駆動設計入門 〜アグリゲート編〜 - じゅんいち☆かとうの技術日誌でも取り上げたアグリゲートに関する考察です。どうあるべきかはちょっと分かっていません。これを読んでこうしたらよいの…

努力する人が最後には”できる人”になる

etc

先日の2月3日で39歳になりました。社会人20年を振り返ると苦労の歴史でした。でも、それは誇らしいことでもあります。 今でこそ「できる人」というイメージが強いかもしれませんが、、駆け出しのころは全くできない子でした。 ということで、苦労話。タイト…

JMockitは理想的なモックフレームワーク

テストを書いているとモックオブジェクトを使う機会が多いと思います。そのモックオブジェクトは自前で作るよりは、JMockやMockito*1などのフレームワークを利用した方が楽でしょう。今回は機能的に、ほぼ最強と思われるJMockitを紹介します。 これが、他の…

先に進めない時は、直感を信じて”実行”してみよう

etc

技術系のネタばかり連発するとみんな飽きてくると思うので、考え方とか価値観的な話を自重しないで書いてみます。「先に進めない時は、直感を信じて”実行”してみよう」という話。今は、何が正解かわからない混迷の時代です。正解が複数あるかもしれませんし…

Scala IDE for Eclipse の 出来が良くなった件

重くて固まると定評のあったScala IDE for Eclipseですが、最新版を入れてみたらできがよくったようで、普通に使えました。 Scala IDE for Eclipse既存のEclipseがあるからそれを壊したくなかったので、Scala用にEclipse環境をコピーして作りました。Javaの…

[Java][並行処理] スレッドセーフにするために考えること 〜応用編 その1〜

スレッドセーフにするために考えること 〜基礎編〜 - じゅんいち☆かとうの技術日誌 基礎編では、スレッドセーフについての基本的な考え方を書きました。スレッドセーフにするには、アトミック性を保証することが必要でした。この応用編では、その点を注意し…

スレッドセーフにするために考えること 〜応用編 その2〜

スレッドセーフにするために考えること 〜応用編 その1〜 - じゅんいち☆かとうの技術日誌 では、エンティティのインスタンスを共有せずに、スレッドの振る舞いを関数型のようにするとよいという話をしました。そして、アトミックを必要とするトランザクショ…

Javaでnullを回避するために似非Option型を作ってみる

ScalaにはOption型というプログラムの世界観を変えるような魅力的な型があり、それでnullを回避することができる。*1 詳しくはこちらを参照。 ScalaのOptionステキさについてアツく語ってみる - ゆろよろ日記Javaでも、ScalaのOption型と似て非なるOption型…

スレッドセーフにするために考えること 〜基礎編〜

ええっと、リクエストされたので、今回は並行処理ネタにいってみます。 並行処理といえば、この本は必読書ですね。でも、書いてることは、かなりムズカシイデス(´・ω・`) Java並行処理プログラミング ―その「基盤」と「最新API」を究める―作者: Brian Goetz…

[Java] Java PUZZLERSを読み始めました&出題

Java Puzzlers 罠、落とし穴、コーナーケース作者: ジョシュア・ブロック,ニール・ガフター,柴田芳樹出版社/メーカー: ピアソン・エデュケーション発売日: 2005/11/14メディア: 大型本購入: 3人 クリック: 81回この商品を含むブログ (56件) を見る この本を…

nullという値は本当に必要か考えよう

今回は、nullの扱いは気をつけようねというお話。特にこれからの人に読んでもらいたい。 nullは変数を初期化する時などに、当たり前のように登場します。Javaではnullがないなんて考えられないわけです。(C#でも同様) しかし、nullの考案者のTony Hoareは「1…

JPNewTechに参加してきました

22日土曜の夜に、JPNewTech(仮名?)というイベントに参加してきました。奥様ご理解をいただきありがとうございますm(_ _)m 東京でネットワーキングイベント #jpnt : 橋本正徳の「コラボレーション」をしていく感じいつも参加するイベントはプログラマが集う勉…

[執筆][Java] 特集記事を書きました

こんばんわ。1/24日発売の日経ソフトウエア 3月号で特集記事として、特集3「現場で通用するソフトウエア設計」を書かせていただきました。 日経ソフトウエア 2011年 03月号 [雑誌]作者: 日経ソフトウエア出版社/メーカー: 日経BP社発売日: 2011/01/24メディ…

[Scala] Scalaでコードを書きたいけど、どの開発環境がいいの?

最近、Scala本が増えてきてますが、早い話こういう話になりますよね。本はわかった、コード書かせろとw 実際にコーディングするための開発環境はどれがいいのか、触ってきた感想を超簡単にレポートします。 触った開発環境は以下です。 Eclipse + Scalaプラ…

[書評] プログラミングScala

せっかく献本いただいたので、早速 書評を。 プログラミングScala作者: Dean Wampler,Alex Payne,株式会社オージス総研オブジェクトの広場編集部出版社/メーカー: オライリージャパン発売日: 2011/01/20メディア: 大型本購入: 2人 クリック: 307回この商品を…

「プログラミングScala」を献本していただきました

非常に嬉しいことに、「プログラミングScala」を献本していただきました。@yyamanoさん、お声がけありがとうございました。 訳者の方、オライリー・ジャパン様、ありがとうございます。とても嬉しいです!!ノートとScalaバッチまで同梱というスペシャルなパ…

[Scala][Wicket] ScalaでWicketを始める

Scalaで使えるウェブフレームワークはLiftやplay frameworkなどのJavaのものを含めれば、使えそうなものは山ほどありそうですが、今回はWicketをやってみようと思います。とりあえず、Maven2のarchetypeであるWicketのQuickstartを使ってプロジェクト構成を…

そりゃ、ほしい!

MacBook Air 11インチ欲しい!

地豆の関数ライブラリとobject-manipulator

先のエントリでGoogle Collectionsを使えば、Javaでも関数型ぽくできるのですが、地豆にも関数型に特化したfunctorライブラリがあります。 まぁ、かなりマニアックなネタなので、ブクマとかスターとはつかないだろうなw そんなの気にしませんw 地豆謹製の…

ScalaとGoogle Collectionsで関数オブジェクト

あけましておめでとうございます。 年末年始はいかがでしたか?私は大晦日から実家の兵庫に向かう道中、滋賀で大雪に見舞われまして、10時間ぐらい立ち往生して車中泊という幸先悪い年越しでしたorzさて、今日は関数オブジェクトの話です。関数オブジェクト…