2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

テストを書いてからリファクタリングなんてのは幻想

1 :デフォルトの名無しさん:2012/10/03(水) 00:24:26.88 .net
テストを書いてからリファクタリングするというけれど、
コードの内容によっては、それが現実的に不可能な場合がある。

汚いコードであればあるほど、リファクタリングの前に
テストを書くのは難しくなる。

テストが書けるのは、単機能の関数になっているものだけ。
1000行以上からなる複数の処理を行う関数などテストを先に書くなんてまず不可能。

テストを書くためには、コードの再配置を先にやらなくてはいけない。
コードの順番を変えたりモジュールに分離するなどして、小さな処理にまとめて関数化する。
そこまでやってやっとテストが書ける。

現実的な修正の順番としては

コード再配置 → テストコード記述 → リファクタリング

にならざるをえない。

コード再配置はテストがない状態で行うから非常に神経を使う。
ミスを起こさないような再配置しかやってはいけない。

97 :デフォルトの名無しさん:2016/01/29(金) 01:36:46.48 ID:3QXtNRWh.net
振る舞いが変わってないのを証明出来るならどの手法でもリファクタリングを名乗っていいよ

98 :デフォルトの名無しさん:2016/02/03(水) 18:22:39.26 ID:mmJ5x1I8.net
つまりこの世にリファクタリングは存在しない

99 :デフォルトの名無しさん:2016/02/07(日) 15:40:59.07 ID:Y5xiZodX.net
部分的には出来る

100 :デフォルトの名無しさん:2016/02/14(日) 20:20:34.76 ID:9UaM9+lc.net
リファクタリングしたらお金貰えますか?

101 :デフォルトの名無しさん:2016/05/20(金) 20:00:00.76 ID:e1TBDqG+.net
リファクタリングしたらお金もらえる契約だった貰えます

102 :デフォルトの名無しさん:2016/05/21(土) 12:44:55.03 ID:JO+/Ov64.net
私のリファクタリングおじさんが匿名で銀行にお金を振り込んでくれるよ

103 :デフォルトの名無しさん:2017/02/28(火) 07:59:14.85 ID:K7hLR7oh.net
俺の全力120%リファクタリングを見せるときが来たようだな

104 :takasi23:2017/11/23(木) 16:55:55.62 ID:yAv7k3fc/
http://say-move.org/comeplay.php?comeid=1793752

105 :デフォルトの名無しさん:2018/04/22(日) 21:49:11.75 ID:PsQCMKRd.net
フッ、その程度の力で俺のテストファーストを破れると思うなよ

106 :デフォルトの名無しさん:2018/04/23(月) 13:16:52.06 ID:8zXr1SIe.net
>>1
一理あるな。
あんまり初心者のだとこのコードのテスト書く意味とは…ってなる。
つまりテスト書く前に直しが入る。

107 :デフォルトの名無しさん:2018/05/23(水) 19:41:33.31 ID:Au5e7VGg.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

VZCU5

108 :デフォルトの名無しさん:2018/07/05(木) 01:50:13.98 ID:RfoszcD2.net
6L4

109 :デフォルトの名無しさん:2020/01/29(水) 13:51:22 ID:MZiWsP4Y.net
修正ついでにリファクタリングしたけど、機能は変えてないからテストしなくて良いよね

110 :デフォルトの名無しさん:2021/03/30(火) 23:57:17.39 ID:WEbCupCq/
サラリーマンの努力は資産にならない。
https://www.youtube.com/watch?v=3FLjm0Sn-2U
【え、そうなの!?】真面目なサラリーマンが一番を損する理由
https://www.youtube.com/watch?v=Wi0Dyl8TbGg&t=522s
ネットで稼げない残念な人の特徴
https://www.youtube.com/watch?v=sV_eyPfB7Wk
【継続=勝利】続けているうちに、周りは勝手に消えていきます。
https://www.youtube.com/watch?v=oe8rHWFlmVc
【危険】今すぐ逃げろ!ヤバい会社の特徴10選。
https://www.youtube.com/watch?v=N0JBhysIlzc
「ろくに勉強してこなかったバカ」が今日からすべきこと。
https://www.youtube.com/watch?v=3EUDu38W1Mw
バカは「必要努力量」を見誤る。
https://www.youtube.com/watch?v=RG6_qkPhCuo

111 :デフォルトの名無しさん:2022/04/22(金) 14:27:10.14 ID:+Ag0wcTG.net
てst

112 :デフォルトの名無しさん:2022/04/26(火) 04:01:35.81 ID:WP1krAva.net
https://i.imgur.com/p9uUCsH.jpg

