eXtreme Programming
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG実際実用的と思われるのはTesting, Refactoringの2つだと。
Cording Standardsは常識と考えればね。
XP全般について語ってもいいですが、
むしろTesting, Refactoringの二つをメインに語りましょう。
Testingのテクニックなんざをね。
参考URL:
http://objectclub.esm.co.jp/eXtremeProgramming/
00021
NGNGhttp://www.junit.org
RubyUnit
http://homepage1.nifty.com/markey/ruby/rubyunit/index.html
その他は1のリンクのFAQ見るべし
0003デフォルトの名無しさん
NGNGチームメンバの能力が相当高くないと成り立たないよね。
あとモラルも。
何も分かってないくせに、リファクタリングにかこつけて意味もなくコード
いじるオタクちゃんが絶対出てきそうだし。
テストの妥当性とか突き詰めていけばキリがなさそうだし…
そもそも、テスト書く人間のスキルがそれなりに高くないとダメだし。
ペアプログラミングと、個人の端末は持たないってのは論外。出来るわけない。
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG>ペアプログラミングと、個人の端末は持たないってのは論外。出来るわけない。
出来ないんならやらなきゃいいのでは?
やってるとこはやってるらしいよ。
0006デフォルトの名無しさん
NGNGうまくいって欲しい時のテストはもちろん、
例外時のテストも可能だし。
システム止まってもらっちゃ困るから、
しっかり例外時のテストしなきゃね。
0007デフォルトの名無しさん
NGNG>チームメンバの能力が相当高くないと成り立たないよね。
それ有りそう。たとえば馬鹿がコードを書くならば、
リファクタすればするほど改悪するかも知れないし、
馬鹿が二人そろっていれば、ペアプロで改悪が加速される。
馬鹿がコード規約を定めれば作業は瓦解する。
実際いるんだよねえ。プログラマ側にもマネージャにも客にも、馬鹿が。
まともに頭使ったら絶対こんな答え出すまい?っていうような答えを出して、
しかも平然としてる奴って。
>ペアプログラミングと、個人の端末は持たないってのは論外。
個人の端末持たないなんてPracticeは、無かったと思いますが?
それじゃネットワーク分散開発がやれないじゃん。自宅にPC持てないから。
それにHHKの売り文句みたいに「自分の気に入った操作環境」は超重要ですから、
それを拒否するなんて馬鹿なことをXPがスルとも思いがたい。
もしかして、ソースを個人で抱え込まないっていう話ですか?
>共同所有権(Collective Ownership)
>誰でも、どのコードでも、どこででも、いつでも、プログラマはコードを修正できる。
それなら、ソースを個人pcじゃなくて、サーバーのver管理ツールに置くのと、
修正を各自が勝手にやる(ことを許す)ってので、OKな筈です。
なおこーゆーことをするには、いや、しない普通の開発の場合でも、
ver管理ツールの存在は大前提っす。XPをしてなくても、これは実感。
偶発や故意(馬鹿も含めて)のソースの修正の安全性が段違いになるので。
俺んとこでもVSS(笑)使い始めてから開発「安定」性がはっきり上がった感じです。
まぁこれはXPに興味持つような人になら釈迦説法だろうけど。
RCS/CVS/VSSスレと、ゲーム開発スレを、参照どぞ。
0008デフォルトの名無しさん
NGNG自分や、自分が所属する人間が、現在のやり方を捨て、
XPを実践したらどうなるかを考えたほうが健全では?
「バカ」がやれば、ウォーターフォールでもスパイラルでも
失敗するに違いないでしょ。
0009デフォルトの名無しさん
NGNG>自分や、自分が所属する人間が、現在のやり方を捨て、
>XPを実践したらどうなるかを考えたほうが健全では?
ん???
一般論として「馬鹿」を考えた後で、
自分たちがその馬鹿に該当するかどうかを考える
という二段構えでも、おかしくないっしょ?
00108
NGNG疑問なんですが。
バカがやると失敗するが、スキルのある人がやると成功する、
とかいう考察をしたいんでしょうか?
0011デフォルトの名無しさん
NGNGどれが一番使いやすいかな?
0012デフォルトの名無しさん
NGNG駄目プログラマは、どんな手法を用いても駄目
天才プログラマは、どんな手法を用いても天才
0013デフォルトの名無しさん
NGNG取り上げたところで効率が良くなる手法ではないと思う。
ある程度のノウハウがあり、そこそこ開発効率の高い組織がさらに上を
目指して取り入れた場合のみ効果があるのではないか?
いずれにしても銀の弾など存在しないのだから過剰な期待は禁物。
0014>13
NGNG0015デフォルトの名無しさん
NGNGクラスの設計時に合わせて書くといいよ。
なぜなら設計時にテストコードを書くことは
事前に(仮想的な)クラスを使ってみることを意味するので
クラスがどうあるべきかというイメージがはっきりする。
# UMLだけ書いているときと比べてやりやすい気がする。
またテストコードがクラスのドキュメント的な性格を持つので、
UML図、仕様書とコードを常に同期させるコストを低減できる
# ことが期待される。このあたりの効果はまだ不明。
いずれにしても厨房はまともなテストが書けない。
まともなリファクタリングができないといっても不毛だよ。
厨房がXPの実践を通して設計・テスト・リファクタリングの
経験をつめると考えれば従来のコーダよりも得られるものは
はるかに大きいと思う。
0016デフォルトの名無しさん
NGNGその考えには反対だな。
馬鹿が集まればどんな方法論使っても失敗するけど、
優秀なやつだけで固めてもプロジェクトは失敗するときがある、
ってことでみんな頭を悩ませていたわけでしょ。
で、いろいろなプロジェクト進行法が考え出されて、そのなかで
もっとも現代的で現実的なのがXPってことでしょ。
XPを用いても優秀な人材がいないとだめってのはいっしょってことだな。
0017デフォルトの名無しさん
NGNGうまく言えないけど、なんかXPの思想や目的、成り立ちと合致してない気が・・・。
0018デフォルトの名無しさん
NGNGそれって「いろいろなプロジェクト進行法が考え出されて、そのなかで
もっとも現代的で現実的なのがXPってことでしょ」って部分に対して
だよね?
スマソ、あんま考えて書いた文じゃないから変でした(藁
ただ、漏れがいいたいのは「優秀なやつだけ集めたとしても失敗する
ときがある。何らかの方法論を使えばそのリスクを軽減できるけど、
そのなかでもXPはなかなか逝けてるYO!」ってことでした
0019デフォルトの名無しさん
NGNG馬鹿について考えるのが抽象的すぎて困るなら、
自分について考えるのは具体的すぎて
応用が利かないと思うが。
応用ってのは、他人とかに話を展開するときに、ね。
0020デフォルトの名無しさん
NGNGUnitTestについては専用のTestingFrameworkってあるのでしょうか。
あとGUIのテストも面倒そうですね。
メニュー選んだりクリックしたりとかが。
0021デフォルトの名無しさん
NGNGxUnitは言語ごとにあるから、そのプログラムが何で作られてるかによるな。
あと「何を」テストするかにもよる。
漠然と「マルチスレッド・マルチプロセス・ネットワーク関連」と言われても・・・。
>あとGUIのテストも面倒そうですね。
>メニュー選んだりクリックしたりとかが。
Javaの例がどっかにあったな。
WebならHTTP Unitなんかが使える。
00221
NGNGXPエクストリーム・プログラミング入門
ソフトウェア開発の究極の手法
ケント・ベック(ベック.ケント)
は、XPの紹介だけで実際には使い物にならない本ですな。
XPエクストリーム・プログラミング実行計画 を読んだことがある方
いい本でしたか?
0023名無しさん
NGNG0024名無しさん
NGNG0025デフォルトの名無しさん
NGNGどういう内容なら「使い物」になると判断します?
いまよんでるけど、まだ7章なんで精神論が主。
00261
NGNGこれこれこういう思想だよ、というのは伝わるが
技術的な内容は一切無かったような。
とりあえず私は2冊目の本を注文しました。
こっちもそれっぽい内容だったら鬱。
00271
NGNG「テスト抜きではプログラムが書けない体」
になってしまった人いるかな(笑)
0028名無しさん@お腹いっぱい。
NGNG0029コピペさん
NGNGテストをひとつ書く。
テストをコンパイルする。まだ何もつくっていないんだから、これは失敗しないといけない。
コンパイルできる程度にコードを書く。(必要ならその前にリファクターする)
テストを走らせ、失敗することを確認する。
テストが通る程度の実装を行う。
テストを走らせ、通ることを確認する。
整理し「同じことは一個所で」となるようにリファクターする。
最初に戻って繰返す。
0030>29
NGNG全てはここからだ。
0031デフォルトの名無しさん
NGNGてゆーか、早く(ニンゲンに)なりたいです俺(T_T)
今やってる仕事がいい加減なプロジェクトで、
客とか上とかの連中が仕様をまともに考えやしない
(理屈的に穴だらけだったりとか)んで、
モトネタの仕様が無くちゃテストもかけない、
でも実装本体は書かされる、という
ロクでも無い状態になってます。
テストファーストが「できる」状況にあるかどうか?は、
結構そのプロジェクトのまとも度の指標になるんじゃないかと憶測。
せめてってわけで、コードとテスト(しかも手動用の手順書)を
同時に提出するようにしてるんだけど、
他の大抵の奴はコード書いてから数十時間後でないと
テストを提出してないらしい。俺のスタイルが
ものめずらしがられてしまったよ。
テストの内容が仕様やコードと(微かにでも)ずれていることの恐さを
判っているんだろうかヤツラは?
0032デフォルトの名無しさん
NGNGなにかに似ていると思ったら、これって
ソースとかのバージョン管理ツールの理屈に
なんとなく似てませんか?
つまり、概念的には、ソース字面レベルじゃなくて
実行テストレベルでの「diff」なんだよソレは。
確かに字面レベルだと、ソース書きながら
そのソースや他のソースの字面を比較とかするために
頻繁にgrepとか使うもんなあ。
それの実行時版なわけね、UnitTestって。
う。俺ぁエディタでソース書くとき、数秒(誤字じゃなく)に1回
SAVEする感じなんで、同じノリでUnitTestも数秒に1回やりたいな。
将来CPUが速くなったら、コード書くのとリアルタイムに同期した
全自動テストつまりIncrementalUnitTestなんてものが
出来るようになるかも。最後の}を入力し終わった瞬間に
Test画面がRedからGreenになるっていう感じ。
ん?するとUnitTestはRCSみたいなもんってことで、
一方でCVSに相当する統合テスト自動化方法ってのも
きっとこの世のどっかにあるんだろうな(^^;;;
UnitTest+(CVS-RCS)=統合Test
みたいな感じかな。
0033デフォルトの名無しさん
NGNG多分アナタ、テスト中毒(Fowlerのいう、Test Infected, うただなら
Addicted to Test)になる素質アルネ
0034デフォルトの名無しさん
NGNGなりたいです(廃人もーど
妄想つづき。
エディタ上でソースの任意の部分を選択ハイライトさせて
Testってコマンドを投げると、その部分に
うまく該当するTest(1つ以上)が存在すれば
そいつを走らせてくれる、というエディタとか。
まぁUnitTestのUnitより小さい単位なんてものを
考え出したら却ってハマルだけかもだが。
0035デフォルトの名無しさん
NGNGワォ、アナタ天才ネ
って文体気持ち悪いから戻すけど、
buildとバージョン管理ともろもろを統合するツールは
今、いろんな人がつくりはじめてるみたい。今ならいっちょ面白い
のをつくると皆喜ぶかも。
エディターとの統合も面白いね。
0036デフォルトの名無しさん
NGNG>SAVEする感じなんで、同じノリでUnitTestも数秒に1回やりたいな。
これはちょっとウザいと思う。動かないのわかってて書いている場合もあるので。
>ソースとかのバージョン管理ツールの理屈に
>なんとなく似てませんか?
というより、XP,UnitTestを
開発ツールベンダに認知させる事ができたら、
開発の全フェーズに関わってくる可能性がある。
# 最近のIDEはカスタマイズ可能なので、
# ユーザーレベルで実現可能なはずだけど。
・プロジェクトと連携。ソースやクラス定義を追加したら、テストの枠組みを自動生成。
・ソース管理と連携。ソース管理のチェックイン・チェックアウトの度にテストを実行。
・実行(?)と連携。プログラムを実行したらその直前にテストを実行。
# テストのmake(前回失敗したもののみ実行)なんてのもありだね。
・デバッガと連携。テストに失敗したら、そのテストを再実行して失敗する直前に
ブレークをかけてデバッガに制御を渡す。あとテストのステップ実行など。
・レポートツールと連携。テスト結果をデータベースに出力。
最後に成功した(失敗した)モジュールとテスト直前に修正した他のモジュールなどをレポートする。
・プロファイラと連携。テストの時間を計測。複数のアルゴリズム・バージョン間で実行時間を比較。
これらの幾つかの機能を持ったDelphiのframeworkを作成中。
Delphiはビルドが超高速、GUIが作りやすい、コード補完、
クラスのprivate/protectedにアクセスするテストが普通に書ける、
スマートリンク、テストメソッドの検索・自動実行
ができるので、気合を入れれば結構使いやすそうなものができそう。
00371
NGNGUnitTestしないで試しにプログラムを作ってみたら
発狂してしまった(爆)
0038デフォルトの名無しさん
NGNGもうとめられません。あなたの因子が社内に、大学に、
伝染してゆくのです。
0039デフォルトの名無しさん
NGNGおおおおお!
(案の段階で既に)すばらしい!!
なるほど。Borland伝統(笑)のrunメニューのなかに
testメニューが混じってくる感じかな。
DelphiならIDEへのカスタマイズもDelphi自体で書けるから
尚更有り難いですね。
>クラスのprivate/protectedにアクセスするテストが普通に書ける
これって同一ソースファイルに書くわけですね。
リリースのとき切り離すのがアレかな。
あ、条件コンパイルすりゃいいだけか。
>プロジェクトと連携。
Wizardでクラス生成を選択したら
対象ClassとTestClassを一緒に生成っすか。うおー。
>ソース管理と連携
delphiに添付の管理ツール以外も使えるようにしてください(w
(あのツールって使いにくくないっすかかなり?)
0040デフォルトの名無しさん
NGNG変化を抱護せよってのは、そういう意味だったのか(w
「伝染るんです」っていう感じ。
■ このスレッドは過去ログ倉庫に格納されています