技術

コミットについて語ってみる

途中から難しくなってきてとばし読み気味になったが実用Gitはすばらしい本だ。入門Gitもすばらしかったがそれにも劣らない(この2冊ほどでは無いかもしれないが入門gitもいい本だ)。読んでいて感じたのはGitは歴史を書き換えてでもいいコミットを作ること…

Antいいね

最近Antの良さを実感している。記述が冗長になりあんまりDRYじゃなくなりがちだけど、直感的なわかりやすさ、実績、情報量の多さなどで今もなおデファクトといっていいだろう。 同時期に出たStrutsは日本のSI業界では今でもある意味デファクトではあるだろう…

テスターはプログラマーである必要はない

You don’t have to be a programmer to be a tester. A lot of companies want testers to be programmers who write automated test suites. It seems more efficient that way. This reflects a misunderstanding of what testers are supposed to do, whi…

単体テスト、結合テスト、総合テスト

単体テスト、結合テスト、総合テストの言葉の意味というのはプロジェクトによりけりだと思う。ちなみに僕の経験だとJavaのWebアプリなら・単体テスト 入力、確認、完了のような一連の機能、ユースケースをExcelのマトリックス形式のチェックリストを テスト…

テストとモックとカバレッジ

今のプロジェクトではモックをつかってユニットテストをしています。モックはdjUnitのVirtual Mock Objectsをメインで使っているのですが、 これってテストメソッド毎に実行できないんですよね。。。テストメソッド数が多い場合はこれは効率が悪い。 注目し…

SubversionをJavaから扱う方法のメモ

SubversionをJavaから扱うには以下の3つがあります。 SVNKit(Pure JavaなSubversion実装) JavaHL(JNIベースなSubversionライブラリ) コマンドラインのsvn.exeを外部プロセスとして使う しかしSvnClientAdapterを使えば、これらの違いをあまり意識することな…

SvnClientAdapterメモ

本家: subclipse:試した環境: Mac 10.6 SVN 1.6.2(もともと入ってるヤツ)まず http://subclipse.tigris.org/svn/subclipse/trunk/svnClientAdapter/src/samples/org/tigris/subversion/svnclientadapter/samples/Sample.java を実行するこれはコマンドラ…

Strutsのtaglibはlogic:iterateとbean:writeだけ使えばスパゲッティなJSPにならない気がする。