113 :デフォルトの名無しさん:2022/06/10(金) 07:54:47.35 ID:7BMdU4Yn.net
あっそ

114 :デフォルトの名無しさん:2023/06/06(火) 22:29:07.67 ID:jiKuTUOv.net
>>1
「テストを書く」の意味がわからない。

115 :デフォルトの名無しさん:2023/06/28(水) 13:43:55.35 ID:BVdlIcNn.net
漠∞!!!!
列∞!!!!!
廷∞!!!!!!
器∞!!!!!!!
斗∞!!!!!!!!
容∞!!!!!!!!!
寿∞!!!!!!!!!!
非∞!!!!!!!!!!!

116 :デフォルトの名無しさん:2023/06/28(水) 17:23:02.87 ID:ePd0oqZH.net
TDDは設計変更がそうそう起きない場合にしか現実的じゃないわな
外部ツールやらドメインやらの知識が更新されたり、仕様変更が起きると
それに伴う設計変更が起きて、同時にテストも直さなきゃならなくなる
無思慮にテストファーストがいいって言ってるやつは信用ならん

117 :デフォルトの名無しさん:2023/06/28(水) 19:07:09.03 ID:X+ansWrV.net
自動テストは無理かも知らんが、
ある程度この種の仕様テストは通すってのは用意しなきゃいかんでしょ。

118 :デフォルトの名無しさん:2023/06/28(水) 19:28:23.06 ID:ePd0oqZH.net
なんか話が噛み合ってないな
テストを用意するのは当たり前、その上でテストファーストの是非を問うスレじゃないのか

119 :デフォルトの名無しさん:2023/06/28(水) 22:15:25.11 ID:8Nsh461b.net
テスト書いたほうが実装は楽
むしろテストお陰で実装の質を上げられる
リファクタリングも同じ

120 :デフォルトの名無しさん:2023/06/30(金) 00:06:22.90 ID:qUWZqjjs.net
クソ実装に合わせたテストコードなんてリファクタリングしたら無駄になるやろ

121 :デフォルトの名無しさん:2023/06/30(金) 03:44:05.79 ID:oUIG4oIk.net
最初の実装まではテストいらんよな
・関数Aのテストを書く
・関数Aを書く
・関数Bのテストを書く
・関数Bを書く
・関数Aと関数Bの重複部分を関数Cにリファクタリングするべ
・関数Cのテストを書く
・関数Cを書く
・関数Aのテストを修正←いらんやろ
・関数Aを修正
・関数Bのテストを修正←いらんやろ
・関数Bを修正

122 :デフォルトの名無しさん:2023/06/30(金) 04:40:09.64 ID:7dyjbNOC.net
実装にはカオス期と安定期があるからカオス期のテストは無駄
安定期に入ったらテストを書け

123 :デフォルトの名無しさん:2023/08/23(水) 00:04:39.70 ID:0BjzShXD.net
「テストを書く」って何?

124 :デフォルトの名無しさん:2023/08/23(水) 03:12:21.78 ID:rNgOhsHc.net
>>123
このスレの文脈ではユニットテストのソースコードを書くという意味では?

125 :デフォルトの名無しさん:2023/08/23(水) 04:28:20.13 ID:0BjzShXD.net
仕事だとコーディングのことを「書く」とは言わないからな。

126 :デフォルトの名無しさん:2023/08/25(金) 01:30:03.89 ID:gEfXDtwy.net
そりゃ頭痛が痛いなんて言わないからな

コードを書くとは言う。
コーディング(コードを書くこと)を書くとは言わない

127 :デフォルトの名無しさん:2023/08/30(水) 15:08:16.42 ID:bGhOLdki.net
テスト

128 :デフォルトの名無しさん:2023/09/20(水) 17:55:14.32 ID:99hKkbYU.net
ヽ(*'0'*)ツ ワァオォ!!

129 :デフォルトの名無しさん:2023/12/06(水) 11:48:46.05 ID:oM0gjrfW.net
全銀システム障害「詳細設計書見落とし」でオーバーフローの痛恨、再発防止なるか
https://xtech.nikkei.com/atcl/nxt/column/18/00001/08680/

やっぱりテスト駆動にしておけば回避出来たよな

130 :デフォルトの名無しさん:2023/12/09(土) 15:17:43.26 ID:F2smNVkX.net
>詳細設計書では4種類のテーブルを同時に展開できるだけの作業領域を確保することを求めていたが、プログラマーやレビュアーなどの関係者がいずれもその記述を見落とし、これが上述のオーバーフローを招いたという痛恨のミスだ
>プログラマーやレビュアーなどの関係者がいずれもその記述を見落とし
つまりテスト環境自体が無くてテストしてからって発想が抜け落ちてるのね

