pair programming matsuri!

2 programmer switch roles freaquently

- navigator

- driver

http://en.wikipedia.org/wiki/Pair_programming

http://ja.wikipedia.org/wiki/%E3%83%9A%E3%82%A2%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0

coding conflict is fun!

editor

vim vs emacs vs hidemaru(japanese editor) vs textmate vs eclipse vs netbeans vs ...

brace style

K&R style vs ... あんまり知らない K&Rってのもあんまりよくわかってなかったりする

keyboard

us keyboard vs japanese keyboard

php version

php5.2 vs php5.3 vs any future version

testing framework

phpunit vs lime vs simple test vs ...

scm

git and github vs mercurial and bitbucket vs svn and openpear? sorceforge vs ...

pair proggraming phrase

http://www.mightyverse.com/phrase_lists/pair-programing/page/1

we should write test code. But I don’t know how to write test code on php.

so who know write test tell me how to write test code!

preparation

must

your machine

your php interpriter

your editor(or IDE)

may

I use fedora13, and you own envrionment.

your scm (git or hg or svn or other)

yum install git

your testing framework (phpunit or lime or simpletest or other)

information pointer

phpunit

http://www.phpunit.de/manual/3.5/en/index.html

lime

simple test

how to check versions

php

$ php --version

PHP 5.3.3 (cli) (built: Jul 22 2010 15:57:00)

Copyright (c) 1997-2010 The PHP Group

Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

pear

$ pear version

PEAR Version: 1.9.0

PHP Version: 5.3.3

Zend Engine Version: 2.3.0

Running on: Linux localhost.localdomain 2.6.33.6-147.2.4.fc13.x86_64 #1 SMP Fri Jul 23 17:14:44 UTC 2010 x86_64

$ vim --version

VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Aug  5 2010 03:43:42)

$ git --version

git version 1.7.2.3

install phpunit

※ systemのPEAR自体やPEARのパッケージをゴリゴリバージョンアップしてるので、普段開発に使っている環境の人は自己責任でバージョンあげたりあげなかったりしてね 一応manuallyなinstall も書いてある 手動インストールは大変かも

その場合limeの方が楽かもしれず ただlimeは非力で悲しいのではやいところphpunitにしたほうが幸せになれる

yumで入ったpearは version 1.9.0で

http://www.phpunit.de/manual/current/en/installation.html

の指示通りすすめるとpear 1.9.1を要求されるので

$ sudo pear upgrade PEAR

で1.9.1にあげてから手順通りにchannel 3つ追加して phpunit 3.5がインストールできた

systemにインストールしない場合

http://pear.phpunit.de/get/

からあれこれ落としてextendしてinclude_pathに追加する
たいてい lib/PEAR/PHPUnit て感じに置くと思うんだけど 依存ライブラリをextendするとLICENSEとかreadmeとかが無造作に展開されて残念な気持ちになる あと、PHPUnit/Util/PHP.php を書き換えるように書いてあるように見えるんだけど、ライブラリの中を書き換えるってのはなんなの。

あと、直接関係ないけどprojectのリポジトリにphpunit入れるので間違ってないと思ってたけど、その確信も揺らいできた。

http://github.com/sanemat/kata-fibonacci-phpunit

fibonacciつくりかけ

install lime

http://trac.symfony-project.org/wiki/LimeTestingFramework

たしかにファイル1個でいいのはいいけど、ページもろくにないというか自身のバージョンもない時点でありえねーだろという。

まさかsymfonyのリビジョンが番号なのか、それともsymfony1.4.8付属でtag扱いなのかは不明。

kata-fibonacci-limeをいつかつくる

なんかコツコツ作ってる人いるみたいだけど使ってる人いる?

http://github.com/bschussek/lime

え、これがlime2なの? bschussekさんってかっこいいひと?

install simpletest

http://www.simpletest.org/