OpenSSLのコードの汚さに「サルが書いたコードだ」との批判 | スラドすごい批判だw 実際原文でも以下のように言ってる。--); I have come to the conclusion that OpenSSL is equivalent to monkeys throwing feces at the wall. (OpenSSLは壁に糞を投げつ…

コードインスペクション

近年コードインスペクションはだいぶ一般的になってきたと思います。コードインスペクションといってもここでは静的解析について書きます。JavaでいうとOSSならFindBugs, CheckStyle, PMDが、商用ならJTestがメジャーだと思います。厳密に言うとFindBugsはバ…

開発インフラは分散化しつつある

開発インフラは分散化しつつあると感じている今日この頃です。開発インフラといえばソース管理、バグ管理、CI、テスト管理といったものがあり、かつてこれらはいずれも集中型でした。開発者が自分のローカルで編集したものをサーバー上にアップするというや…

Subversionの運用方法

なんか今更感がありますが、自分が教えてもらったこと、無意識にやってきたこと、周りを見て思ったことを整理、まとめてベストプラクティスだと思っていることを書いてみたいと思います。1.フォルダ構成Subversion のフォルダ構成・まとめ編 - Natural Sof…

コードレビューはどうやるのがいいんだろう

僕自身はコードレビューの経験はほとんど無いですが、やったほうがいいのは間違いない。やり方としては一個のモニタをレビューする人とされる人が見ながら、レビューされる人が説明していくのがいいと思ってる(Web上のコードレビューシステムは運用が難しい…

Tracの運用方法

ネットで見ている限りTracやRedmineを高度に使いこなしている人も多いようだ。 僕自身はプラグインもほとんど使ってない。post-commitで満足している。会社でもTracが大きく展開されているせいか、僕のまわりでもTrac使っている人は多い。ただ使い方を聞いて…

バージョン管理のスキルが求められるのは開発者だけじゃない

TortoiseSVNが登場する前までは開発者だけがバージョン管理について知っているという状況だったように思う。 もっともコミットはしても更新はしない開発者だっているので、バージョン管理の敷居はそれなりに高い。しかしTortoiseSVNによってその状況は変わり…

僕はこんな開発インフラを使ってきた

僕は2002年に新卒で入社して今年8年目になる。 2002年といえばITバブルは弾けていたが同期は多かった。今の新人の倍はいた。ある意味バブル入社組。ちなみに入社するまではプログラミングはほとんどやったことなかった。で、入社してから今まで開発のメイン…

TeamCityとIntelliJの連携メモ

http://blog.azukipochette.jp/archives/2009/05/trac-lightning-teamcity-%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E7%B6%99%E7%B6%9A%E7%9A%84%E3%82%A4%E3%83%B3%E3%83%86%E3%82%B0%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3ci%E9%96%8B/ と…

RedmineとTracの機能比較〜コードレビュー、Hudson連携

ちょっと調べたのでメモ。・コードレビュー Redmineには http://www.r-labs.org/wiki/r-labs/Code_Review があり、 Tracには PeerReviewPlugin – Trac Hacks - Plugins Macros etc. がある。これはRedmine Code Review プラグインのほうが高機能だろう。ソー…

TracLightningとMercurialの連携

TracLightning 2.2.5とTortoiseHG 0.8.1で入れたMercurial-1.3.1をMercurial Pluginで連携しようとすると、Unsupported version control system "hg" というエラーになる。Trac Lightningプロジェクトでも報告されているようだ。 スレッド ヘルプ:SVNリポジ…

Bazaarを試してみた

分散バージョン管理といえばGitやMercurialが有名ですがBazaarというのもあるようなのでちょっと試してみました。BazaarはPythonで実装されておりUbuntuやMySQLで採用されているようです。本家 http://bazaar-vcs.org/Mac10.5にportでインストールしてみます…

Javaは死ぬのか?

Is Java dead? - @codemonkeyism近年この議論が活発なようだ。直近ではOracleがSunを買収したりJRubyチームがEngine Yardに移ったりしていることもありますますホットなのかもしれない。このブログによると、ざっと以下のようなことを言っているようだ。まあ…

コミットコメントの書き方

ソースコードのコメントの書き方についてある程度情報が出回っているように思うが、コミットコメントの書き方についてはあまり情報が無い気がするのでちょっと書いてみる。自分が出来ているかはおいといてwで、これはリポジトリとバグ管理システムとセット…

要件のテスト

1.W字モデルのような使い方。 要件定義や設計のような上流工程で、テスト計画も同時に作る。例えば、要件カバレッジを使って、要件をカバーするテストケースが必ずあるか、これらのテストケースで要件を全て網羅しているか、を確認していく。 そうすれば、新…

TestLinkにあるといい機能

All In One TestLink JPを少し試してみたり、プログラマの思索のTestLinkに関連するエントリを読んでみて、あるといい機能について考えてみる。テスト実施予定件数、実績数、バグ数、ブロックされたテストケースの件数などをグラフ化したバグ曲線はやはり欲…

ナレッジの伝え方

How to Transfer Knowledge in an Agile Project実験によると紙飛行機を以下の3種類のナレッジの伝え方でやらせてみて成果を見たところ、できた人の割合はそれぞれ12.5%, 25%, 100%だったそうな。 ドキュメントを渡してそれをもとに作らせる 完成品を渡して…

InfoQにCIについての記事があった。

Where To Now with Build Automation?英語だけど読みやすい。タイトルはどう訳すべきがわからんが、「いまビルド自動化はどこへ行こうとしているのか?」ぐらいな感じか。そんなに具体的なことは書いてないけどCIについてのいい説明だと思う。ビルドの通知は…

Programming in Scalaという本が気になる

正直に言って,もし2003年の時点でMartin Odersky氏,Lex Spoon 氏,Bill Venners 氏による本Programming in Scalaのことを誰かが教えてくれていたなら,私がGroovy を作ることはなかっただろうと思っています。 総まとめ:Javaの将来的な後継者としての Sca…

やっとわかった

[*_*-*] [**_**-****] [***_**-*^] [****_***-**^^] さて下記の.で表現されている空欄を適切に埋めよ(点の個数は字数を意味しない) [*^_^-... 記号の抽象性 - 西尾泰和のはてなダイアリー ブクマコメントの答え?を見てもわからず30分ほど考えていたけどわ…

Kent BeckがChrome OSについて語っている

http://www.threeriversinstitute.org/blog/?p=273最初は良い感じなんだけど、イノベーションのジレンマは避けがたく、機能追加によってどんどん肥大化してつまんなくなっちゃんうんじゃないのっていってる(Next Movesのところの超適当な解釈ですw)最後の…

マーチンファウラーのCIについての記事を読んで感じたこと

Continuous Integration理解できた部分だけひろっていくとビルドに必要なものはすべてコミットする A common mistake is not to include everything in the automated build. The build should include getting the database schema out of the repository a…

CouchDBをいじってみる

インストールと起動 $ sudo port install couchdb $ sudo couchdb Apache CouchDB 0.9.0 (LogLevel=info) is starting. Apache CouchDB has started. Time to relax.curlでアクセスしてみる $ curl -v http://localhost:5984 * About to connect() to localh…