機能追加や変更した時に、全部テストしてるでしょ?
いつもやってることじゃん
探検
リファクタリングすると全部テストしろと言ってくるやつの矛盾
■ このスレッドは過去ログ倉庫に格納されています
2018/04/15(日) 13:13:44.63
530仕様書無しさん
2018/04/23(月) 21:37:25.89531仕様書無しさん
2018/04/23(月) 21:38:22.86533仕様書無しさん
2018/04/23(月) 22:01:01.53 結局リファクタの成否は
客を丸め込んでデグレのリスクを飲ませられるかにかかってる気がしてきた
バージョンアップとかスピードアップとかなんかこじつけて
リファクタでデグレたら原因も無理やりそこに倒す
客を丸め込んでデグレのリスクを飲ませられるかにかかってる気がしてきた
バージョンアップとかスピードアップとかなんかこじつけて
リファクタでデグレたら原因も無理やりそこに倒す
534仕様書無しさん
2018/04/23(月) 22:09:44.65 その前に正しい知識が必要だけどな。
リファクタリングは効果的、これを開発社側が
正しく理解してないと、現状のコードの問題を
リファクタリングのせいにしてしまう。
リファクタリングは効果的、これを開発社側が
正しく理解してないと、現状のコードの問題を
リファクタリングのせいにしてしまう。
535仕様書無しさん
2018/04/23(月) 22:10:30.68 現状のコードの問題ってのは、例えば
仕様もテストコードもないんだが?とかそういうのなw
仕様もテストコードもないんだが?とかそういうのなw
537仕様書無しさん
2018/04/23(月) 22:16:20.23 開発中なのにユニットテストでプロダクションコードをガチガチに硬直化させるアホ
538仕様書無しさん
2018/04/23(月) 22:16:42.65 なにか問題でも?
開発側が楽になれば、それは顧客にとってメリットしかないよね?
開発側が楽になれば、それは顧客にとってメリットしかないよね?
539仕様書無しさん
2018/04/23(月) 22:17:49.19541仕様書無しさん
2018/04/23(月) 22:24:43.47 >>540
なんでユニットテストを修正してはいけないと思ってるんだ?
リファクタリングでユニットテスト修正するだろ。
というだけじゃ意味が分からんのだろうな
テストは修正しないって言ったじゃないですか!って言いそうw
リファクタリングはテストに通るように修正するのであって、
それさえ守れば、テスト自体の修正もする。
テストのリファクタリングなんて言葉もある。
説明がほしいか?
なんでユニットテストを修正してはいけないと思ってるんだ?
リファクタリングでユニットテスト修正するだろ。
というだけじゃ意味が分からんのだろうな
テストは修正しないって言ったじゃないですか!って言いそうw
リファクタリングはテストに通るように修正するのであって、
それさえ守れば、テスト自体の修正もする。
テストのリファクタリングなんて言葉もある。
説明がほしいか?
542仕様書無しさん
2018/04/23(月) 22:26:59.68 まあここらへんだな。お前がユニットテストを壊さなきゃできないと
勘違いしているリファクタリングだ
新装版 リファクタリング 既存のコードを安全に改善する
http://shop.ohmsha.co.jp/shopdetail/000000003881/
第6章 メソッドの構成
メソッドの抽出
メソッドのインライン化
一時変数のインライン化
問い合せによる一時変数の置き換え
説明用変数の導入
一時変数の分離
パラメータへの代入の除去
メソッドオブジェクトによるメソッドの置き換え
アルゴリズムの取り替え
第7章 オブジェクト間での特性の移動
メソッドの移動
フィールドの移動
クラスの抽出
クラスのインライン化
委譲の隠蔽
仲介人の除去
外部メソッドの導入
局所的拡張の導入
勘違いしているリファクタリングだ
新装版 リファクタリング 既存のコードを安全に改善する
http://shop.ohmsha.co.jp/shopdetail/000000003881/
第6章 メソッドの構成
メソッドの抽出
メソッドのインライン化
一時変数のインライン化
問い合せによる一時変数の置き換え
説明用変数の導入
一時変数の分離
パラメータへの代入の除去
メソッドオブジェクトによるメソッドの置き換え
アルゴリズムの取り替え
第7章 オブジェクト間での特性の移動
メソッドの移動
フィールドの移動
クラスの抽出
クラスのインライン化
委譲の隠蔽
仲介人の除去
外部メソッドの導入
局所的拡張の導入
543仕様書無しさん
2018/04/23(月) 22:31:31.09 まあ簡単に説明するとだな。
「実装クラス」があって
↑
「テストコード」がこの実装クラスを見ている時の
クラスを大きく書き換えるリファクタリングはな
「新しいクラス」を作って、
↑
「実装クラス」の処理を新しいクラスに移譲することで、
↑
「テストコード」から見るインターフェースを
まったく変えること無く、新しいクラスに移行するんだよ
そして「新しいクラス」のテストも書いて(もちろん一部は現在のテストコードを流用していい)
「実装クラス」を参照しているものを、新しいクラスを参照するように書き換え
どこからも使われなくなったら「実装クラス」をそのテストコードもろとも削除
というやり方が、>>542のリファクタリング本に書いている
だから「ユニットテストが壊れない程度のリファクタリング」と言われても
あー、分かってない人ねとしか思わないよ。
「実装クラス」があって
↑
「テストコード」がこの実装クラスを見ている時の
クラスを大きく書き換えるリファクタリングはな
「新しいクラス」を作って、
↑
「実装クラス」の処理を新しいクラスに移譲することで、
↑
「テストコード」から見るインターフェースを
まったく変えること無く、新しいクラスに移行するんだよ
そして「新しいクラス」のテストも書いて(もちろん一部は現在のテストコードを流用していい)
「実装クラス」を参照しているものを、新しいクラスを参照するように書き換え
どこからも使われなくなったら「実装クラス」をそのテストコードもろとも削除
というやり方が、>>542のリファクタリング本に書いている
だから「ユニットテストが壊れない程度のリファクタリング」と言われても
あー、分かってない人ねとしか思わないよ。
544仕様書無しさん
2018/04/23(月) 22:36:31.59 パズルやりたいなら一人でやってろや
仕事中に遊んでんじゃねえ
仕事中に遊んでんじゃねえ
545仕様書無しさん
2018/04/23(月) 22:40:36.13 画面見てキーボード打ってるとゲームして
遊んでるとか思うおっさんがいるらしいなw
遊んでるとか思うおっさんがいるらしいなw
546仕様書無しさん
2018/04/23(月) 22:43:19.23 こんなパズルいらねーんだよ。
バーンと書き換えて、やっちゃって
ミスったらリファクタリングのせいにすればいいだろ
↑こういうやつがリファクタリングのせいにするわけかw
リファクタリングは変更しても問題ない手順で変更することで、
たんなる変更、いつもお前らがやってるような手抜きの
無計画な変更を言い換えた言葉ではありません
バーンと書き換えて、やっちゃって
ミスったらリファクタリングのせいにすればいいだろ
↑こういうやつがリファクタリングのせいにするわけかw
リファクタリングは変更しても問題ない手順で変更することで、
たんなる変更、いつもお前らがやってるような手抜きの
無計画な変更を言い換えた言葉ではありません
547仕様書無しさん
2018/04/23(月) 22:44:15.53 結局テストコード削除してたらだめじゃん
やってる本人はよくても
他人はリファクタ前と後で変わってないことをどうやって確かめるんだ
やってる本人はよくても
他人はリファクタ前と後で変わってないことをどうやって確かめるんだ
548仕様書無しさん
2018/04/23(月) 22:46:32.34 > 結局テストコード削除してたらだめじゃん
ちゃんとよめや。
移行して使われなくなってから削除するんだよ
お前みたいに、なにも考えずに削除してるんじゃねーよw
> 他人はリファクタ前と後で変わってないことをどうやって確かめるんだ
なんのためにコミットログがあると思ってんの?
あ、もしかしてそこから?
レベルの差が2段階、3段階ありそう・・・
ちゃんとよめや。
移行して使われなくなってから削除するんだよ
お前みたいに、なにも考えずに削除してるんじゃねーよw
> 他人はリファクタ前と後で変わってないことをどうやって確かめるんだ
なんのためにコミットログがあると思ってんの?
あ、もしかしてそこから?
レベルの差が2段階、3段階ありそう・・・
550仕様書無しさん
2018/04/23(月) 22:54:04.64 >>549
1. リファクタリングする前にはテストがある。
2. 足りなければ追加する
3. テストが通る
4. リファクタリングする(コードを書き換える)
5. リファクタリングしてもテストが通る
それだけじゃん。
まだ補足が必要?
1. さらにコードを書き換える
2. コードを書き換えるうちに(テスト以外で)使われないモジュールが登場する
3. テストは通るがプロダクションコードでは使われてない
4. 使われてないコードは安全に削除できる
いわれないとわからないかなあ?w
1. リファクタリングする前にはテストがある。
2. 足りなければ追加する
3. テストが通る
4. リファクタリングする(コードを書き換える)
5. リファクタリングしてもテストが通る
それだけじゃん。
まだ補足が必要?
1. さらにコードを書き換える
2. コードを書き換えるうちに(テスト以外で)使われないモジュールが登場する
3. テストは通るがプロダクションコードでは使われてない
4. 使われてないコードは安全に削除できる
いわれないとわからないかなあ?w
551仕様書無しさん
2018/04/23(月) 22:58:29.81 コミットログは?w
553仕様書無しさん
2018/04/23(月) 22:59:49.36 >>541
だからさ、「ガチガチに硬直化」って丁寧に言ってやってんじゃん
そりゃリファクタリングの過程でテストも書き換えるよ
ていうか書き換えるに決まってんじゃんアホか
開発中の日々形を変えるコードに対してガチガチのテストを書くなって言ってんだけど、
わかんない?アホだからわかんないの?もうちょっと精進しろよアホ
だからさ、「ガチガチに硬直化」って丁寧に言ってやってんじゃん
そりゃリファクタリングの過程でテストも書き換えるよ
ていうか書き換えるに決まってんじゃんアホか
開発中の日々形を変えるコードに対してガチガチのテストを書くなって言ってんだけど、
わかんない?アホだからわかんないの?もうちょっと精進しろよアホ
554仕様書無しさん
2018/04/23(月) 23:00:16.48 やっぱり話が通じないのは
レベルの差が4段階、5段階あるからか・・・
レベルの差が4段階、5段階あるからか・・・
555仕様書無しさん
2018/04/23(月) 23:01:48.90 >>553
> だからさ、「ガチガチに硬直化」って丁寧に言ってやってんじゃん
ガチガチに硬直化ってなに?
ファイルをリードオンリーにでもすんのか?
変更できないコードなんてないはずだけど?
どうやるのかはしらないが、
お前がガチガチに硬直化させたのなら、
それはお前の責任だよね?
> だからさ、「ガチガチに硬直化」って丁寧に言ってやってんじゃん
ガチガチに硬直化ってなに?
ファイルをリードオンリーにでもすんのか?
変更できないコードなんてないはずだけど?
どうやるのかはしらないが、
お前がガチガチに硬直化させたのなら、
それはお前の責任だよね?
556仕様書無しさん
2018/04/23(月) 23:01:57.08 リファクタの途中よりリファクタの前と後で結果が変わらないことを保証してほしいんだけど
557仕様書無しさん
2018/04/23(月) 23:02:23.37 スクラッチでシステム作ったことないんだろうか
リリース済みのコードとそれに対する改修の文脈でばかり語ってるところを見ると、そうなんだろうな
リリース済みのコードとそれに対する改修の文脈でばかり語ってるところを見ると、そうなんだろうな
558仕様書無しさん
2018/04/23(月) 23:02:52.05560仕様書無しさん
2018/04/23(月) 23:05:13.56 >>556
> リファクタの途中よりリファクタの前と後で結果が変わらないことを保証してほしいんだけど
だからリファクタの前=コミットログの修正前
リファクタの後=コミットログの修正後だろ?
リファクタの前のテストコードを変更せずに
リファクタの後でもそのまま通れば
変わってないことが証明できる。
あー、これ↓を言っておかないとダメなんだろうなw
結果が変わってないと証明された後、
使われてないと判明したコードは削除できる
> リファクタの途中よりリファクタの前と後で結果が変わらないことを保証してほしいんだけど
だからリファクタの前=コミットログの修正前
リファクタの後=コミットログの修正後だろ?
リファクタの前のテストコードを変更せずに
リファクタの後でもそのまま通れば
変わってないことが証明できる。
あー、これ↓を言っておかないとダメなんだろうなw
結果が変わってないと証明された後、
使われてないと判明したコードは削除できる
562仕様書無しさん
2018/04/23(月) 23:05:53.43 おまいがリファクタして部分的な仕様を変えまくってんじゃん
そのうえで全体的な仕様が変わってないことを保証しないといけないわけだが
そのうえで全体的な仕様が変わってないことを保証しないといけないわけだが
563仕様書無しさん
2018/04/23(月) 23:06:32.49 >>559
> リファクタ本に書かれてる話じゃなくてごめんね
じゃあどこに書かれてる話なの?
お前の想像の世界の話はいらないからw
どうも「自分がくそったれなやり方してます。
くそったれなやり方には使えないんですけど?」
って言ってるようにしか見えない。
お前のくそったれなやり方の問題だろとしか
> リファクタ本に書かれてる話じゃなくてごめんね
じゃあどこに書かれてる話なの?
お前の想像の世界の話はいらないからw
どうも「自分がくそったれなやり方してます。
くそったれなやり方には使えないんですけど?」
って言ってるようにしか見えない。
お前のくそったれなやり方の問題だろとしか
564仕様書無しさん
2018/04/23(月) 23:06:42.27 偉そうな口をきいてるわりに視野が狭い
565仕様書無しさん
2018/04/23(月) 23:07:05.91566仕様書無しさん
2018/04/23(月) 23:08:13.58 >>562
> おまいがリファクタして部分的な仕様を変えまくってんじゃん
変えてないよ?
日々テスト変えなきゃならないどこかの誰かさんと違って、
テストは基本安定している。
テストコードを変えない状態でコードを書き換えてるので
リファクタしても仕様はまったく変わらない
> おまいがリファクタして部分的な仕様を変えまくってんじゃん
変えてないよ?
日々テスト変えなきゃならないどこかの誰かさんと違って、
テストは基本安定している。
テストコードを変えない状態でコードを書き換えてるので
リファクタしても仕様はまったく変わらない
567仕様書無しさん
2018/04/23(月) 23:08:14.72 日々コードの形が変わっていくのをイメージできない初心者はIDDDでも読んでみたらー
568仕様書無しさん
2018/04/23(月) 23:10:19.92 もしかしてプライベートメソッドのテストをしてるとかかな?w
それユニットテストじゃない
ユニットテストはモジュールのインターフェースのテストだから
変わりまくることはあり得ない。
もしモジュールのインターフェースという概念がなくて、
単に長いから関数にまとめましたみたいな、
なんでかしらないけど、この関数テストしづらいです。
なんてことをしてるのならそいつの問題
それユニットテストじゃない
ユニットテストはモジュールのインターフェースのテストだから
変わりまくることはあり得ない。
もしモジュールのインターフェースという概念がなくて、
単に長いから関数にまとめましたみたいな、
なんでかしらないけど、この関数テストしづらいです。
なんてことをしてるのならそいつの問題
570仕様書無しさん
2018/04/23(月) 23:12:22.55 具体的にどんなコードとどんなテストをかいて
ガチガチに固まって、メンテナンスが大変です。
なんて状態になってるのか書いてみたら良いよ。
想像の世界の話じゃないなら書けるはず
ガチガチに固まって、メンテナンスが大変です。
なんて状態になってるのか書いてみたら良いよ。
想像の世界の話じゃないなら書けるはず
571仕様書無しさん
2018/04/23(月) 23:14:05.70 >>569
外から見た時の動きが変わってなければ良い。
そして外から見た時の動きが変わってないが、
(テストコード以外で)使われていないメソッドを作ることは可能
そしたら使われてないコードは安全に消せる。
こういう話をしてます。
外から見た時の動きが変わってなければ良い。
そして外から見た時の動きが変わってないが、
(テストコード以外で)使われていないメソッドを作ることは可能
そしたら使われてないコードは安全に消せる。
こういう話をしてます。
572仕様書無しさん
2018/04/23(月) 23:18:32.85573仕様書無しさん
2018/04/23(月) 23:38:30.60 低い階層がなんののか知らんが、
【現在のクラス】をリファクタリングするとき
「新しいクラス」
↑
【現在のクラス】←「その他のクラス」←「その他のクラスのテストコード」
↑
「現在のクラスのテストコード」
こういう階層の時、「現在のクラスのテストコード」はそのままに、
「新しいクラス」に処理を移動していくことはできるだろ?
(移動だけじゃなくて新しく作ってもいいけど)
リファクタリングするのは【現在のクラス】だけ
「現在のクラスのテストコード」は書き換えない
【現在のクラス】を利用している「その他のクラス」も書き換えない
(当然「その他のクラスのテストコード」も)
コードの修正をすすめると【現在のクラス】は「新しいクラス」への移譲コードだけになる。
また「その他のクラス」は「新しいクラス」を参照するようにする。
「その他のクラスのテストコード」の修正はしないから、変わってないことは保証できる。
最終的に【現在のクラス】を「その他のクラス」は参照することはなくなる。
そして【現在のクラス】は「現在のクラスのテストコード」以外からは
どこからも使われてないクラスになるので安全に削除できる
これが関数レベルではない、クラスレベルのリファクタリングのやり方
それは>>542とかの本に書いてある基本だから、ほんと勉強してくれとしか
【現在のクラス】をリファクタリングするとき
「新しいクラス」
↑
【現在のクラス】←「その他のクラス」←「その他のクラスのテストコード」
↑
「現在のクラスのテストコード」
こういう階層の時、「現在のクラスのテストコード」はそのままに、
「新しいクラス」に処理を移動していくことはできるだろ?
(移動だけじゃなくて新しく作ってもいいけど)
リファクタリングするのは【現在のクラス】だけ
「現在のクラスのテストコード」は書き換えない
【現在のクラス】を利用している「その他のクラス」も書き換えない
(当然「その他のクラスのテストコード」も)
コードの修正をすすめると【現在のクラス】は「新しいクラス」への移譲コードだけになる。
また「その他のクラス」は「新しいクラス」を参照するようにする。
「その他のクラスのテストコード」の修正はしないから、変わってないことは保証できる。
最終的に【現在のクラス】を「その他のクラス」は参照することはなくなる。
そして【現在のクラス】は「現在のクラスのテストコード」以外からは
どこからも使われてないクラスになるので安全に削除できる
これが関数レベルではない、クラスレベルのリファクタリングのやり方
それは>>542とかの本に書いてある基本だから、ほんと勉強してくれとしか
574仕様書無しさん
2018/04/23(月) 23:43:44.16 一応言っておくけど、これは、クラス根本的に
変えてしまうほどのリファクタリングの手順
メソッド一個だけとかならここまでやる必要はない。
その場合は、メソッド単体で、他のメソッドの委譲したりして
該当のメソッドを使われてない状態にしてから削除する
変えてしまうほどのリファクタリングの手順
メソッド一個だけとかならここまでやる必要はない。
その場合は、メソッド単体で、他のメソッドの委譲したりして
該当のメソッドを使われてない状態にしてから削除する
575仕様書無しさん
2018/04/23(月) 23:58:55.58 下位クラスの結果も検証するように緻密に単体テスト作られてればいいが
ユニットテストするときなんて下位クラスはモックになってること多い
その場合参照するクラス変わったらモック設定書き換えにゃならん
ユニットテストするときなんて下位クラスはモックになってること多い
その場合参照するクラス変わったらモック設定書き換えにゃならん
576仕様書無しさん
2018/04/24(火) 00:11:44.40 既にあるロジックをどこか別の場所に移動する以外にネタねえのかよw
579仕様書無しさん
2018/04/24(火) 00:24:31.48 結局単体テストは個人のテスト証跡以上の意味はないのだろうか
580仕様書無しさん
2018/04/24(火) 00:42:19.08 あるよ
581仕様書無しさん
2018/04/24(火) 06:04:21.71 だから
リファクタリングなんぞ不要
数年後には業務変化の見直しと現在業務の確認のために、システムをまるごと作り直すから
リファクタリングなんぞ不要
数年後には業務変化の見直しと現在業務の確認のために、システムをまるごと作り直すから
582仕様書無しさん
2018/04/24(火) 06:15:49.27 出社めんどくせえ
584仕様書無しさん
2018/04/24(火) 08:52:53.82 定期的なリプレースでは使う言語が変わる可能性が結構高い確率である
こまめにリファクタリングしたら大損だよ
こまめにリファクタリングしたら大損だよ
585仕様書無しさん
2018/04/24(火) 09:48:46.57 >>584
こまめにリファクタリングってことは、リファクタリング後の修正がこまめに発生してるんだから、そこでリファクタリングコストの半分以上は回収できてると思うの
こまめにリファクタリングってことは、リファクタリング後の修正がこまめに発生してるんだから、そこでリファクタリングコストの半分以上は回収できてると思うの
586仕様書無しさん
2018/04/24(火) 11:20:18.41 常に機能追加や改修しているようなソフトウェアであればリファクタリングは有効
一度作ったらあまり改修しないようなソフトウェアであればリファクタリングのデメリットが目立つ
つまり、アマゾンドットコムみたいに常に機能追加や改修が行われる投資対象であればリファクタリングで機動力を確保するのは理にかなってる
逆に家電に代表されるような組み込み系、もしくは制御系のような、機能追加や改修の頻度が低いものであればリファクタリングする意味は相対的に小さい
お金をつぎ込めばつぎ込むほどリターンがあるのであれば、CIの中にリファクタリングを入れてしまえばいいだろう
リファクタリングの結果がすぐに出やすく、デメリットであるリファクタリング起因の不具合についても
改修が多ければ多いほど、リファクタリング起因の不具合減産と相殺されるからだ
リファクタリングの問題でやはり難しいのは改修頻度が低く失敗が許されない分野だ
これらの分野は製造工数とテスト工数の比でいうとテスト工数の割合が大きい
つまり、リファクタリングによって過大なテスト工数が必要となってしまい、リファクタリングのメリットが吹き飛んでしまう
しかしながら動いている箇所はいじらない方針もいつまでも続くわけじゃない
いつかのタイミングで全面リプレースするか、リファクタリング(もはや資料もなく知っている人もいない)を行うことになる
一度作ったらあまり改修しないようなソフトウェアであればリファクタリングのデメリットが目立つ
つまり、アマゾンドットコムみたいに常に機能追加や改修が行われる投資対象であればリファクタリングで機動力を確保するのは理にかなってる
逆に家電に代表されるような組み込み系、もしくは制御系のような、機能追加や改修の頻度が低いものであればリファクタリングする意味は相対的に小さい
お金をつぎ込めばつぎ込むほどリターンがあるのであれば、CIの中にリファクタリングを入れてしまえばいいだろう
リファクタリングの結果がすぐに出やすく、デメリットであるリファクタリング起因の不具合についても
改修が多ければ多いほど、リファクタリング起因の不具合減産と相殺されるからだ
リファクタリングの問題でやはり難しいのは改修頻度が低く失敗が許されない分野だ
これらの分野は製造工数とテスト工数の比でいうとテスト工数の割合が大きい
つまり、リファクタリングによって過大なテスト工数が必要となってしまい、リファクタリングのメリットが吹き飛んでしまう
しかしながら動いている箇所はいじらない方針もいつまでも続くわけじゃない
いつかのタイミングで全面リプレースするか、リファクタリング(もはや資料もなく知っている人もいない)を行うことになる
587仕様書無しさん
2018/04/24(火) 12:15:51.10 リファクタリングによって設計が改善されたと思ってるのはやった本人だけとかありがち
588仕様書無しさん
2018/04/24(火) 13:06:03.44 >>583
うちもそうだよ?
課レベルのシステム、部レベルのシステム、社レベルのシステム
があって、それぞれの長が変わったらシステムの仕様変更が最初の長の仕事になってる。
システムの見直しと再設計って、その部署の現在運用を把握するのに最適という理由で。
うちもそうだよ?
課レベルのシステム、部レベルのシステム、社レベルのシステム
があって、それぞれの長が変わったらシステムの仕様変更が最初の長の仕事になってる。
システムの見直しと再設計って、その部署の現在運用を把握するのに最適という理由で。
589仕様書無しさん
2018/04/24(火) 13:34:56.47 それはそのシステムで業務効率化はされてるんか...?
もはやマニュアルってレベルだろそれ
エンジニアしか理解できない仕事のマニュアル。
もはやマニュアルってレベルだろそれ
エンジニアしか理解できない仕事のマニュアル。
590仕様書無しさん
2018/04/24(火) 13:49:15.67 まず業務があってシステムを作るべきか ※日本風
システムのあわせて業務を再構築するべきか ※欧米風
どっちがいいんだろうね
システムのあわせて業務を再構築するべきか ※欧米風
どっちがいいんだろうね
591仕様書無しさん
2018/04/24(火) 14:48:59.76593仕様書無しさん
2018/04/24(火) 18:11:05.66 >>592
セブンミール時代からたまに使ってるけど、たしかに使いづらくなった。
けど、冷静に考えると。今のレベルのシステムを一応作れたなら。元々のシステムも実装できる。
運用方針を新システム化した際に「顧客のニーズ」を取り入れるために店長に聞いたら。
「店長のニーズ」を取り入れちゃったんだろうwww
ただ、「店長のニーズ」も旧システムで現実に起こってる問題の結果で、
さらに、現在、店舗自体が人手不足に陥ってるから配達要員、商品供給ライン等で
旧システムであっても実際には様々な遅延等々があったんだろう。
おそらく、システムの使いづらさの原因は、まさかのアナログな「現場の配達に要する人手不足」だと思うわw
セブンミール時代からたまに使ってるけど、たしかに使いづらくなった。
けど、冷静に考えると。今のレベルのシステムを一応作れたなら。元々のシステムも実装できる。
運用方針を新システム化した際に「顧客のニーズ」を取り入れるために店長に聞いたら。
「店長のニーズ」を取り入れちゃったんだろうwww
ただ、「店長のニーズ」も旧システムで現実に起こってる問題の結果で、
さらに、現在、店舗自体が人手不足に陥ってるから配達要員、商品供給ライン等で
旧システムであっても実際には様々な遅延等々があったんだろう。
おそらく、システムの使いづらさの原因は、まさかのアナログな「現場の配達に要する人手不足」だと思うわw
595仕様書無しさん
2018/04/24(火) 18:32:53.31 リリース前のコードまで
ガチガチに変更管理してる
現場ってあんの?
ガチガチに変更管理してる
現場ってあんの?
600仕様書無しさん
2018/04/24(火) 19:22:18.29 ボタン押すだけとか前時代的すぎるwww
今はもうpushするだけの時代だぞ爺さん
今はもうpushするだけの時代だぞ爺さん
602仕様書無しさん
2018/04/24(火) 20:45:57.41 >>586
> 常に機能追加や改修しているようなソフトウェアであればリファクタリングは有効
> 一度作ったらあまり改修しないようなソフトウェアであればリファクタリングのデメリットが目立つ
やっぱりまだ勘違いしてる。
リファクタリングが、一度作った後に行うものだと、まだ勘違いしている。
一度目であっても、作ってる最中に、こまめにリファクタリングしていくもの
という考えがどうしても理解できないらしい
それとも詳細設計というものがあって、そこに最初から
すべてのクラス、関数、引数がプライベートのものまで
全部網羅されてるとでもいうのか?
> 常に機能追加や改修しているようなソフトウェアであればリファクタリングは有効
> 一度作ったらあまり改修しないようなソフトウェアであればリファクタリングのデメリットが目立つ
やっぱりまだ勘違いしてる。
リファクタリングが、一度作った後に行うものだと、まだ勘違いしている。
一度目であっても、作ってる最中に、こまめにリファクタリングしていくもの
という考えがどうしても理解できないらしい
それとも詳細設計というものがあって、そこに最初から
すべてのクラス、関数、引数がプライベートのものまで
全部網羅されてるとでもいうのか?
603仕様書無しさん
2018/04/24(火) 20:48:25.79 >>601
> 変更中で清書する前のコードならpushしねえよ
書きかけではなく本当に清書?
清書前でも理解しにくいだけで動くが、
理解しやすくために清書するってこと?
ならそれはリファクタリングに相当するね
もちろんちゃんとした手順でやらないといけないが
> 変更中で清書する前のコードならpushしねえよ
書きかけではなく本当に清書?
清書前でも理解しにくいだけで動くが、
理解しやすくために清書するってこと?
ならそれはリファクタリングに相当するね
もちろんちゃんとした手順でやらないといけないが
605仕様書無しさん
2018/04/24(火) 20:52:29.27 >>587
> リファクタリングによって設計が改善されたと思ってるのはやった本人だけとかありがち
そういうレベルの人たちしかいないなら、
コードメトリクスを測定するツールで客観的に
判断したほうがよいだろう。
> リファクタリングによって設計が改善されたと思ってるのはやった本人だけとかありがち
そういうレベルの人たちしかいないなら、
コードメトリクスを測定するツールで客観的に
判断したほうがよいだろう。
606仕様書無しさん
2018/04/24(火) 21:01:28.79608仕様書無しさん
2018/04/24(火) 21:15:31.28 >>586
> リファクタリングの問題でやはり難しいのは改修頻度が低く失敗が許されない分野だ
そういう分野で、循環的複雑度100オーバーの関数1000個のソフトウェアを
修正させたらどんなにテストしていたとしても修正のたびにバグ入れると思うよ。
どうやってこの問題を解決する?
何十回、何百回もテストするかい?それこそ過大なテスト工数だよね。
テストを一回やったらバグが全て見つかり一回の修正で全部直る。
修正後の再テストはバグが見つかった所だけでOK。とか思ってないか?
参考 循環的複雑度は
50以上でテスト不可能 バグ混入確率70%
75以上でいかなる変更も誤修正を生む バグ混入確率98%
と言われている。10以下にするのが普通
とここまで書いて思ったが、どんなコードが良いコードなのかわからない人は
実際にダメなコードの複雑度がどれくらいなのか具体的な数値を示さないと
わからないだろうな。どこかにサンプルないだろうか
> リファクタリングの問題でやはり難しいのは改修頻度が低く失敗が許されない分野だ
そういう分野で、循環的複雑度100オーバーの関数1000個のソフトウェアを
修正させたらどんなにテストしていたとしても修正のたびにバグ入れると思うよ。
どうやってこの問題を解決する?
何十回、何百回もテストするかい?それこそ過大なテスト工数だよね。
テストを一回やったらバグが全て見つかり一回の修正で全部直る。
修正後の再テストはバグが見つかった所だけでOK。とか思ってないか?
参考 循環的複雑度は
50以上でテスト不可能 バグ混入確率70%
75以上でいかなる変更も誤修正を生む バグ混入確率98%
と言われている。10以下にするのが普通
とここまで書いて思ったが、どんなコードが良いコードなのかわからない人は
実際にダメなコードの複雑度がどれくらいなのか具体的な数値を示さないと
わからないだろうな。どこかにサンプルないだろうか
609仕様書無しさん
2018/04/24(火) 21:16:39.31 >>607
> ツールで測定できるレベル(抽象度的な意味で)じゃ設計の善し悪しは測れないんで
だから自分たちで、判断できないレベルの人ばっかりなところだって、
ツールは測定するため物で、ちゃんと測定できますってw
完璧なものはわからないかもしれないけど、少なくともツールで
大きくだめだって言われた所は、マジでだめ
> ツールで測定できるレベル(抽象度的な意味で)じゃ設計の善し悪しは測れないんで
だから自分たちで、判断できないレベルの人ばっかりなところだって、
ツールは測定するため物で、ちゃんと測定できますってw
完璧なものはわからないかもしれないけど、少なくともツールで
大きくだめだって言われた所は、マジでだめ
612仕様書無しさん
2018/04/24(火) 21:24:58.14613仕様書無しさん
2018/04/24(火) 21:26:26.40 リファクタリングとかやっちゃうお前らだと、給料っていくらぐらい?
614仕様書無しさん
2018/04/24(火) 21:34:10.80616仕様書無しさん
2018/04/24(火) 21:57:22.40 トップクラスの企業ってGoogleとかじゃないの?
617仕様書無しさん
2018/04/24(火) 22:10:14.59 自分の書いたコードが汚すぎて死ぬ
621仕様書無しさん
2018/04/25(水) 00:01:43.85 トップクラスの企業って言葉で連想するのはメーカー子会社の協力企業あたりだな
GoogleやAmazonを表現するのにトップクラスの企業って言葉じゃ足りない
GoogleやAmazonを表現するのにトップクラスの企業って言葉じゃ足りない
622仕様書無しさん
2018/04/25(水) 00:12:23.85 株式会社トップクラス
623仕様書無しさん
2018/04/25(水) 00:27:05.94 FAMGAは企業を超えたよくわからないシステム
624仕様書無しさん
2018/04/25(水) 01:31:18.64626仕様書無しさん
2018/04/25(水) 08:41:32.66 組織と自分の履歴サーバを別けている
日本のリファクタリングあるある
日本のリファクタリングあるある
627仕様書無しさん
2018/04/25(水) 17:33:16.56 人気グループ「TOKIO」の山口達也メンバーが、自宅マンションの部屋で女子高校生に無理やりキスをするなどの行為をしたとして、警視庁は強制わいせつの疑いで書類送検しました。
全文は以下
https://www3.nhk.or.jp/news/html/20180425/k10011417181000.html
全文は以下
https://www3.nhk.or.jp/news/html/20180425/k10011417181000.html
630仕様書無しさん
2018/04/25(水) 18:43:41.61 レビューしないのかな?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 今年の漢字 [ぐれ★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★4 [蚤の市★]
- あぼーん
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★3 [冬月記者★]
- 今年の漢字は「熊」に決定! 相次ぐクマ被害 去年は「金」 [冬月記者★]
- 【老舗文具メーカー】「生成AIで制作していた」――サクラクレパス、“AI疑惑”ポスターの調査結果を報告 ★2 [ぐれ★]
- 一人殺したい奴がいる
- __トランプ、G7に代わる「Core 5」構想、米 中 露 印 日をまとめる巨大枠組み、世界秩序の再編につながる可能性 [827565401]
- 飲み水って買う?
- 【速報】今年の漢字、「熊」!wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 残クレタワマン、始まるwwwwwwwwwwwwwwwwwwwwwwwww [329329848]
- 【速報】今年のゲームオブザイヤー、Clair Obscur: Expedition 33 [779938112]