131 :デフォルトの名無しさん:2024/01/02(火) 22:20:43.54 ID:3cCPTdjI.net
テストケース作るのがしんどいってケースもあるからいつでもテストファーストが良いってことはないわな。

132 :デフォルトの名無しさん:2024/01/03(水) 14:18:03.35 ID:eQVBZ7Cn.net
テストの有無とテストファーストの是非を混同してるやつがいるが、
おそらく故意にやってるんだろうな
まあ、釣られてるやつほぼおらんけど

133 :デフォルトの名無しさん:2024/01/04(木) 11:26:57.34 ID:iR4GsMlV.net
テストケース作るのがしんどいってテストしないのかよ
顧客のところでバグ炸裂して終了じゃんそんなの

134 :デフォルトの名無しさん:2024/01/04(木) 16:14:29.73 ID:bd+yebjO.net
まあ実際全銀でバグ炸裂して終了してるしな
NTTデータがケチる所でもないのに客に本番に近いテスト環境も別途必要ですよって説明してないんだろ

135 :デフォルトの名無しさん:2024/01/05(金) 04:49:34.73 ID:xFVV62H3.net
やっぱりプログラムを書き始める前に
テストプログラムを書いておく
これが最強

136 :デフォルトの名無しさん:2024/01/10(水) 14:29:25.20 ID:Pvv0OiRv.net
プログラムを書く時は間違えるがテストコードを書く時は間違えない前提

137 :デフォルトの名無しさん:2024/01/10(水) 23:00:16.65 ID:W4mJO5rQ.net
テストコードを間違えるか否か以前に、テストケースが抜け落ちるか否かもあるしな
全銀の件は抜け落ちてた話だから、テストファーストでやっても抜け落ちてたから一緒

138 :デフォルトの名無しさん:2024/01/11(木) 19:24:45.83 ID:1WZH2d+B.net
根本的な解決策としては
複数人でチェックする
ことかなあ
自分ではなかなか間違いに気が付かないし
自分の間違いが自分で気が付かないのは心理学でなんか名前がついていたような気がする

139 :デフォルトの名無しさん:2024/01/12(金) 08:10:20.90 ID:JglZpZY+.net
テストコードを間違いなく漏れなく書ける人がいるならその人がプログラムを書いたらいいだけの話

140 :デフォルトの名無しさん:2024/01/12(金) 21:23:36.19 ID:+NlTfLsQ.net
建築とか機械系ではエラーはほとんど起きないんだけどな
なんでソフトウエアだけ?
ちなみに航空機は安全性を考えていると重くなって飛べなくなるので
安全係数が1を切っていると聞いたが

141 :デフォルトの名無しさん:2024/01/13(土) 14:43:18.36 ID:qyfvMh6P.net
ライブラリやOSなどの基本ソフトとアプリなどの応用ソフトではまったく状況が違うよ
基本ソフトは大量に配布されて(コピーされて)、頻繁に実行されるので、
最高のエンジニアに作られて、徹底的に検証される(そうされないものは淘汰される)
要するにコスパの問題だよ。1本10万円のゲームで遊びたいかい?

142 :デフォルトの名無しさん:2024/01/13(土) 15:00:13.69 ID:vTVsKhAm.net
ソシャゲ課金て月に数十万単位だし
無料のAPEXのスパレジェすら1つにつき5万円だし
10万程度は払うやつなら払うよ

143 :デフォルトの名無しさん:2024/01/13(土) 15:07:45.36 ID:qyfvMh6P.net
>>142
Windowsの売上って四半期で何百億ドルといくらしいけど、
ソシャゲとかってそのぐらいの売上になるの?

144 :デフォルトの名無しさん:2024/01/13(土) 15:37:46.38 ID:8Ttuq2mz.net
四半期の事なんて知らんが
手間考えたらOS売るなんてアホな商売よりはソシャゲのが儲かるだろうね

145 :デフォルトの名無しさん:2024/01/16(火) 04:37:40.68 ID:bGp483o/.net
OS売る商売はLinuxに滅ぼされたからな
早期に見切りをつけてクラウドに移行したMSは先見の明がある

146 :デフォルトの名無しさん:2024/01/17(水) 19:10:33.33 ID:E+GFYvQx.net
マジかMSはソシャゲ屋になったほうがいいな

34 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★