はてな ( hatena )の公式アイテムの通販サイト。はてなブックマーク、はてなブログなどを運営する株式会社はてなの公式アカウントです。(GMOペパボ社の承諾を受けて販売しています。)
昨日、@irofさんと飲みながら自分を思い返すと「ちゃんとソフトウェア開発を勉強しはじめてから3年間たった」つまり「@bleisさんを知ってからこの5月でまる3年間たった」 それまでの僕はデザインパターンもオブジェクト指向がなんたるかも、バージョン管理もなにも知らなかった。 毎日言われたことをこなす仕事をして、変えたいけど誰も教えてくれないし、学び方すら教えてくれなかった。 それなりに努力してたけど、よくはわかっていなかった。 そんな状態から抜け出したのが3年前。このブログの先頭でも書いた。当時僕は21歳かな。(ちなみに就職したのは19歳のとき) →【このブログをはじめるきっかけ - うさぎ組】 この3年間でやったことをふりかえってみようと思いました。 ちょっとわかりにくいだろうけど、2009年5月からの12ヶ月周期で書いてみます。 こうやって振り返るのはあくまで僕のためであって、何かを誇
java-jaで例外処理の話をしてきました - 西尾泰和のはてなダイアリー を読んで。 Maybe は値があるかないかを型で表すことができます!そう、直和型なんです!とか言われてもイミフだと思うのです(リンク先のエントリがそう説明してるわけではないですが)。 Java の語彙で Maybe の説明をできたら嬉しい人もいるんじゃないかなぁ、とかなんとか。 ただし、書いてたら結構長くなりました。時間がある人はどうぞ。 Maybe? null より安全に「値がないこと」が扱えるものだよ スタート地点としてはこれでいいでしょう。 以降で、「なんで安全なの?」という全うな疑問に答えてみたいと思います。 問題点 int で説明すると煙に巻いてしまうような気がしたので、User クラスを見てみます。 import java.util.*; class User { final String name;
ドメインクラス(http://doma.seasar.org/reference/domain.html)は、これまで直接コンストラクタを呼び出すことでしか生成できなかったのですが、staticなファクトリメソッドを介して生成できるようになりました。ファクトリメソッドをアプリから呼び出せることはもちろん、DomaがDBから値を取得しオブジェクトを生成するときもファクトリメソッド経由にできます。 使い方は簡単。@DomainのfactoryMethod要素にファクトリメソッドの名前を指定します。たとえば、年齢を表すAgeクラスのファクトリメソッドを「of」とする場合、次のように記述します。 @Domain(valueType = int.class, factoryMethod = "of") public class Age { private final int value; // ファ
Domaのローカルトランザクションについては、以下を見てください。 http://doma.seasar.org/reference/transaction.html http://doma.seasar.org/apidocs/org/seasar/doma/jdbc/tx/LocalTransaction.html このAPIをどう簡単に呼び出すかについて考えてみました。どれも一長一短があります。どれを使うかは最終的には状況や好みで決まりそうです。 方法1 LocalTransactionを一度だけ取得する方法 まずは一番オーソドックな方法。 public void testUpdate() throws Exception { LocalTransaction tx = AppConfig.getLocalTransaction(); try { tx.begin(); Employ
Created by Unknown User (akiko), last modified by Unknown User (irof) on Mar 03, 2012 オリジナル: Starting and Accessing Jenkins Jenkinsの起動 Jenkinsを起動する一番簡単な方法は、組込みのサーブレットコンテナであるWinstoneを使用することです。以下のようにして起動することができます:
ペアでTDDしつづけるイベントです。 一緒にペア組んでいただいた方にめちゃイロイロ教えていただきました。ちょうラッキーというヤツです! # 今日のブツをgithubにupしてみました。 https://github.com/zuisener/tddact/tree/master/src/tddact 簡単なまとめ Javaを選択。会場はRuby, Groovy, Python, C#, などの順でした。Javaの人気のなさがやばい。 環境は自分のMacbook Air。ただしVirtualBox上のWindows7。キーバインドとキーボード配列がややこしくてすいません… お題は自動販売機の課題 http://devtesting.jp/tddbc/?TDDBC%E5%A4%A7%E9%98%AA2.0%2F%E8%AA%B2%E9%A1%8C Eclipse 3.7 + Quick JUn
log4jの環境から、SLF4J + Logbackの環境に移行する ※SLF4Jは、以前は LOG.debug( "data1={}: data2={}", 可変長引数 ) でログ出力が出来たが、現在は互換性の問題で可変長引数を渡すメソッドがない。 なので、メッセージフォーマットと可変長引数を渡してメッセージを生成するメソッドを作る事。 環境 Maven : 2.2.1 JDK 6u27 ※commons-loggingは除去が必要なので、適時 <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> を追加する。 pom.xml <dependency> <groupId>org.slf4j
前回の『Spring AOP で流れを追う!』で、特定の Aspect(相、特徴) を持つメソッド周りの動きを捕捉したので、今回は取得した情報を基にメッセージを整形し、ログに残します。 SLF4J SLF4J(Simple Logging Facade for Java) とは、公式サイトにある SLF4J user manual のイラストが表しているように、log4j や Logback といった様々な Logging Framework にシンプルな“Facade(ファサード)”、「外観」を提供するツールです。 因みに、この SLF4J だけでも前回の最後で見せたようなログメッセージをコンソールに出力することができます。 準備 - SLF4J 前回書いたとおり SLF4J サイトから slf4j-[version] の圧縮ファイルを持ってきて解凍後、slf4j-api-[versio
またも1ヶ月ぶりのエントリとなります。週1ぐらいで書ければいいんですが。。。 しかし、アプリってやっぱログ出ないとまずいよね〜(何が?)。 なので、今回はログ出力のやり方を。 ※他のRed5関連のエントリはこちら プロジェクトのビルドパスにログ出力ライブラリを追加 SLF4j、logback関連のjarファイルをEclipseプロジェクトのビルドパスに追加する。 必要なjarファイルは、 slf4j-api-x.x.x.jar logback-classic-x.x.x.jar logback-core-x.x.x..jar jcl-over-slf4j-x.x.x.jar jul-to-slf4j-x.x.x.jar log4j-over-slf4j-x.x.x.jar あたりの模様。 Red5のインストールフォルダに"lib"というフォルダがあって、そこに一式入っているので、そこから必
以前、SLF4J に依存したライブラリの追加により SLF4J を導入したが、今回そこからさらに進めて完全に SLF4J + LogBack に移行し、Commons Logging と Log4J への依存を完全になくした。 以前の対応では、以下の2つの構成が混在していた。 Commons Logging - Log4J SLF4J(slf4j-api.jar) - (slf4j-log4j12) - Log4J ここからまず Commons Logging 実装を排除したいが、当然 Commons Logging API を利用しているライブラリは残っているので、Commons Logging API から SLF4J に変換するライブラリ(jcl-over-slf4j.jar)を導入する。これを導入するには commons-logging.jar は削除しなければいけない。maven
プログラマはかくあるべき、という意見は様々ありますが、そのうちの多くは「プログラミングという作業をいかに効率的に遂行するか」という指標に沿っている気がします。例えば「知識の幅が広い」とか「設計を考えるのが速い」とか「自動化を徹底する意思が強い」とか「問題発見能力が長けている」とか「高いコミュニケーション能力でチームの意思決定を促進できる」とか、そういった類のものです。一般にプログラマの仕事はプログラムを作ることですので、それを速く安全に進めるプログラマほど優秀である、ということに異論は無いかと思います。世の中には Excel 漬けのプログラマだっているそうですが、基本的にプログラマと名がついている職はプログラムを作るという作業がそこにあるからこそ発生しているとみなすのが妥当でしょう。 そうした "プログラマはかくあるべき" という外面的な観点から、"俺らプログラマはこういうことがしたい"
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く