目次 はじめに Abstract Classパターン Abstract ClassパターンRuby版 (by 助田雅紀さん) Balkingパターン Before/Afterパターン Futureパターン FutureパターンRuby版 (by 助田雅紀さん) Generation Gapパターン Hook Operationパターン Hook OperationパターンRuby版 (by 助田雅紀さん) Immutableパターン Marker Interfaceパターン Monostateパターン MonostateパターンRuby版 (by 助田雅紀さん) MonostateパターンPerl版 (by 宮川さん) Null Objectパターン Null ObjectパターンとSingletonパターン Producer-Consumerパターン Sharableパターン Singl
TDDを理解するためのまとめ - Logic Dice を読んで、いい機会だと思って テスト駆動開発入門 作者: ケントベック,Kent Beck,長瀬嘉秀,テクノロジックアート出版社/メーカー: ピアソンエデュケーション発売日: 2003/09メディア: 単行本購入: 44人 クリック: 1,026回この商品を含むブログ (156件) を見る を買って、実際に「Part 1 Money オブジェクトの例」を写経してみた。 んで、感じたことなどを。 あ、あくまで今の時点での考えなので、変なとこあったら指摘してくだしあ! Red から Green、Green から Red ある意味では残念な事なのですが、大抵のTDDの説明に記述されている、「RedからGreenに変わることが気持ちいい」という、その感覚が分からないのです。 TDDを理解するためのまとめ - Logic Dice この気持ちは
わんくま同盟名古屋勉強会#9に置いて、biacさんのTDDに関する話が出たので、少し自分がTDDについて思うことを纏めてみました。 TDDが説明されるのを聞く度、見る度、多分説明している本人は分かっているのだろうけれど、それが他の人に本当に伝わっているのかが怪しいと思ったためです。 というのも、自分が(多分)理解するまでに、酷い回り道をしたもので。 また、biacさんのTDDに関するWebサイトはこちら。 TDD.NET - http://www.tdd-net.jp/ 以下、長文注意。 背景 まず、自分がTDD(より正確に記述するなら、「テストファースト*1」が正しく、TDDではない)をまともに実践しようと思って始めたのが、大学の4年時の最初なので、今から18ヶ月程度前です。 とある研究室のプロジェクトで使いたいという話になり、そこで実践を行いました。当時の環境はJDK + JUnitで
ビジネスチャット、AI、Web会議、スケジュール、文書管理、ワークフロー、勤怠を統合したグループウェア | Web会議の Chat&Messenger
Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin Series) 作者: Robert C. Martin出版社/メーカー: Prentice Hall発売日: 2008/08/01メディア: ペーパーバック購入: 1人 クリック: 62回この商品を含むブログ (21件) を見る Chapter 1 は実際に買って読んでもらうとして、Chapter 2 の Meaningful Names は当たり前すぎて飛ばすとして、Chapter 3 の Functions の感想 (感想?)。 Java 以外の言語に当てはまる部分も多いけど、とりあえずカテゴリは Java で。 行数 Kent Beck は全ての関数 (Every function) が 2〜4 行なんだそうな。 多分 1 行の関数や 5
例外について色々と考えてみた - ぐるぐる〜の 「例外と RAII イディオム」での考えた、「tryOpen 方式」をもう少しだけ煮詰めてみる。 リソースを保持するクラスはコンストラクタで例外を投げない Java では、リソースを確実に解放するために、try-finally を用いる必要がある。 FileInputStream fin = null; try { fin = new FileInputStream(fileName); ... } finally { if (fin != null) fin.close(); } これは、コンストラクタが例外を送出した場合でもリソースを解放する必要があるためだが、コンストラクタで例外を投げないようにしておけば、以下のように記述することができる。 FileInputStream2 fin = new FileInputStream2(file
HT-03Aで撮影した写真を携帯百景に投稿する時に文字の表示位置や色をソフトキーボードで入力するのも大変だなと思い、Javaの勉強を兼ねて入力ヘルパーを作ってみる実験 やりたいこと カメラアプリやギャラリーの共有メニューに入力ヘルパーアプリを追加する ヘルパーアプリではコンタクトリストから投稿用メールアドレスを取得、文字色や文字位置、サイズをドロップダウンリストから選択出来るようにする 投稿ボタンをクリックで予め送信先アドレス、タイトル(表示コマンド)がセットされた状態でメーラーアプリを起動する メールを送信後にカメラアプリまたはギャラリーへ戻る Androidの場合ゴリゴリとすべて作り込まなくてもIntentという仕組みを使って、こういうデータでこういうことがしたいと投げることによりその処理が可能なアプリがある場合にそのアプリが出来ますよと手を挙げてくれる仕組み(かなりの意訳ですが)があ
Java 7の最終変更点が確定したとのことで、記事を翻訳してみました。 Project Coin: The Final Five (Or So) まず最初に、Project Coinへ興味深い提案をお送りいただいたみなさま、思慮深いコメントをくださった方々、そしてJavaプログラミング言語を発展せしめんと欲するまさしく活力のあるコミュニティの皆様にお礼申し上げます。 これ以上の波乱もなく、JDK7に含められることが決定した最終的なProject Coinの変更は以下の通りです。 Switch文中での文字列の使用 自動的なリソース管理 ジェネリックなインスタンス生成のための型推論の改善(ダイアモンド ※注1) 単純化された可変引数メソッドの呼び出し より良い整数型リテラルのための、オムニバス提案(多くを含んだ包括的な提案) コレクションのための言語サポート JSR292のための言語サポート
元ねた:Javaを使うなら必ず覚えておきたいデータ構造 - 配列・リスト・マップ - いろいろ解析日記 なんか色々と足りないよね、ってことで、色々と補足を。 配列 配列の生成 配列に含める要素が既に分かっている場合、例えば、 String[] strs = new String[2]; strs[0] = "hoge"; strs[1] = "piyo"; このような場合、以下のように記述できる。 String[] strs = { "hoge", "piyo" }; 独自のクラスだったとしても、 Hoge[] hs = { new Hoge(), new Hoge() }; と、普通に可能。 これを使うと、引数を 2 つ受け取って配列にまとめて返すメソッドは、 Hoge[] toArray(Hoge a, Hoge b) { Hoge[] result = { a, b }; retur
Java で HTTP クライアントを作ってみよう (3) Java が Basic 認証・Digest 認証に対応したのは (おそらく) Java 1.2 からと思われます。 ただし Digest 認証については Proxy 対応などに不備があったようで、J2SE SDK 1.4 にて Sun 曰く「auth-int を除くすべての機能を提供」というレベルになったようです。 ただし Digest 認証の auth-int には J2SE SDK 5.0 でも未対応です。 取得する URL は当ページ Basic 認証のサンプルページ Digest 認証のサンプルページ とします。いずれも、ユーザ名は「hoge」パスワードは「fuga」となっています。 HttpClientHttpURLConnectionAuth.java 14: URL url = new URL("http://X6
Java で HTTP クライアントを作ってみよう (2) HttpURLConnection クラス Socket クラスでごりごり書くのも悪くはないですが、 実際に使用するプログラムを書くとなると結構つらいものがあります。 より便利な HttpURLConnection クラスが用意されていますので、これを使ってみましょう。 % javac HttpClientHttpURLConnection.java とコンパイルすることで HttpClientHttpURLConnection.class が生成され、 % java HttpClientHttpURLConnection で実行できます。このプログラムは http://www.debian.org/ にアクセスし、 以下のような出力を行います。 レスポンスヘッダ: ETag: ["233112-3ea9-42284510;422
先日の日記でやっていた、JavaからTwitter APIを使う方法のソースを書いておきます。 本気でやるのはAdobe AIRを使いたいので、その前にけじめとして。 以下、タイムラインを取得する部分のコード。 try { URL url = new URL("http://twitter.com/statuses/friends_timeline.xml"); //ここにユーザーネームとパスワードを入力。 String username = "yourUserName"; String password = "yourPassword"; HttpAuthenticator http_authenticator = new HttpAuthenticator(username, password); Authenticator.setDefault(http_authenticator)
val fruits = List("apple", "banana", "avocado", "papaya") val countsToFruits = // count how many 'a' in each fruit fruits.groupBy(fruit => fruit.count(_ == 'a')) for (count, fruits) <- countsToFruits do println(s"with 'a' × $count = $fruits") // prints: with 'a' × 1 = List(apple) // prints: with 'a' × 2 = List(avocado) // prints: with 'a' × 3 = List(banana, papaya)
1 Javaランタイムのインストール Scalaのランタイムを動かすためには、Javaのランタイムが必要です。 Java ソフトウェアの無料ダウンロード: http://www.java.com/ja/ 以上のサイトから、最新のJavaのランタイム(以下JRE: Java Runtime Environment)をインストールしてください。 すでにJava 5以上のJREやJDK(Java SE Development Kit)をインストールしている場合は、インストールの必要がありません。 なおLinuxなど一部のプラットホームでは、アプリケーション/パッケージ管理システムなどから、JREやJDKがインストールできる場合がありますので、随時対応ください。 Mac OS Xの場合は、Tiger(10.4)以降であれば、標準でJava 5以上のJDKがインストールされているはずです。 2 Sc
スレッドでシグナルを送受信する場合は、典型的にwait, notifyのAPIがよく使われてきました。 でも、Java5以降ではもう古いんですよ。そのやり方。concurrentパッケージにCountDownLatchというクラスがあります。これで同様のことがすごくシンプルに実現できるんです。(Seasar-usersでもwait/notify使った回答を投稿したのですが、Java5以降なら本当はこっちを使うべきです) java.util.concurrent クラス CountDownLatch たとえば、以下のような複数スレッドの開始シグナルと終了シグナルで同期する場合です。 CountDownLatch自身が保持しているカウント数 - countDownメソッドが呼ばれた回数でゼロなったとき、awaitメソッドが待機せず、それ以外は待機します。その特性を使って開始や終了のシグナルを実
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く