リファクタリングすると全部テストしろと言ってくる奴の矛盾2
レス数が1000を超えています。これ以上書き込みはできません。
機能追加や変更した時に、全部テストしてるでしょ?
いつもやってることじゃん
前スレ
リファクタリングすると全部テストしろと言ってくるやつの矛盾
https://medaka.5ch.net/test/read.cgi/prog/1523765624/ アンチは論破された。泣き崩れている。
ウソと詭弁で自分を守ることしかできていない。
様々な証拠がリファクタリングの有用性を示している。
マイクロソフトもリファクタリングをしていた。
Googleもリファクタリングをしていた
Appleもリファクタリングをしていた。
もう誰にも止められない。
アンチはウソと詭弁を繰り返すだけ 嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき
嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき
嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき
嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき
嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき
嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき
嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき
嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき
嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき
嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき嘘つき >>4
もう論破されてる。いくらやっても負け犬の遠吠えにしかならない。
金を稼いでいる所は全てリファクタリングしてる そろそろリファクタリングよりもそれをする頭の悪い>>2自身が全ての元凶だって気がついた? >>5
犯罪者はパンを食べている理論に通じるものがあるな リファクタリングを定義することから始めないと
それぞれの話が噛み合わないかもわからんね リファクタリングなど全ての人間が持っているやり直したい欲求の大義名分にすぎんのだから定義など無理なのだよ マーチンファウラーは悔しかったら使えるアプリ作ってみろよ
ハゲなんか信用できないんだよ マーチンファウラーは所詮有名な技術書を出しているだけのやつ
仕事している俺(>>10)の方がすごいに決まってる 2000年3月から、ThoughtWorks社に主席技術者として勤務している[1]。同社は、システムインテグレーションとコンサルティングを業務とする会社である。
SIかあ アメリカのシステムインテグレーションなんて
ろくなもんないだろ
SIなら日本が最高だよ >>12
いや、アレ詐欺師だろ
なんの実績もないじゃん
有名だと言うことにして売り込んでいる何かだ 言っとくけど有名な技術書書いたって実績とは認めないからな
うちの新人の初めのコードコミットのほうが何倍も価値がある >>17
すまんがおまえんとこのコードには何の価値もない 雑誌社かソフトウェア会社か
そーゆーのの広告塔なんだろうな
なんの実績もねーのにあの祭り上げ方はおかしい 驚愕の事実拡散
創価の魔(仏罰、現証、非科学的な原始的発想)の正体は、米国が仕掛けてるAI
パトカーの付きまとい、咳払い、くしゃみ、芝刈機音、ドアバン、ヘリの飛行音、子供の奇声、ドアバンも全て、米国が仕掛けてるAIが、人を操ってやってる。救急車のノイズキャンペーンに至っては、サイレンで嫌がらせにする為だけに、重篤な病人を作り出す冷徹さ
集スト(ギャングストーカー、ガスライティング、コインテルプロ、自殺強要ストーキング)以外にも、病気、痛み、かゆみ、湿疹かぶれ、臭い、自殺、殺人、事故、火災、台風、地震等、この世の災い全て、クソダニ米国の腐れAIが、波動(周波数)を悪用して作り出したもの
真実は下に
http://bbs1.aimix-z.com/mtpt.cgi?room=pr02&mode=view&no=46
https://shinkamigo.wordpress.com 言っとくが、有名な技術書執筆は実績とは認めねーからな 世界中にどれだけ影響を与えようが本が売れようが
客から金をもらえる1行の方が価値がある だから給料を上げろ
マーチンファウラーよりも俺のほうが給料が高くあるべきだ 俺らは技術者なんだから技術についてちゃんと精査しないと駄目だってことだな 技術とはコードを書くことである
本を書くことは技術ではない マーチンファウラーを貶めると
自分の価値が上がるはず >>28
ただ、怪しいとは思っておいた方がいいよ
なんもやってねーのに名前だけがひとり歩きしてる 俺の会社じゃ有名な技術書書いても、
なにもやってないの同じだからなー >>30
売れるのはいいけど
それが役に立つかどうかは別の話じゃん
ホーキンス博士やでんじろう先生が役に立たないってわけじゃないけど
そればっかりでも駄目なんだよ そのとおりだ。世界中で有効活用されている本でも
俺のにとっては別だからな。
俺が理解できないとどんな本も役立たずだ >>33
有効活用されているのか?
そこを精査しなければならない >>34
じゃあ言い出しっぺが
精査の方法を出してくれ
技術書一般に当てはまるやつ Amazonの評価とかでいいんやないか?
他にもっといい案があればよろしく
なければこれで 企業が発表する技術を精査するのは雑音が多くて大変だ
敵はマーチンファウラーなんて実績の無いおっさんを有名人に仕立て上げることができる強敵だ
ネームバリューに負けて中身を見れないような雑魚は
そもそも技術書なんか手に取るべきでは無かった 日本のAmazonだと翻訳が悪くて〜っていうのがあるので
アメリカのAmazonでの評価にしよう
そっちの方がレビュー多そうだし 他にいい案はないかな?
ないならamazon.comの評価で判断するけど リファクタはプログラマ自身のためのもの
街並みがきれいなところに住むと幸福度が上がるように
自分の作ったコードがきれいに整頓されていると居心地が良い
効率?物の価値のわからんやっちゃな
プログラマになったら人生の3分の1をコードと共に過ごすんだぞ そもそもお前らはどうなの?
世間一般的に役に立つとされる技術を身に着けて、まわりから役に立つとされる評価が欲しいのか?
本当に開発の役に立つ技術が欲しいのか?
前者であればハゲに同調するのも正しい選択なんだ >>42
それって君の感想じゃん
なんかどういう仕組みでお金になるのか説明できる資料はないの? このままだと本が有用かどうかがamazon.comでの
評価になっちゃうよ?それでいいの? 5ちゃんねるには見えないIDでNGにする方法があるのだ
その方法は教えられないがな >>44
最終的には金が入ると嬉しいのだって人間の感想じゃないか 仕事は遊びじゃない。楽しいと思った時点で
それは仕事じゃないんだよ。金を稼ぐことだけ考えてろ 満場一致ってことでAmazonでの評価が高ければ、
世界中で有効活用されているとみなします。 マーチンファウラーの本すごいな。
世界中で有効活用されてるじゃん は?Amazonの評価なんて認めるわけねーじゃん。ばーかーばーか >>51
そう、そこまで肯定してしまうと
彼らの虚業にも正当性ができてしまう
彼らははじめからかあるいはいつの時点からか
全く役に立たない技術をさも役に立つかのように
無料で公開し関連の商品で儲けるようになった
それの何が悪いのかと?
言われると何も悪くはない >>56
遅すぎw 他に代替案出せなかったお前の負け
負け犬は負け犬らしく遠吠え吐いて逃げなさい >>57
> 彼らははじめからかあるいはいつの時点からか
> 全く役に立たない技術をさも役に立つかのように
あー、君。悪いんだけどマーチンファウラーの書籍は
Amazonの評価で役に立つって証明されたばかりなんだわ
その結果を無視せんといてな 無視してるのはわざとだろw
わざとであることを指摘したら
可愛そうじゃないかw 反論のなにも、そうやって仕事失った人がいますよ。
改良してください→「動いているからいじりません」
バグ修正してください→「動いているからいじりません」 >>59
証明はされてないんじゃないかな
どっかの誰かが賛同したかもしれないけど
それが正しいかは別の話でしょ
もっと論理的に考えなよ
君プログラマーなの? >>64
もっといい案を出せなかった時点で
お前の言葉には説得力がない >>64
おまえらのような有象無象の馬鹿に多くの賛同が得られたという事は
すなわちその評価を得た対象は正しくないという事を意味する
これが論理的な考え方というものだ 賢いのが世間と違うこというのって自分の知識や経験で判断してるからじゃん
世間が世間のいうこと鵜呑みにするのは、だいたいはそれなりに世間が正しくてなんとかなってるからで
それだけを根拠にその逆に判断するのって最悪じゃね? 馬鹿の直感と真実が一致してるかどうかが重要
1+1は馬鹿の直感も真実も2になるので馬鹿の逆張りをしてはいけない
量子力学のような直感と真実が一致しない問題や、巧妙に思考を誘導する引っ掛け問題に対しては馬鹿の逆張りをした方が有利となる
そもそも馬鹿の答えは白紙になるってツッコミはなしな マーチンファウラーが直近でなんかソフトの一つでも作ってりゃなぁ
でも実績を見ると典型的な詐欺師だね
テメ、ソフトウェア作ったことあんのかよハゲ
と ジャップの財政破綻、早く来い。
俺を笑った奴らが真でいくのを笑い返して復習してやる。 >>85
テストはできる。ただ時間がかかるから
コストも掛かるだけだ とても簡単な自宅で稼げる方法
参考までに書いておきます
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
4TTGQ コストがかかるとテスト回数を減らすだろ
テストってのは何回もやらなきゃダメなんだよ
1回だけじゃたまたまテスト通っただけかもしれんぞ
これは数学的にも正しいことが証明されてるから国外の大手機械メーカーなどは凄まじい回数のテストを繰り返す アプリケーションのリファクタリングは実はそんなに重要じゃない
データベースのリファクタリングしろマジで リファクタリングを読みやすくするものだとすると
データベースよりもアプリケーションの方が
よく読む >>91
不確定要因をソフトにてんこ盛りにする奴が無能なだけ。 不確定要素が無いことを証明できない限り不確定要素が無いからテストは1回でいいとは言えない
そんなことは物理的に不可能なのでテスト回数を増やしてこの程度の確率でなら正常動作を保証しますとしか言えんのだよ
科学的な実験をしたことのある理系ならわかってることだけどね バグが無いことを証明できないからテストするしかないっていう テストしなくちゃいけない
↓
日本凄い
↓
俺凄い >>95
お前さんにはコスト意識がないのは分かった。 リファクタリングって・・・
聞いてるこっちが恥ずかしくなるぜ
マー○ンファ○ラーってのは詐欺師のヘビー級チャンピオンの事
お前ら信者がやっているのは過労によるハゲの量産化
技術者は世の中を便利にするために行動しようとするものだが
信者どもはありもしない仕様変更を想定してリファクタリングとか言ってるわけだろ?
リファクタリングとか聞くたびに思ってたのよ
「今回の○○は△△に対応してるのでいくつでも追加可能にしておきました」
これって訳すと「設計書通りに実装しませんでした」
って事だろ
プログラマとか関係なく
世界中の生物を賢い順に並べたら
お前は先頭どころか下から数えた方が早いんじゃねーか? >>101
ん?違うよ
ファウラーのリファクタリングを読み返して理解してからまた来なよ >>103
1. 俺の理解によるとマーチンファウラーは詐欺師である
2. 詐欺師は信用してはいけない
3. 詐欺師であることを見抜いた俺はすごい 大規模リファクタリングって普通それを作った・大きく関わってきたメンバーが入るもんだよね ノルマこなした上でちゃんとテスト書くならリファクタリングしていいよって言われたから取り組んでるんだが
DB層が腐りきってるからどうにもならんという事に気が付いた
DB層を無視してDB層より上を綺麗にしようたってそうはいかないんだ
ビジネスロジックやプレゼンテーションロジックを大量に含む
テーブルやビューが複雑怪奇に絡まりあって何がどこにあるかさっぱりわからない
理解不能で長大なプロシージャが大量にある
どのアプリケーションがそのDBを参照してるかの資料すら無い
そんな腐りきった巨大な企業データベースをリファクタリングする体系的なテクニックって無いものか 難しい構造なのに無理矢理
簡単(?)な構造に押し込めるから
余計におかしくなってしまうんよ >>109
設計やプログラミングを体系的に学ぶ方法はなんぼでもあるんやで
これを機会に1から学びなおしてみたらどうや無能くん リファクタの許可がでたら
企業の既存大規模DBの刷新を考えだす新人w
古いのはもういろいろプログラムが紐づいてるから個人で変更は難しい
お前の脳をDBに合わせてリファクタしたほうが
将来にわたって絶対楽
https://qiita.com/opengl-8080/items/37beac5e210f5363af4b お前らは何もわかってねえよ
ドメインロジックはおろかプレゼンテーションロジックまでデータベースを侵食しているシステムのヤバさをな
ホストアプリケーションのちょっとした変更がデータベースを破壊する
そんな地獄をたっぷりと味わってから出直してこい >>112
ただのバージョン管理じゃん
機械的な等価変換もできないしテスト支援でもない
ストアドにもホストアプリケーションにも非対応
リファクタリングとは名ばかり >>113
なんやそれw
「大人は何もわかってくれない」的なwwww
おまえリアル中二やな無能www マーチン・ファウラー : 数十年にわたってビジネスへのオブジェクト指向の適用に尽力する独立コンサルタント。
ヘルスケア、金融取引、企業財務などの分野におけるシステムのコンサル経験を持つ。
顧客にはクライスラー、シティバンク、英国民保健サービス、アンダーセン・コンサルティング、
ネットスケープ・コミュニケーションズなどが名を連ねる すごい実績だな
そんなファウラーが言うなら間違いない
JavaScriptのリファクタリング本楽しみ その人のリファクタリング本持ってるけど
そんなに目から鱗なこと書いてあるか?って思ったけどな 今や常識だからな
地球が太陽の周りを回っているのだって現代人に行ってもなにを今更ってなるじゃん?
それと同じ
でも常識を定着させるのって大変なんだぜ アルゴリズムを考える人より
アルゴリズムを特定の言語で実装するほうが
偉いに決まってるだろ マーチンファウラーはRailsのActiveRecordの基本を考えただけ
それを実装したRailsの開発者のほうがすごい
そのActiveRecordを使いこなしている俺のほうがもっとすごい
やつはリファクタリングを考え出しただけ
使いこなしている俺のほうがもっとすごい マーチンファウラーはRailsのActiveRecordの基本を考えただけ
それを実装したRailsの開発者のほうがすごい
そのActiveRecordを使いこなしている俺のほうがもっとすごい
やつはリファクタリングを考え出しただけ
使いこなしている俺のほうがもっとすごい >>128
サービス使うだけのオレの方がもっとすごい 普通に考えて丸投げされてる方がすごいやんコーダーさん >>132
コーダーに丸投げしてる自覚ないのかお前 本当に頑張っても問題が解決できないなら
その頑張りが問題を解決できない原因です。 >>134
は?コーダーさんすごいね言うとるやん
何を言うとるんやおのれは?w リファクタ厨はマーチンファウラーのハゲがバレて逃げちゃったんだろ? >>137
ハゲにコンプレックス持ってる奴は、そういう発想がナチュラルに出て来るんだな。 まさか、あのマー○ンファ○ラーがハゲとか誰も予想だにしなかったよね リファクタリング出来る環境なら、テストも自動化されてるはずだよな?
まさか手作業でリファクタリングしてるとか? 手作業でテストしている所が
リファクタリングに文句つけてるんだろうね テストがないとリファクタリングできない
リファクタリングしないとテストが整備できない
はい終わり
リファクタリングは机上の空論 最近のビジュアルスタジオって、そここっちのコードの方が良いよって言って来るよな? >>146
え?テストができないコードをどうやって今修正してるの?
修正できるならいくらでもテストできるように修正できるはずだよね? >>148
手作業で必要なテストをするだけ
悪いけどこっちはリファクタリング厨みたいに無計画じゃないから安定的でバグはそんなに出ないんだわ
なので手作業のテストで変更を十分カバーできるのな >>149
じゃあ手作業でテストすればリファクタリングできるね(大爆笑)
おら?どうした?墓穴踏んだ気分はwwww >>143
お前は自動テストだけやって製品出荷するつもりか? コードレビューとかうざすぎる
うごきゃいんだよ動きゃ
汎用性なんか知るか
全部コードベタ書きにしてやるわ 綺麗なコードを書いてリファクタリングを繰り返したほうが楽に動くコードを維持できると思うんだが 動かすだけなら汚くてもいい
綺麗に書いたら時間がかかるって前提がまず狂ってる 汚いコードを書いてリファクタリングしたら時間かかったが? それは汚いままだともっと時間がかかってたんだよ
リファクタリングしたことによって被害が最小化した btnSearch_Click(object sender, EventArgs e) {
string sql = "select * from ... where ...";
DataTable t = new DataTable();
g_Database.CommandText = sql;
g_Database.Parameters.Add("unko", txtUnko.Text);
g_Database.Fill(t);
grid1.DataSource = t;
}
こうやって汚くても別にええねん
そんなんより爆速でコーディングしたほうがええで
リポジトリとかドメインサービスとかアホくさwww 上のコードなら3分で書ける
コードもシンプルで誰が見てもわかりやすい
リポジトリやらドメインサービスやらおバカなことをやりだすとクラスが一気に増えて意味不明になる
コーディング時間も10倍じゃ足らんくなる
世間一般で言う綺麗なコードを書くのは実は非合理的なんやな
コンサルさんはそれでお金貰っとるから綺麗に書かなアカンって洗脳しようと企んどるようやけど騙されへんで このように、たったこれだけのコードが
自分が作っているものの全てだと
言ってるような人の浅い考えなのです なんや論理的反論できひんなら素直にそう言いや
負け惜しみはみっともないで 悔しかったら、自分が普段どれだけのコードを書いてるのか言ってみいや
100行か? 1000行か? 普段1万行とか普通に書いてる人間に
たった10行のコード持ってきて
ほら、この場合はいらないでしょ?と言われてもな(苦笑) 上のコードなら3分で書けるといっただろ?
10行で3分なら、100行で30分、1000行で300分
1万行でも3000分だ。50時間、2日あればできる量だ
いちいちリファクタリングする意味はない リポジトリやらドメインサービスやらくだらない余計なクラスを書くから何万行も無駄なステップ数が生じるんやで >>174
ソースが追えない
インターフェース読んでる箇所全部見ないといけない
動かさないと挙動がわからない
動かせないときの開発のヤバさは異常 設計者が何のためにインターフェース切って疎結合にしたのかわかってないのでは?
インターフェースの先まで見に行かないとクライアントを保守できないとしたら
それは設計が間違ってるからインターフェースを超えて結合しちゃってるんだよ 動かせないってのも何言ってんだかって感じだね
モックを書くって発想がないのかな?
ユニットテストしてないの?
ユニットテストは個別に動かすこともできるよ >>179
同じインターフェースでほとんど似てる機能なんだから機能重複しまくりだと思うけど見たら負けなの? >>180
モックを書かないとどうしようもないんだよね? >>178
ソースが追えないってのは能力不足かメモ帳使ってるかだろ >>183
え?自分で呼び出し口で違いがわからないようにしたんだよね?
知る必要がないってことで
忘れちゃったの?
だからそこは追えないのが正解でしょ? >>179
リリースした後のバグっていうのは通常アプリケーションを
使っているときに見つかるんだわ
○○という設定でボタンをクリックしたときとか
で、実際のバグはそのクリックを行って実行する処理の
どこかのモジュールに存在する。
その時、インターフェースの先を見ないでバグのある箇所を
見つけることはできないよ。だってインターフェースの先に
バグがあるんだから >>182
モックはなるべく書かないほうが良い。
なぜならモックはOKだけど、実際のアプリでは
バグになることがあるから
なお、インターフェースはモックにすり替えるためにあるのではなく
同じインターフェースを持つ複数のモジュールを使うためにある
テストを用意にするためでも疎結合にするためでもない c#のinterfaceでソースが追えないってのは、そもそも追い方からして間違ってる気がする
追加や保守なら何も考えずに呼び出し履歴追って修正に対する影響範囲調べりゃいいだけだし、それでクラス設計やデザインパターン機構の根っこを弄らんといけないなら、大改修だろ。
そもそも別の手がないか考えろよってのもある 修正に対する影響範囲調べて
それでどうやって最初から存在するバグを見つけられるの? どんなクソコードも解読して作り直すみたいな
特殊能力持った奴も中にはいるのかな 最低限ユニットテストしておけよってことじゃないのか ハ_ハ _
∩゚∀゚)ノ 飛べるよ!
) /
(_ノ_ノ
彡
.
_,,..-―'"⌒"~ ̄"~⌒゙゙"'''ョ
゙~,,,....-=-‐√"゙゙T"~ ̄Y"゙=ミ
T | l,_,,/\ ,,/l |
,.-r '"l\,,j / |/ L,,,/
,,/|,/\,/ _,|\_,i_,,,/ /
_V\ ,,/\,| ,,∧,,|_/ ポケモン
デジモン
やれるもん
ヤダモン
ドラえもん
やれるもん 設計書の段階でリプレースしてえ
日本のSEさん設計能力低すぎてアーキテクチャすら定まってない >>187
うまくいってる間はいいけど
発生率の低いバグが出たときに
インターフェースは死ぬ
動かしてみないと何が生成されてるのかわからないうえに
影響範囲はインターフェースをもつクラス全部になる
一つ一つ可能性を排除していく作業を行わなければならない >>194
右クリックもできないの?それとも本当にメモ帳使ってんの? >>198
え?具体的に右クリックからどうやって追ってくの?
そもそも知らなくていいってのが君の主張だったよね?
何、一生懸命できるみたいなこと言ってるの?
必要ないんでしょ? 本当にインターフェイスから実装に飛べないやつなんているのかよ… >>205
具体的にどうやるの?
全部見るしかないでしょ? インターフェースの契約をテストするコードを書いて実装クラス全部についてテスト実行するだけだろ
それでオールグリーンならインターフェースの先がなんだろうと関係ない
バグはクライアントクラスにあるとわかる
もちろんレッドが出たらインターフェースのどの実装クラスが犯人か即座にわかる >>210
テストでバグがないことが証明できるなら
そうだろうな。
実際はテストはバグを見つけることはできても
バグがないことの証明にはならない。
いくらインターフェースの契約をテストするコードを書いても
そこにバグがないことにはならないんだよ
結局バグを見つけるために、インターフェースの呼び出し側が悪いのか
呼び出し先が悪いのか、特定の実装クラスだけで起こる問題なのか
探し回る必要がある >>211
なるよ
それが契約というものなんだよ
契約はそうあれと定められたものだからね
どんなにおかしい動きをしていても契約どおりならインターフェース実装クラスはバグではない
そのおかしな動きに対応していないクライアントクラスがバグってこと
逆に対応してるのにおかしいならインターフェース実装クラスが契約に違反したバグクラスってこと
契約そのものが矛盾してるってこともあるけどそれは契約が間違っているわけではなく
すべてのインターフェース実装クラスが間違っているということになる
それはそれで赤信号が出まくるからすぐにわかる
バグではないが役に立たない矛盾した契約を解消しようってことになるね ちなみにその矛盾した契約ってのはバグよりも遥かに発生しにくい
契約は実装よりもずっとシンプルだからね
なのでほぼすべてのケースで契約をテストするだけでクライアント側かインターフェース実装側のどちらかが悪いか決着がつく >>213
> なるよ
> それが契約というものなんだよ
> 契約はそうあれと定められたものだからね
根拠なしにそう言われてもなー
まずそう定められたものとか
嘘言わないで理由を言おうか 人間はミスする
故に人間が作ったものに完璧はない。
「契約」が人間が作ったものであれば
完璧なものは存在しないのでバグない証明にはならない インターフェースに間違いって言われてもなぁ?
本当は200Vが欲しいんだけど
家庭用に普及してるのは100Vなんだよね
これがインターフェースの本質だろ
みんなで使うためにとりあえず1つの型にハメる
そこにベストは存在しねーんだよ
それでも型を作ることにメリットがあるとしたときに初めて威力を発揮する仕組みがインターフェースだろ
ぶっちゃけオーダーメイドのビジネスアプリにこんなもん適用してる奴
頭が悪いだろ バグってるインターフェースは存在しない
嘘だと思うなら何か例を挙げてみな
絶対の不可能だから >>219
ちがう
「200Vでなければならない」
が本質
「100Vしかないから変圧して200Vにしよう」
これは実装 >>220
論点がおかしい。
いくらテストしても、バグがないことは証明できず
いざバグが発生したとなったときに、
インターフェースの呼び出し側に問題があるか
呼び出し先にあるのかわからないから
インターフェースの先まで調べないといけないって話だろ >>222
インターフェースにはバグは無い
実装にバグがあるか
クライアントにバグがある >>224
頭悪いのかな?
バグっていうのは特定の場合のテストを
してない(正しく行われてない)から発生するんだよ
バグが後から発覚することからもわかるように
そりゃテストすればわかるが、
テストしてないって状況が存在する
テストしてない場合にどうやってわかるの? >>225
テスト実施してない場合はテスト実施してください
大丈夫ですかあなた? プロフェッショナルならログを取ろう
スタックトレースを見れば実行時型はすぐわかる
インターフェースへのIOをログして仕様通りか確認すれば即座に具象クラスのバグかどうかわかる
具象クラスのバグじゃなければモックでIOを再現すれば新しいテストケースになる
どんなバグも定数時間で解ける 無理だな
ゲームでよくあるごった煮リストだろ?
上履きとか黒板消しも鍋に入ってるし >>226
テストしてもバグが出るんですよ。
知らないんですか? テストすればバグを無くせると
いう、壮大な勘違い。 >>227
だからそれ実行しないとわかんないって言ってるんでしょ?
インターフェースなんてゴミ機能使うからこのザマなわけ ソース見てもわからないソースにしたわけだ
実行しないとわからないクソソースって理解できた? >>235
全部見ればなw
インターフェースは呪いだ
こいつを通すと問答無用で全部読まなければならなくなる
普通は不具合がでてもいいように影響範囲を絞るように組むものだが
こいつは同じインターフェースを使う奴全員を問答無用で容疑者にする
プロジェクトを破綻させたいならオススメの手法 ソース見ればわかるよ
インターフェースが使われていると大変だけど >>236
影響範囲を極限まで絞るためのインターフェース
もし直接参照したら連鎖的に影響が広がりコードベース全体が影響範囲になってしまう
インターフェースできっとけばあらゆる影響が局所化する >>238
じゃ、どのクラスがバグってるのか言ってご覧よ そもそも違いを知らなくていいように自分でしたのに特定なんかできるわけないじゃん
自分が何をやってるのかわかってる?
君が作ってるのはごった煮リストって言われる闇鍋 例えばインターフェースが以下のようなものだったとしよう
interface Foo {
void method1();
void method2(int i);
}
この時、インターフェースを守っていなければ、
呼び出し側にバグがあるし
インターフェースを守っていれば、
呼び出し先にバグがある
プログラムでバグが発生したら、Fooのインターフェース
具体的には、method1を引数無しで呼び出しているか?
method2をint引数一つで呼び出しているか?
を確認すれば良い。
このインターフェースを守っていれば、呼び出し側にはバグはなく
呼び出し先にバグが有るということだ インターフェースの先がどうなってるかは気にしなくていい
気にしなければならないなら設計ミス 呼び出し先にバグがあるなら、呼び出し先を見ないといけない
↓
どうやって呼び出し先を特定するの?
が疑問らしいよ。騒いでいる人は。 >>243
テスト書いて実行
赤くなったやつが犯人 >>244
実行しないとわかんないクソソースなんだろ?
どうしてそこを認めないの? >>246
インターフェースの先は絶対にバグらない
そういう世界に書き換えておいた DIコンテナにインターフェースの実装クラスは
これを使いますって書くじゃんすぐ分かるじゃん >>248
知る必要は無いんじゃないの?
なんでそんなことしたの? >>245
実行すりゃいいじゃん
ソースを目視チェックするより簡単だよ >>249
インターフェースの利用側は知らなくていいだけ。
インターフェースの提供側(DIコンテナ)でクラスを切り替えることにより、
利用側はコードを変えずに実装を変えられるのがメリット。 >>248
だからみんな99%のインターフェースは問題なしって認識で納得してるよ
実行時にダイナミックに型が変わる場合に限ってバグを出した型の特定が難しいからインターフェースはダメなんじゃないかと議論してるところ >>250
実行しないとわかんないクソソースだよね switch (kubun) {
case Kubum.Hoge:
// super long code
break;
case Kubun.Fuga:
// super long code
break;
case ...
}
インターフェース(あるいは抽象クラス)を使わないとなると
代わりにこういう異常なボリュームの分岐がアッチコッチに大量発生する
実行するまで分岐条件が決まらないからどの分岐を追いかければいいかわからない
実行しないでソーストレースするなら全ての分岐を見なければならない
それってインターフェース否定派の言ってることと同じだよね
しかも分岐バージョンの方はインターフェースや抽象クラスと違って各バリエーションがバラバラに引きちぎられてプログラム全体に散らばってるからトレースが死ぬほど大変 >>252
お前はifやswitchを使わずにコードを書くのか?
インターフェースの提供側にifやswitch文が出来たらコードを追えないの? >>255
インターフェースや抽象クラスに分離するほどのものでない小さく局所的な条件分岐ならコードを見ればいい
でも今はインターフェースや抽象との対比としての条件分岐を話題にしてる
その場合の条件分岐はとてもじゃないけどコードを追いかける気にはならないね >>254
だからさ
それは必要なコードじゃねーの?
バグったときにバグった箇所もわからないようなコードのどこがいいの?
極論を言うとプログラムなんて代入と四則演算と条件分岐を繰り返してるだけなので
それ以外は無駄な手間って言うならクラスも関数もいらねーよ 例えばインターフェースが以下のようなものだったとしよう
interface Foo {
void method1();
void method2(int i);
}
この時、インターフェースを守っていなければ、
呼び出し側にバグがあるし
インターフェースを守っていれば、
呼び出し先にバグがある
プログラムでバグが発生したら、Fooのインターフェース
具体的には、method1を引数無しで呼び出しているか?
method2をint引数一つで呼び出しているか?
を確認すれば良い。
このインターフェースを守っていれば、呼び出し側にはバグはなく
呼び出し先にバグが有るということだ >>251
> 利用側はコードを変えずに実装を変えられるのがメリット。
コードは変えませんが設定ファイルは変えます
って言いたいの? >>260
じゃあそもそも変える必要性がない場合は? >>256
>>252は実行時にダイナミックに型が変わる場合の話をしている >>263
変える必要性がある = インターフェースを使う
変える必要性がない = インターフェースは使わない
ってことでいいでしょうか? >>257
だからインターフェースや抽象クラスに対応する条件分岐はバグった時にバグった箇所もわからないクソコードなんだよ
インターフェースや抽象クラスを使えば原因の切り分け、再現コード(テストケース)の作成、詳細の分析、修正の妥当性確認(テスト)まで高速で実行できる
対応する条件分岐では不可能 >>265
え?何いってん?
そもそも型情報は必要ないって
潰しちゃってるのがインターフェースだよね?
知る必要もないってのが君の主張だったよね? やっぱりパソコンのたとえがわかりやすい
インターフェース使わない派は
メモリが壊れたらパソコンが壊れたものとしてパソコン全体を修理に出すしかない
パソコンとして結合してないとテストできないからどこが壊れたかもわからないのでぼったくられる
ひどい時は修理代が馬鹿にならんならいっそパソコン買い替えちゃうかともったいないことを言い出す
そそてメモリだけを高性能なものに替えたい場合でもパソコンを買い換えるしかない
インターフェース使う派は
メモリが壊れたらパソコンの部品を個別にテストしてメモリが壊れてると判断できる
メモリだけ買い替えればいいので最小限のコストでパソコンが復活する
メモリだけを高性能なものに替えたい場合は文字通りメモリだけを取り替えればいい インターフェースの先はバグらない世界に書き換えておいた >>268
> インターフェース使わない派は
> メモリが壊れたらパソコンが壊れたものとしてパソコン全体を修理に出すしかない
その方がいい場合もあるよね?
例えばパソコンが動かない!どこが壊れたんだ?ってなった時
パソコンに詳しくない人はメモリかどうかを切り分けられない
どうせ切り分けないんだから、丸ごとメーカーに出したほうが良いし
メーカーも丸ごと交換したほうが安くて早い
それほど人件費は高い >>273
ということは君はバグが発生する度にシステムリプレース案件立ち上げればいいんじゃないかな 普通ダイナミックライブラリにして複数のアプリ間で共通に使うものを定義するのに使うよな? >>274
バグをなおすこととインターフェースになんの関係があんの?
インターフェースを使っていようがいまいが、
バグの原因は一緒だろ
インターフェースを使わないからって
システムリプレースになるわけじゃない >>276
インターフェースを使わないと原因のスコープが広くなりすぎて全体に影響するんだよ >>277
インターフェース使わなくても、小さなモジュール(クラス)に分ければ十分では?
そもそもクラスですらなくても十分なC言語w 実行しないと原因わからんから糞って意見があるが、どんなソースでもログ仕込んだりしつつ実行するのが手っ取り早いだろとか思う。
んで、実行できないんだよボケとか言ってる奴らは、正にテスト出来ないソースを量産してる奴らってことだよな >>278
依存先を直に参照、インスタンス化すると親に埋め込まれてしまう
これは依存先にバグがあると親もバグがあるということな
再起的にあらゆるクラスが異常となる
インターフェースで依存を切っておけばそうならない >>280
その通り
クラスの実体に直接依存してしまうとインフラストラクチャにも依存することになる
すると全てのインフラストラクチャが整備されていないとテストもデバッグもできくなってしまう だからdllにして切り離せってのは、インターフェース介した作りかどうかと直接関係無いよな? >>281
> 依存先を直に参照、インスタンス化すると親に埋め込まれてしまう
> これは依存先にバグがあると親もバグがあるということな
意味が全くわからん
依存先にバグが有って、親にはバグがない
依存ざきにバグはなくて、親にはバグが有る
両方にバグが有る
どれの可能性も存在するが、
インターフェースに洗脳されているお前は
その可能性が思いつかないって話?
銀の弾丸はないんだよ?
インターフェースを使ったらバグがないとか
はは、ありえないww >>282
> すると全てのインフラストラクチャが整備されていないとテストもデバッグもできくなってしまう
そんなことはないが? テスト用のモックを使えば良いだけだよ >>284
まだわからないかー
子供用の説明ならどうだ?
依存先を直接参照インスタンス化するのは一体型パソコンと同じ
メモリが壊れてたらパソコン全体が壊れてることになるんだ
パソコン全体を修理に出すか買い替えてね
依存先をインターフェースで切るのは組み立て型のパソコンと同じ
メモリが壊れててもパソコンが壊れたことにはならないんだ
メモリだけを交換してね インターフェース定義しただけなら切り離されてないからなぁ。
きちんとリンクライブラリにして初めて切り離される。 >>284
いいや
インターフェースは最強だよ
バグるはずはないよ >>286
だからそれインターフェースと関係ないじゃん
モジュール(クラス)が壊れていたら
それを交換するだけだろ?
あとは、お前、はなっからメモリが壊れてるってことに
しているようだが、マザーボードのほうが壊れている場合だってあるんだぞ
インターフェースを使っていれば、絶対にメモリが壊れる
マザーボードが壊れることはないって言うつもりか? >>289
やれやれ
メモリが壊れてるのも何が壊れてるのも話の要点は同じだろ
例え話に変なツッコミ入れる人ってホント要点から目をそらしたがるよね >>290
あれ?インターフェースは関係ないというツッコミへの
レスはしないの?
これがたとえ話ではなく一番重要な点なんだが
反論できない所からは目をそらすんだねw >>291
は?
頓珍漢すぎてスルーしてたわ
パソコン部品はインターフェースの考え方を応用して成功した代表例だぞ?
インターフェース関係ないとかまじ大丈夫か? C#なのにインターフェイスから実装に飛べないなんて言ってるアホの妄言だから気にするな モノリスおじさん「インターフェースさん邪魔(うわあああ論理じゃ勝てない。そんだ!むかつくから悪口いったろwww)」
悲しいなぁ >>295
無理だろ
型情報を削っちまったんだから
それに知る必要がないんだろ?
主張に責任持てよw ものによるね
インターフェースや抽象クラスでやるべきものを無理やり条件分岐にしたようなものは追う気しないね
実装クラス全部見るより大変だよ >>300
ごった煮のクソッタレ条件分岐をインターフェースで綺麗に分離、パッケージングしたわけさ
インターフェース使わないとごった煮っていうのは同意 >>292
パソコンの話をしたいのなら
別の板に言ってください。
インターフェースは関係ありません そもそもさ、壊れたメモリを交換するのと
モジュールを修理するのは意味がぜんぜん違う。
パソコンにインターフェースがあってよかったというのは、
インターフェースさえ一緒なら、他のメーカーであっても
正常なメモリに交換できるからだ
だけどソフトウェアは違う。インターフェースが同じで
機能が全く一緒のものなんて、殆ど無い。
バグがあったら交換するのではなく、そのモジュール修正するのだから
インターフェースがあることと、バグの修正には全く関係がない >>301
ごった煮になるのはインターフェース使うからだろ?
フツーに組めよフツーにw >>303
メーカーの気持ちがわかってないね
君は開発者じゃなくてユーザーということなんだろう >>305
だからパソコンの話をしたいなら
他の板に逝けって言ったよね? >>304
フツーに組んだらインターフェースになんだって
オブジェクト指向でなんで手続き型丸出しの条件分岐地獄をワザワザ使わないといけないのか
マゾなのかな >>306
人間は異なる話題から共通性を認識して教訓とする能力がある >>306
その論法だとインターフェース使いたくないならプログラム板とプロフラマ板には入れないね
どちらもインターフェースと密接に関わる板だから >>308
>>303を読むと、パソコンのインターフェースと
ソフトウェアのインターフェースは共通してないことがわかる インターフェースは交換しやすいだけで
バグが修正しやすくなるわけじゃないんだな バグが修正しやすくなるぞ
お気に入りのバイクが壊れたけど壊れてるパーツを修理すれば動くとする
インターフェースを使わない派は
バイクが組みあがった状態で修理作業をしないといけないので修正が最悪にしにくい
修理した後もぶっつけ本番でテストしなきゃならんから最悪の場合それで他の部分が壊れる
インターフェースを使う派は
部品を外して壊れた部品だけを作業机に置いて修理できるので超やりやすい
直したら部品の単機能テストをして本体に組みこんでテストできるから安心 >>312
だからそれ、インターフェースがあるからじゃなくて
単にモジュールとして別れていればいいだけだよねw どうやってクラスAの中に埋め込まれているクラスBをテストするのか?
そりゃクラスBだけ取り出して、
テストすればいいだけでは? >>313
モジュールとして分けるためのインターフェースな
インターフェースなかったらモジュール化してもハンダで癒着させるしかない >>315
普通にインターフェース無くても分離できるけど?
あんた、クラスの仕様、かけない人? >>316
それは君が分離できてると思い込んでるだけ ソフトウェアだと全く同じものを複数作れるからな
半田で癒着したモジュールをテストする必要はない。
そのモジュール=クラスがあるのだから、
そのクラス単体でテストすれば良いだけ >>317
だからクラスAの中にあるクラスBを分離するんでしょ?
クラスBだけをテストすれば終わりじゃん
なにか難しいことでもあんの
クラスBはクラスAがなければテストできないわけじゃないんだしさぁ >>319
そもそもBは依存先がないのだからその例は無意味だな
ABが癒着していたらAを分離してテストする方法がないだろ ABが癒着していたら Aを分離してテストする方法がないだろ
であれば、
ABが癒着していなければ Aを分離してテストする方法がある
という意味になる
で、インターフェースを使うことは必須ではない
インターフェースを使わず、かつ癒着しないようにすれば良い インターフェースを使わなければ、
絶対癒着してしまうんだー、ブンブン(手足を振り回す音)
ガキじゃないんだから、理由ぐらい言えよw はい、ガキいっちょいただきましたーw
やっぱり理由言えませんでしたね。
想定どおりです。
ほんとガキ ABが癒着していなければな
しかしAがBに依存するなら癒着は不可避
インターフェースを使うしかない で、癒着してない例は?
それで任意のシステムを組める保証は?
できるったらできるんだーブンブン、ってかwww >>327
くだらね。そんなこともわからんのか。
じゃあ、ぐうの音も出ない例だしてやるよ。
Aという会社にClassAの作成を依頼しました。
ClassAは完成しテストはしっかり行われています。
ClassAはどこにも癒着していません
数年後、Bという会社に、ClassAを使ってClassBを作るように仕事を依頼しました。
仕事を依頼する前は、ClassAは癒着していません。
ClassAのコードはなにも変えてないのだから
仕事完了後も、ClassAはどこにも癒着していません つーかこんな茶番劇のような例を出さなくても
MSが作ったライブラリをラップしたオレオレライブラリが
癒着するわけ無いだろと
MSはそのライブラリ単体で開発・テストしてんだからさ >>328
意味不明
ClassBはClassAに依存しているから開発にもテストにもClassAが必要
もう少しまともな意見を期待してたんだがこりゃ話にならんかな >>329
オレオレラッパーはMSのライブラリと癒着してんだよ
そしてそのオレオレラッパーを使うクラスはオレオレラッパーに癒着する
癒着が連鎖してMSのライブラリに癒着することになる
オレオレラッパーをインターフェースを実装するように作れば
オレオレラッパーインターフェースを使うクラスは癒着から逃れられる > ClassBはClassAに依存しているから開発にもテストにもClassAが必要
ClassAならすでにあるじゃん?アホなの? >>332
それを癒着というんだよ
ClassAがあるからいいじゃんじゃなくてなかったらダメじゃんってのが正解な
ClassAがデータベースに依存してたらデータベースも整備しなきゃならん
ClassAが外部サービス依存してたら外部サービスと契約しなきゃいけない
そうやって癒着の連鎖が広がっていく 仮にClassBを動かすのにClassAがまだできていなかったとしても
モックを使えばいいだけなのでインターフェースは必要ない
まあClassAの偽物を使ってテストしても
それは本当に動くことの証明にはならないから、
最終的にはClassAを組み込んだ状態でテストしなければいけないんだがな >>334
> それを癒着というんだよ
言わない。ソフトウェア業界のどの文献を探しても
癒着なんて書いてあるものはない
勉強し直したほうが良いよ?
あんた自分の妄想の世界で生きてる >>334
> ClassAがデータベースに依存してたらデータベースも整備しなきゃならん
整備すればいい
> ClassAが外部サービス依存してたら外部サービスと契約しなきゃいけない
外部サービスのモックを使えばいい
接続先の切り替えは単に設定ファイルの接続先を変更するだけ >>335
それは言語機能的な意味でインターフェースを使っていないだけで
考え方としてはインターフェースを使って実装を切り替えるのと変わらんよ
インターフェースを使った場合との違いは手順が増えて面倒くさくなる >>336
文献ベースで話進めるなら世界中で言及されてるインターフェースを使うのが正義ってことになるぞ >>338
> それは言語機能的な意味でインターフェースを使っていないだけで
> 考え方としてはインターフェースを使って実装を切り替えるのと変わらんよ
はぁ? じゃあお前のその主張だと
すべてのクラスは、言語的な意味でのインターフェースを使ってないだけで
インターフェースを持っているので、別になにかを作る必要はないってことで終わりだな
はい、ClassAとClassBだけで十分ですーw
だって、インターフェースがあるのですからーw >>337
整備のコストがもったいない
モック使うって発想はインターフェース肯定だぞ >>341
テストなんだから完璧なものを作る必要はない >>340
インターフェースを使わない代わりに無駄なコストを呼び込んでるんだよ
古の時代では確かにビルド時のリンク設定を変えたりマクロ定数による分岐を使って実装の切り替えを行っていた
これは非常に原始的だけど依存性注入の原型と言っていい
だけどあまりに不安定で管理の手間がかかるから人類は新しい方法を考えた
それは抽象基底クラスや仮装メソッドだったりするがまだまだ実用には難があった
最終的に依存性を丸ごとインターフェースに切り出して外からインスタンス渡すのがいいねって進化した
君が言うようにインターフェースを使わなくても実装のの切り替えはできないことはないが
それはIT原始時代の非効率的で野蛮な方法なんだよ
そういうのは猿がやることだ >>312
いや、型情報が潰されてるしバグ修正なんてしにくいと思うけど
しかも、インターフェースの先は知る必要がないんでしょ? インターフェース君、もう死んだ方がいいな
バカだし >>345
しやすいよ
余計な依存関係がクリアされるから作業対象に集中できる
作業対象の型も設定や命名規約からすぐわかるし全体からすれば極一部の動的なインスタンスだったとしてもログやファクトリーを見ればすぐにわかる
作業対象が依存してるのはインターフェースの契約でしかないのでインターフェースの先はもちろん知らなくていい インターフェースを使わずにあちこちに条件分岐を撒き散らすほうが
バグ修正しにくいわ まぁ実際のところ、interfaceまでガッツリ作る業務は今まであったことないんだけどね。
大体abstractクラスが限界 後はienumerableと受け取ったり返したりするヘルパー関数群とかは作るか。他はもはや趣味の領域な気がする IT業界は企業間で10年、20年分ぐらい技術格差がある
当たり前のようにinterfaceを使うモダンな企業もある
JavaやC#を採用しているのにCやCOBOLみたいなプログラムを書いてる老舗企業もまだある >>347
じゃあ、型情報潰しちゃってるのにどうやって該当の処理まで飛ぶの?
っていうか君はインターフェースの先は知る必要がないって主張だから
不具合も直せないよね?w インターフェース君はどうやってインターフェースの先を知らずに不具合を直すのだろう? 作業対象の依存するインターフェースの先を知る必要はない
作業対象==バグってるクラスを治すだけ >じゃあ、型情報潰しちゃってるのにどうやって該当の処理まで飛ぶの?
作業対象の型も設定や命名規約からすぐわかるし全体からすれば極一部の動的なインスタンスだったとしてもログやファクトリーを見ればすぐにわかる
>インターフェース君はどうやってインターフェースの先を知らずに不具合を直すのだろう?
作業対象が依存してるのはインターフェースの契約でしかないのでインターフェースの先はもちろん知らなくていい
作業対象==バグってるクラス >>356
IF「フフフ、我らを見抜けるかな?」
IF「3万のインスタンスをもち、150種のクラスをもつ我らを見抜くことは不可能」
IF「さらにメモリ、フォーム、コントロール、スレッド、ファイル、プロトコル、etc」
IF「すべての共通項を見出した万能クラス」 実際には責務:クラス=1:1だから症状聞いた瞬間にあぁあのクラスだなってわかるんだけどね
クラス分けしないでif文書きまくるとそれができなくなってコード追いかけたり実際に動かさないとわからなくなる >>357
いや、お前の主張はインターフェースの先は知らなくていいんだから
不具合直せないだろ
そこでチンコでもいじってろよ バグがあるクラスを直す時にそのクラスが依存しているインターフェースの先を知る必要がない
インターフェースを守っていればいい これも成り立つよな?
バグがあるクラスを直す時にそのクラスが依存しているクラスの先を知る必要がない クラスを使ってるだけなら、クラスの実装を知る必要はないのと同じことか
そういやライブラリのソースコードって見ないもんな クラスを使ってるだけならクラスの実装にも注意が必要 あー、勝負ついたなw
クラス(第三者が作ったライブラリ)のソースコード
普通見ねぇわ インターフェースを使うとバグが無いことが証明される
なんでかな? インターフェースの先は知らなくていい
↑これが間違ってる これが流行ってるからっで、レガシーコードにぶち込まれた数々のソリューション。
やるなら同等の箇所を完全に書き換えろ。
未来に責任が持てないならおとなしくしとけよ、糞が あ、未来のことなんか考えなかったからだね
未来の責任は放棄か 残業、休出してリファクタリングってなんかおかしくねーか?
いま、足が出てるわけで、いま、なんとかしろよ
アリもしないお前が想定する未来はきっとこないんだ >>377
うーん? ただ単に遅れてるだけだよね、それ >>378
え?ちょっと頭使ってね
リファクタリングっていまの工数を使って明日の工数につなげましょうって作戦じゃん?
なのにいま足が出てるのにそんなことしたって一体いつのプロジェクトを成功させたいのかわけがわからないじゃん > リファクタリングっていまの工数を使って明日の工数につなげましょうって作戦じゃん?
え?違うよ
まず今日の仕事の準備としてリファクタリングする。
そして今日の仕事の仕上げとしてリファクタリングする
それで今日の仕事が終わったと言える
準備と仕上げを入れずに仕事を見積もってはいけない
足が出てるのは、その準備と仕上げを勤務時間中にやらないで
1時間早く出社して、残業もするような状態になってるから >>380
は?
それなんのためにやってるの?
設計書通りに組んだんだよね? 気分に任せて組んでるから必要になってんじゃない?
お前の場合 >>381
設計書にコードの中身まで書いてあるっていうのかい? 野球で例えるならバッターが足場を慣らすのがリファクタリング >>388
それ統計データでもあるの?
それともあなたの思い込み?
嘘つかないでくれませんか? 設計書通りだとバグ出るしバグの修正めちゃくちゃ大変
しかも当たり前のように仕様変更入るじゃん
だから設計書は参考までに止めてリファクタリングするしかない
文句言うなら最初から整理とテストまで実行した設計書をよこせや >>390
だからって設計書書かないって
それノーガード戦法じゃね >>391
設計書はゴミだけど設計というプロセスは必要
設計した結果をコードとテストとしてアウトプットする
それらでカバーできない部分があれば別途図表や文章を用意するが設計書という体裁にはならない
後発の開発者やユーザーに対する解説書となる んで、設計書を通りのコードと言っても
わかりやすいコードと、わかりにくいコードがある
正しく動いていたとしても、わかりにくいコードだと
今後の作業に支障をきたす。
今後の作業を改善するためにリファクタリングするのではなく
今後の作業に支障をきたさないためにリファクタリングをする。
これは今やらなければいけない作業
工事終わりました。でも片付けはしてないです。じゃだめだろう?
片付けまでやるのが今日の仕事 @良い設計を簡潔に記したもの
→必要です。これを設計書と言います。
A悪い設計を膨大な文書で誤魔化そうとしたもの
→不要です。むしろ害悪になります。
これは設計書とは言いません。ゴミです。
残念なことに日本のIT業界ではAの事を設計書と呼び、盲信しています。
今すぐAをリファクタリングして@に書き換えましょう。
そうすればコードのリファクタリングは最小限で済みます。 >>395
> @良い設計を簡潔に記したもの
> →必要です。これを設計書と言います。
簡潔に書くのと、詳細なコードを書くことは
矛盾するからね。簡潔に書けば、書いてない部分が
増えるため汚いコードになってしまう可能性が増える リファクタリングしながらやると美しいコードになるけどやっぱり時間かかるな
複雑なSQLで一気にデータ持ってきて表示、編集させて、ボタン押したらこれまた複雑な更新SQLで一気にデータを更新
コードめちゃくちゃになるけど、これが一番生速度が速い 設計は遠回り
最初から最短距離見えてるんだからそうすればいい どうせ引き継ぎ用の説明書作らなきゃならないだろうに…。 >>402
設計は必須。
お前さんは書き込みする時に、カキコの影響とか考えるだろ?
それは広い意味での設計。
「設計書」と称する、実は設計書になってないゴミは要らんけどね。 設計・設計書要らない派が挙げてる仕事って、
1時間で終わるレベルのタスクなんだろうなって思う。
人と設計を共有したりしないでいいんだろうな。 だからコードで設計を共有すればいいじゃん
設計書を記述するための「プログラム言語」という専用の言語で
設計書を記述すればいいでしょう? >>410
プログラム書いて持ちよった結果
イメージが合って無くて全面書き直しになっても
直ぐに書き直せるのならそうかもな >>410
小規模ならそれもいいけど、大規模になったらそうもいかんのよ >>411
お前が言う「設計書」を書いて持ち寄った結果
イメージが合って無くて全面書き直しになるのと何が違うの?
全面書き直しが問題なら、単に早めに
レビューすればいいだけ。別の問題だろ >>413
それはプログラムと設計書の工数によって変わるだろ
プログラムより設計書の工数がえらい小さい場合は、設計書を持ち寄ってレビューするべきだし
工数がほとんど変わらないなら、最初からプログラムでレビューすればいい 設計書は長時間うんうんうなって完成させてから
レビューするもんでしょ
大規模なものなら、1ヶ月とかそれ以上かかって完成させて、
でイメージが合ってなくて全面書き直しwww 設計書は書き直すことなんてないよ
所詮絵に描いた餅なんだから
間違ってもOK。レビューなんてしない
間違いはコードでなおす >>416
いや、設計書書いたならレビューしろよw
何のために書いてんの? 建築業なら企画書→仕様書→設計書→図面→といった工程の中の
一部分であることが設計書の存在意義なんだが
この業界って仕様変更の頻度が高すぎて工程という前提条件が破綻してる
とくに下請けはプロマネのレベルが低くて無知だから何でもハイハイで
再見積もりも無しに平気で工程をまき戻していつものデスマーチ >>419
建築はしっかりしてるというような隣の芝生は青く見えるんだろうけど、
あっちもやっぱり似たようにgdgdだよ。
特に今は作業員に外国人が増えてるから意思疎通も大変だし。 建築業界に例えたらプログラマは何に相当するんだ?
○○に相当するとして、建築業界では○○に対して
ちゃんとした資料を渡してるんだろ?
だけどプログラマに対して、それと同じぐらいの内容の
資料渡してないだろ
って結論になるのが、この話題の最後になるのが目に見えてる >>421
土方だろ
だって俺ら鬼の副長じゃなくてIT土方だろ >>422
おい、先にレスしてるんだからその先を書けよ。
土方に渡す資料に
「4階建でマンションを建てます。
部屋はいくつで、階段、エレベータはここで。
詳細は全部任せます。材料とか適切なのを選んでください」
って書いてあったら、それ建築士が使えないって判断だぞ >>423
末端の土方はそれくらいの情報しか持ってなさそう
で、現場監督や棟梁には詳細な資料が渡ってると プログラマは土方に相当すると言ってのに
現場監督や棟梁に相当するって訂正かよw 将来的には絶対いいしそうしないと先がふさがるけど
当面の課題解決の理由として正当化できないせいで採用できない などと言い訳をしているところは
デスマ状態なんだろうってのがよく分かる
なぜならコード修正の見積もりには
予めリファクタリング分の工数を含めるものだからだ
その余裕も無いほどカツカツなスケジュールなら
デスマになるに決まっている 将来的に当たるかもしれない課題がある
でもそれは優先度低くてかなり先、一度後回しでいいやってなった
今回の改修は範囲狭くて緊急性たかい
今回のを理由に将来を見越した改修をしてしまうと、緊急性高いテストに関係ないモジュールまで巻き込まれてしまう
先で死ぬのが見えてるのに出口が コストカット原理主義が無くならない限りはリファクタリングの正当性を見出すのは無理だろうな
空いてる時間に今までのフィードバックをすることでよくしていくことが必要なのに空いた時間
そのものをコストとして敵対視してるのだから受け入れられることはない
空いた時間=余裕=コスト=絶対悪 になっている人が多い >>429
それならコード修正の見積もりもできないだろうね そりゃ正しいコードの姿が見えてないのに
コード書くのにどれくらいかなんて見積もりできないだろw
それか修正前のコードがどんなに汚くて
修正箇所が大きくテスト範囲も広くなろうが
修正前のコードが綺麗でわずかの修正で解決できようが
全く同じ工数で修正できるって考えてるアホかのどちらかだ 正当化できない理由は>>430
コードの正しい姿とかどっからでてきた話だ 言語やOS、ライブラリ、フレームワークなんてのは変わり続けてたり、変わらないことで
使えなくなることがあったり、使用者の習熟度が上がるなんかでも変化するから正しい
コードの姿なんてものは幻想だよ。
極端な話、変更がなければリファクタリングなんてしなくてもいいがOSバージョンアップは
ほぼ確実に数年単位で起きるしそれに対する対応としてはリファクタリングなりなんなりの
事前によくしておくというのは必要なんだよな。 >>435
え? コードを適当に修正してんの?
動けばどんなコードでもOKって人? >>436
> 使用者の習熟度が上がるなんかでも変化するから正しい
> コードの姿なんてものは幻想だよ。
コードの話をしてくれないかな?
お前が言ってるのは使用者の習熟度の話
お前が言ってるのは、正しいコードはあるが
それを使用者が理解できないって言ってるだけだろう? >>437
おまえは自分の頭にある筋道以外の話が理解できんのか >>431
テストやリファクタリングをサボって、コストカットしたと勘違いしてるのが多いけどね。 >>441
そもそもそこまでコストカットする必要はあるのかっていう話だな。
お給料=コストなんだからコストカット自体は自分の給料を減らすものとして考えなきゃ
ならないわけで、なんで自分の首を絞めることに肯定的なのかなあと。
効率化自体はかったるい作業をかったるくない作業にする自分ために必要なことだが
効率化しないと評価下げる、お前は低評価だみたいなのは違うだろうと。 資本主義の世界だと自分の成功とは他人より成果を出すことでつまり他人が失敗すること
つまり望まれてるのはお前がコケて失敗することなんだ
それでまわりが幸せになる
おまえの上司は
お前が失敗しないことを理由に地位と給与を下げ、失敗したことを理由に地位と給与を下げるだろう
成功者の側に立とうと思ったらうわべに隠された別の道を通らねばならない >>442
費用対効果って概念が抜けてる現場は多い。 >>444
だからそんなバカバカしい定量化しづらい、出来ない概念を信奉してるから
ちょっとした計算違いでどんどんドツボにはまっていくんだよ。
金は貯めたり削ったりするものじゃなくて使うものだという認識が出来てない。 減量が必要なボクサーじゃないんだから無駄なんてあっていいの、あって当たり前なの
そんな当たり前のことが分らなくなってきているから作業量が増え続けて仕事が楽に
ならないんだよ。
過労死するとかそれに近い状態が幸せなのか? どうでもいいけど、
少なくとも給料上がった分くらいは効率化しろよ?
新人雇った方がコスパ良いとか笑えないから。 われながらクラスとメソッドの名前がひどい
壊滅的な英語センスと気まぐれなルールで
日本語との対応や分類がえらいことになってる
名前かえるぐらいさせろよ 小売業者が定期的にやってる棚卸しみたいなもんだけどな リファクタリングは日々一人ひとりがやることだから
棚卸しのようにまとめてやる行事とはぜんぜん違う 正確には無能がする日課のオナニーみたいなものやけどね システム刷新の前にリファクタリング少しでもやると効果的なんだけど余計な手間だろって却下される
古い言語で書かれたゴミを新しい言語で書かれたゴミに刷新しても意味ないと思うんだけどな 定期的な整理をしないと肝心なときにぐちゃぐちゃになる
んで、緊急だっつって慌てて直してカオス化が進む
そーなる前に整理しろってそんだけの話でしょ
なんか難しいところあるか? 整理整頓するつもりで散らかし放題やから無能と呼ばれとんのやぞおまえw 整理整頓するつもりで
整理整頓してればいいだけでしょう? 整理整頓した結果が前よりマシになる保証がないことを奴隷主どもはよくわきまえている
まともな整理整頓できるぐらい理解が進んでたら
そもそも整理したいって思わないことも多い リファクタリング何ぞ不要
その頃には丸ごと作り直せ 自動テスト出来るならもうかなりキレイなコードになってるはず
リファクタリングが本当に必要なのはテスト困難な汚いコード
リファクタリングはテストと必ずセットだって常識は間違っていたのかも知れないな
テストしないでリファクタリングすることも時には必要
これをエクストリーム・リファクタリングと名付けよう
みんなこのワードを流行らしてくれ
流行ってるなら本番でも採用されるから 最初は何とかなってたのに
あれがたりないこれがたりないってプライベートメソッドが増えて
にっちもさっちも行かなくなった…
リファクタしたいけどテストできなくなったからリファクタできない 規模にもよるけど、機能の変更や追加依頼があった時にその部分だけリファクタをやってから手をつけてるなぁ
もちろんそれ込みの見積もりを出す
依頼もないのに勝手にリファクタやることはないわ なんでこんなに変わってるんですか?
工数を増やさないでください
勝手にやった分の料金返してください 本当にリファクタリングを綺麗にできるのなら、
そもそも設計が綺麗だから、リファクタリングなんて不要だろ?
まともに設計できずにぐちゃぐちゃ書いた奴が、
リファクタリングなんてできる訳が無い。 >>468
コードを修正する必要がないなら、
最初からきれいに書けるよ
実際には機能追加、変更、バグ修正などで
コードを変更する必要があるから、リファクタリングが必要なんだよ >>469
そうだね。
まともに設計できない奴はそうなるね。 まともに設計できるかどうかじゃなくて、
将来を読めるかどうかだろ?
将来大規模になるなら、大規模な設計をするし、
そうでないなら小規模な設計をする
規模に応じて適切な設計は変わるのに
最初から規模が読めるとでも? 最近は設計できない奴の言い訳がすごいな。
まともに設計できてればそんなことでリファクタリングは発生しない。 そりゃ先の先の先まで考えて
必要ないことまで設計することだろw >>474
クソコテの戯言はおいとくとしても
設計はコーディングとちゃうで?それはコーディングの話や 日本人は年末の大掃除が文化として根付いてる
なので「日々整理整頓してクリーンな状況を維持しよう」って外国人なら当たり前の感覚がどうしてもわからない
民族・文化のレベルでITが向いてないんだよね 設計を受け取ってコードを書くだけの人ほど>>472のような勘違いをする傾向が有るね
ドメインへの理解度は開発をすすめるにつれて深化する
ビジネスルールやニーズは時間経過で変化する
という2つの大前提を理解してないっぽい >>477
クソコテに反論したからと言っておまえがコーダーである事は隠せんよw もうコテも信用できない
俺だってKACのふりぐらいできる >>477
設計できない事はよく分かった。
つか、開発プロセスすらまともに理解できてないんだな。 リファクタリング出来る環境あるならテストも自動化されてるだろうに、何が問題なんだろ? テストが自動化されてる現場なんてあるわけじゃないか!
だからリファクタリングは禁止! まさか、人力でリファクタリングしといて、インターフェースは完全に互換だとかのたまうアホなん? 完全に互換です
動き違うのはもともと定義外の使い方してたからで
既存バグです
正しくなおしたわれわれのせいではない 齟齬があるのに観世互換とか、日本語が使えないのかな? リファクタリングして、コードのメンテナンス性が上がって
メンテナンスに時間がかからなくなると、時間を節約で金になるんだよな
これをわかってないやつが多い ソース付きで売り切りの開発にリファクタリングなんて不要 ソースコードがなにもないところから生まれてくるとでも思ってるのだろうか? 切り売りするにはリファクタリングされきって
綺麗な設計になってないと無理だからなぁ あ、無理っていうのは不可能って意味じゃないよ。
切り売りする時、綺麗な設計になってないと
修正が大量に必要なってコストがかかるという意味 >>494
ネットに落ちてるのはバグばかりだよwww >>495
売り切りなのに修正なんてあるはず無いだろ。
修正するとすれば、購入した顧客側の仕事だしな。 >>497
じゃあ売ってる使えないコードってことか
詐欺という仕事も、そりゃありますよねぇwwww >>493
コメントを飾り立てれば綺麗なコードになるから無問題w やっぱりリファクタリングしきった
綺麗なコードじゃないと売れないよね >>500
ゴミを飾り立ててもゴミでしかありませんよw
あ、ゴミを騙して売る商売でしたね
商売の邪魔してすみませんwww >>502
動くと、正しく動くの違いぐらい知ってますよwww 切り売りってw
ライブラリとして無修正で提供できない時点で終わってるよね >>504
あ?
リファクタリングの意味も分からずここに来てんのか?
正しく動くから商売してんだろ? おまえらはアホだな。
リファクタリングし切ったコードなんか売ったら、
顧客都合の仕様変更の仕事が来ないだろw あぁ、時給で働いてんのなw
作業が減れば減るほど、稼げる金が減ると・
価値ではなく、作業時間で金額決めてるから
効率化すればするほど、稼げる金が減る。
地獄だね >>510
ライブラリを売る場合、作業が0でもそのライブラリの価値として売るのは明白
何もしなくても金が稼げる
切り売りっていうのは、一つのプロダクトから、必要そうな部分を切り出して渡す。
まず切り出すという作業が必要になる。どこがどう影響してるかわからないから
そして仕様変更が来たら、追加でなにか作るのではなく、切り売りしたソースを修正する
クソ汚いコードだから、顧客には修正するのが無理。というのを利用して作業費用を受け取る
反対に言えば、作業しなければ金が稼げない
同じ金額を稼いでいたとしても、ライブラリは何もしないで稼いでいるが
切り売りにして作業しないと稼げないと思ってる。
作業時間=金額 なのだから時給 あ?
誰が切り売りって言った?
売り切りだ。
売ったらそれでおしまいの商売な。 >>490
なんで最初からまともなコードを書けないの? >>513
人間は完璧ではない
システム化の対象が不変ではない
経営判断が不変ではない
情報源となる顧客が非協力的
最初から完璧なコードを書けない理由は沢山あるね
最初から完璧なコードが書けると思ってるうちはまだまだ初心者 リファクタしたいけど
きわめて明白なことに
根本的リファクタしたら2年ぐらい自分がやってた部分全部いらない
どうすればいい いらないなら消せばいいじゃん
サンクコスト効果とか知らない?
いらないものをメンテするほうがコストがかかる 大きな猫用ドアと小さな猫用ドアがあって小さいほう作ってる
どっちのドアをくぐらせるか猫を誘導するのがまた
機能は実質まったく一緒 >>518
時給ってやつだね
作業時間がそのまま金になる
だから効率化すると逆に金が減る >>515
まともに書けない理由がそれなら、
なんでリファクタリングすれば
成功すると思ったの? リファクタすると工数2、3倍
リファクタしないと指数関数的に複雑さがふえる まともに書けないんじゃなくて、まともに書かないだけ。
時間をかければまともに書けるが、その時点では
そこまでする必要がなかったという判断
だが「その時点では」の話。時が変わればその判断も変わる
状況が変われば、その目的地も変わる。新しい目的地に向かって
既存のルートを変えることがリファクタリング
その反対の行為は、古い目的地のルートはそのままに古い目的地から
新しい目的地へルートを伸ばす。だから無駄が積み重なって最後には
入り組んだ迷路のようになる >>523
で、リファクタリングして作り直してるるあいだに状況が変わるんだよな?
開発プロセスから見直した方がいいぞ。 まあ、リファクタリングするくらいなら新規で作った方が金も取れるからなぁ >>524
リファクタリングって何かを修正するたびに、該当箇所だけを少しづつやるもんだぞ?
毎日状況が変わっていたら仕事にならんだろうが
お前みたいに、リファクタリングという特別な時間を使って大規模にまとめてやるって
間違った考え持ってるやつはいつ撲滅できるんだろうかね
ほんと害悪でしかないわ >>525
時給で請求金額を決めてるんですね
大変ですね。開発時間を短くすると金が取れない仕組みなんてw >>527
だからさw
請け負いでやってても何でも
見積もりは作業工数から算出だろうに。
だからむしろ数時間で終わっちゃうリファクタリング作業なんかではたいした金は取れないんだよ。
電気屋が修理じゃなく新製品勧めて来るのと同じだ。 >>524
そう
ずっと追いかけるんだよ
理想と現実の誤差がある程度の範囲に収まるように調整すんの
リファクタリングしないと誤差が大きくなりすぎて商品価値が暴落する
暴落してから焦って直そうとしても誤差が大きすぎてどっちに進めば理想に近くのかがわからなくなる >>528
矛盾してるなぁw
リファクタリングの時間を作業工数に含めたら
むしろ金は取れるだろうに >>529
その誤差をリファクタリングで埋めようとするのが間違ってるって話なんだけど? >>531
リファクタリングは修正のたびに小さくやるもので
1日以内で終わるような誤差をなぜリファクタリングで埋めたらダメなんだ? >>530
リファクタリングってのは、そもそも設計不具合だからな。
新規開発の工数に入れられるはずが無いだろw >>533
リファクタリングは不具合修正じゃないので
工数に入れていいってことになりますねぇw
2階建ての家を3階建てにする時、土台を補強するのは
不具合じゃないですよ?
ま、あんたは不具合は全部無償で修理するんでしょうがねw 新規開発のお金が取れるぐらいなら
リファクタリングのお金も当然取れる リファクタに金がかかるってことは
リファクタで開発が楽になってないんだから
そのリファクタは間違いだと結論できる >>536
おまえさ、くたびれたババアだけとわ処女再生手術したのと、ピチピチの女子高生と、どっちと付き合いたい? >>537
おいおいw
リファクタリングで金がかかるのは最初で
開発が楽になるのは次回以降に決まってるだろ
そんなこともわからないのか?
しかも次回以降、請求金額はリファクタリングしてない場合の
金額にしておけば楽して稼げるんだぜ?
リスクゼロで金を稼ぐいい方法だ。 新しいハードに新しい技術で作ったアプリと、
ガラケーのアプリに機能追加したアプリでもいいよ。 これからはリコンストラクトって呼ぼう
リファクタなんて陰謀くさい名前でいうからコストを考える気にならんのだ >>540
じゃあ今回は認めるけど今後の機能追加は恒久的に料金4割引きで >>540
そんなの夢物語だぞ。
顧客のニーズは思いがけない方向にあって、
だいたいどんなリファクタリングを先回りしてやってても
無意味だったりするのが現実だぞ。 >>542
おまえは商売の話をしてないから無意味な事に金を使いたがるんだろ? 名前が心理に与える影響をばかにしてはいけない
人間は絶望的にいい加減 >>545
時給で請求金額決めてるところは大変だなぁ
開発を楽にしたら儲けが減るんだからw
ビジネスモデルが破綻してることにも気づいていない
自分で自分の首を絞めてることに気づいていない まず、リファクタリングに金を出す客は居ないからなぁw >>545
> だいたいどんなリファクタリングを先回りしてやってても
YAGNIって知ってるか? 今必要になっていないならやらない。
必要になったときにやる。ということだ
先回りしないからこそあとでリファクタリングするんだよ。
先回りしてリファクタリングとか矛盾そのものだ >>550
リファクタリングを作業工数に入れるという発想がないから
自分で自分の首を絞めてるんだろうねw >>549
え?機能で値段決めてるのに機能増えないリファクタで金とるの? >>553
機能を実現するコードを作り出すためなんだから
当然入れるに決まってるだろ。
本当に頭がおかしい。馬鹿じゃなくておかしい >>551
だからリファクタリングは無意味なんだって。
仕様変更があって初めて秘密裏にリファクタリングするくらいが関の山なんだよ。
リファクタリング自体に金なんか誰も出さないから。 >>555
秘密裏っていうか、お前客にやってること全部説明するのか?
ここのi+1というのはですね(略
コードの説明なんてわざわざしねーよ >>556
おまえは、客先コードレビューもやらない素人相手のマか? > リファクタリング自体に金なんか誰も出さないから。
作業時間に含めるのが常識だから
当たり前の話だな。
リファクタリングで別に見積もりだせーって言っているやつが
リファクタリングで金だせないだろーって言ってる矛盾
なら作業時間に含めればいいだけなのに
その発想が出ない。おかしい。馬鹿じゃなくておかしい >>558
> おまえは、客先コードレビューもやらない素人相手のマか?
コードレビューした気になってるだけだろ。
リファクタリングされてない奇怪なコードの解読に
数時間かけても何も生まれないよ >>559
おまえは、見積もりの内訳も分からない素人を相手にしているマなのか? >>557
矛盾してる所があったら指摘してみて
できないなら黙るか、関係ない話にすり替えてみてw >>561
お前は見積もりの内訳としてコード一行一行の値段なんか出してんのか? >>559
人間がバグったww
コード量と時間と機能のどれで金とるの? >>563
もしかしてプロならバグを入れないと思ってる?
どんなコードでも一瞬で理解できると思ってる?
汚いコードであればあるほど、バグが含まれるし
どこがどう影響しているかなんて、わからなくなるんだが
だからリファクタリングが必要なの おれは一切バグを出さない方法を知ってる。
さわらなきゃいいんだ >>565
> コード量と時間と機能のどれで金とるの?
顧客への価値に決まってんだろ
いらない機能を追加しても金なんかもらえない
発想自体が根本からずれてる >>564
この仕事何十年もやってる人なら処理内容からだいたいの工数は頭ん中にあるんだよ。
その工数に見合わない見積もり出したら、突っ込まれて詳細聞かれるんだよ。 >>567
だからリファクタリングは修正する必要があるときに
作業時間に含めてやることになるわけなんですね。
さわらなきゃいけないときにやるもの >>570
そう、動いているコードにはさわるなってのは名言。 >>569
> この仕事何十年もやってる人なら処理内容からだいたいの工数は頭ん中にあるんだよ。
はは、何十年もやっていてそれか。
既存のコードの修正の工数は、既存のコードがどうなってるかで変わってくる
メンテナンスがしやすいコードとそうでないコードでは
修正の時間は何十倍も違ってくる
だから他人が作った見たこともないコードの修正の見積もりなんかしない
自分の仕事に責任を持っているからだ >>573
それも込みでだいたいの工数なんか決まってんだよ。
見た事も無いコードならリファクタリングが必要かすらわからないんだから、そもそも前提が意味がないって事に気づけ。
そして見た事も無いコードの修正作業の見積もりなんか普通はしない。見積もりに際してコードを提供してもらうのが普通だぞ。 たぶん口だけだな
見積まともにできるやつは
改修による影響範囲とかパスとか
画面とかテストケースの数とか具体的に見積もる
コードがぐちゃぐちゃだからリファクタしたいなんていうやつに
稼働コードに指一本触れさせてはいけない
彼は優れたコードが書けるのではない。単に理解力が劣っているんだ。 自分で書いたコードを自分の責任で弄り回すのは勝手にやればいい。
リファクタリングでも何でも好きな名目でやってれ。
でも、会社組織に組み込まれてる身分では、責任なんか取れないんだから、余計な事はするな。
それだけ。 >>558
話の本質とは違うけど気になったのでツッコんどく。
「それは客の定義によるだろ」
例えばお前さんが客として買ったゲームソフト、開発者とレビューしたか? >>575
概ね同意。
コードがグチャグチャになった根本原因すら理解できてない奴が
リファクタリングしたところでまともなコードにはならないのは明白だし。
時間と金の無駄どころが不要なリスクを上げるだけだろう。 >>578
理解して整理するためにリファクタリングするんだよ
素人は知らないだろうけどプロジェクトの最初から全てのコードの歴史を知ってる人材なんてほとんどいないからな >>579
理解するためにリファクタリングするとか、
素人丸出しの意見だな。。。 >>580
お前さんがな
最低限マーティン・ファウラーの本は読んでからこい
でなければ議論の場に立つには早すぎる >>581
なるほど。
事象に対する理解力すらないのか。
そりゃあ、自分の間違った行動を正当化するために
リファクタリングをしているってことにしたいわけだ。 客先レビューすると、客からリファクタリング求めらる事もあるんだよな。でも工数は据え置きってのが普通だ。 >>583
はい。交渉力がなければ、工数据え置きでやらされるでしょうね
おそらく仕様変更も無償でやらされてますよ。 >>583
そりゃリファクタリングが要求されるような
読みづらいコードは、バグと一緒だからね
だから、最初からリファクタリング込みで工数を出すんだよ。
動けば完成じゃない。客から文句を言われないものを作るまでが仕事だ 読みづらいからって修正要求される事は無いなぁ
関数ヘッダのコメントが無いとかくらいならあるけどさ。
リファクタリング求められる一番多いのは、
同じ事をコピペかってくらい繰り返してたりするコードとかかなぁ 読みづらいコードとバグは違うだろw変なやつだなあw 繰り返しは目に見えてテスト工数にはねるのでリファクタされてしまう
条件分岐も
やっぱりまぎらわしい名前とか処理順序とか
ややこしい変数渡しがいちばんきくな ○○と一緒とかいうな
思考がめっちゃ雑になる
みんなは区別がつくから別の名前で呼んでるんだ
つまり
おまえだけ区別がつかないまぬけということになる 読みづらいコードはバグではない・・・そのとおり
読みづらいコードはバグと一緒で無償修正の対象・・・そのとおり >>591
ソースコードを納品する場合で
相手側のソースコードのレビューがある場合は当然だな
そのためのレビューなんだし 下流が下流に納品する特殊事例をあげられましてもw
ソースコードなんか読みませんからw >>593
558 返信:仕様書無しさん[sage] 投稿日:2018/10/11(木) 23:54:32.36
>>556
おまえは、客先コードレビューもやらない素人相手のマか? ソース持ってなきゃ相手に依存しっぱなしになってしまう
何か仕込まれてもわからない
コードは権力そのものだ
コード読めないコード読まない上流など
金の上流なだけで立場は最下層
どれほど愚かであればそれを誇る気になるのだろう 自社から出す商品の品質がどうでもいいなんてアホ居るんだw いやごめん
そんな上流いるわけないな
下流だけど適当に煽ってみただけだよね >>596
お前さんは買った商品の全部のコードを読んでから使うのか?
Windowsはさぞかし読むの大変だったろうな。 >>599
読まないしテストもろくな検証もしてない
だからむしられるだけの庶民
MSに勝手にメール見てもいいことにされ、いりもしないOSを無理やり入れさせられ
プライベートをくまなく抜き取られ
せっかく買ったパソコンを自分のもののように好き勝手にいじりまわされても
あきらめて黙って使うしかない 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。 リファクタリングが必要なとき、それは、システムをそもそもリプレイスしないといけないとき。
よって、リファクタリングなんぞ不要。 >>603
リファクタリングの工数とリプレイスの工数が同じならそれも真だが
多くの場合はそうではないからリファクタリングは必要だよ むしろいつまで古いシステム使うつもりなんだって話
ハードの耐用年数だってあんだろ? >>604
だから、リプレイスが必要なレベルなのに、リファクタを提案すること自体愚かだって話だ。
宇宙軍だの言ってる時代に、未だに、石器時代の石で作った武器の石を研ぐことを提案するのか? 移行プロジェクトで
既存システムにリプレースされそうな勢い
いろいろシャレにならない >>608
下手くそすぎる例えだろ
自画自賛なんだろうなw >>606
リプレイスが必要なレベルならリプレイスするのが最適だろ
そうでもないレベルでリファクタが必要なケースもある
「不要」と断言する方が俺には信じられないよ ちゃんと動いてるもんになんでわざわざ手を加えて金取ろうとするの? >>611
リファクタだけで金取るビジネスなんて聞いたことないよ
機能追加や仕様変更時に、手を入れやすいようにリファクタするくらいだろ
もちろんリファクタの工数もスケジュールに入れる
当然だが、もしリファクタやらない方が工数が減るならリファクタはやらん >>612
ちゃんと動いてるもんになんでわざわざ機能追加や仕様変更しようとするの? >>615
そう、改修依頼があってはじめてリファクタを検討する
リファクタした方が工数が少なそうならリファクしてから改修に着手するし
しない方が工数が少なそうならそのまま着手する
あと当然、リプレイスした方が工数が少なそうならリプレイスする 工数で考えるのはまだアマチュア。
プロなら金額で考えれ >>617
工数で考えるべきか金額で考えるべきかは立場によるだろ
それに、馬鹿正直に工数と金額を比例させる必要はない 客に対しては金、従業員に対しても金。
ただし、ベクトルはそれぞれ真逆だがなw >>621
まあ経営側からのみの話ならそれでもいいんじゎね? 客や従業員から見ても、経営者の思いとは逆ベクトルだけどな。 リファクタがリプレイスまでにちょくちょく必要なほど、毎回いきあたりばったりの汚いソースコードの開発会社か
発注したくねー >>626
何度言っても理解しなよな。
リファクタリングは、別途時間をとってやるってものじゃないの
ちょくちょく必要なんじゃなくて、
コード書くときにほぼ毎回必要なものなの
汚いからリファクタリングするんじゃないんだよ
テストコード書いてそれに通るコード書いて
リファクタリングしながら作り上げるの
プログラマが「できました」と言うまでに
何度もリファクタリングが行われる。 >>627
前に動いたところが触る必要もないのに動かなくなってるお前を信じるビジネスパートナーはこの世にいねーんだよ リファクタはテスト工数を減らすために改修前にやるもの >>628
それってさぁ、リファクタリング関係ない話だよね。
共通関数修正したら、前に動いたところが触る必要もないのに動かなくなるじゃん >>630
だから普通は避ける
円周率が3.14じゃ精度が足りない計算が必要になっても
既存の円周率とは別に用意して
既存には一切手を付けない
そういう管理が必要なんだよ >>631
ようするにコピペするってことでしょ?
テストの工数が倍増する問題はどう解決するの? リファクタリングを理解しない人はコスト意識がないんだよね
金を出すのは客だから知ったこっちゃないんだろうけど
コストだけじゃなくて開発時間も伸びるから結局いつも
時間足りなくなってクレームの元になってる コードを共有するなって話だからリファクタリングとは全く関係ないな。
コードをコピペしてるからバグが出たら、体中に転移した
がん細胞探すように、全体を調べないといけない
一箇所直しただけでは、他の部分には影響しない(=バグがあるまま) >>632
リグレッションテストどうすんだよ
ちょっと機能追加するたびに共通化して毎回テストするんか
倍増どころじゃないな リファクタの欠点はどれだけやっても終わりがないことだ
コスト意識がないと
自己満足と脅迫概念にかられて延々非生産的な作業を続けることになる >>632
は?
お前のやり方じゃ、円周率使ってるとこ全部見直すって言ってるんだぞ
追加分だけじゃ済まないぞ >>635
リファクタリングとは全く関係ない話だが
テストは自動化しないとリグレッションテストなんてやってられないだろ?
>>637
> お前のやり方じゃ、円周率使ってるとこ全部見直すって言ってるんだぞ
円周率使ってるところが100箇所あるとして、1箇所に変更があったら、
100箇所同様の変更をして100箇所テスト(自動化されたテストの変更も100箇所ある)を
行わないといけないんだぞ。そんな事やってられないだろ リファクタリングって一旦壊して再構築するんだから
テストし直すのは当たり前だよ > リファクタリングって一旦壊して再構築するんだから
壊すってどういう事? >>627
毎回、リファクタwwww
どんだけ、きたねーソースコードなんだよwwww リファクタで、最適化しているつもりになって、毎回、ソースコードを破壊していくやつ リファクタリングが一旦壊すってどういう意味だろうか? >>642
最適化はリファクタリングか?
http://bliki-ja.github.io/IsOptimizationRefactoring/
> 最適化とリファクタリングはどちらも変化を伴うものだが
> (なかには最適化かつリファクタリングとなる変化もあるが)、両者は別物だと私は考えている。
>
> なぜなら、両者の目的が異なるからである。リファクタリングは、
> コードを理解しやすくするためである。最適化は、プログラムを速くするためである。 >>644
最適化=速度に対する
という完全な視野の狭いアホの落書きw
辞書
最適化とは、速度を改善することである。
って書いてある辞書あるの?www よくもまぁ、マーチン・ファウラーにアホとか言えるもんだわ
お前はこの業界で世界に誇れるレベルの実績があるのか? >>646
マーチン・ファウラーさんは、アホですわあww
ねえ。
辞書に最適化とは、速度を改善することである。
って書いてある辞書あるの?wwwねえ?ねえ?ねえ? マーチン・ファウラーってあれだろ?
開発手法を開発しようとしているのやらwww
それだけいろんな手法を開発してもなお改善しない。
これが何を示すのかわからん馬鹿ってことだ。 ガキが重箱の隅をつついてなんか叫んでるなぁw
この記事に最適化は速くする以外の目的もあるといった所で
「あぁ、そうだな」って言われて終わりだろうに
論点は「リファクタリングと最適化は違う」なんだから 辞書に最適化とは、速度を改善することである。
って書いてある辞書あるの?wwwねえ?ねえ?ねえ?
勝手に、言葉を変更しないでくださいな。大混乱ですわ。wwww 「リファクタリングと最適化は違う」
この場合、「リファクタリング」「最適化」という2単語は極めて重い意味を持つ。
それを「重箱の隅」と片付ける馬鹿w 重箱の隅と言ってるのは「リファクタリング」と「最適化」の比較の話で
「最適化とは速度以外のものもある」ということだよ。
お前は速度以外の最適化に何があると思ってるのか?
それがリファクタリングの比較と同影響が出るのかを答えなさい コードを読みやすくすることは最適化って言いませんぇね(大爆笑) >>655
最適化は、プログラムを速くするためである。
だなんて、断言しているアホwww
辞書に書いてあるの?www コードを理解しやすくするための最適化
という日本語は存在できないんでしょうか?????wwww ちなみに、
俺は、著者を馬鹿にしてません。
読者のお前を馬鹿にしています。 馬鹿「りふぁくたー!」
周囲「新人さん、あの「りふぁくたー!」って言ってる馬鹿のコード使えないから、同じとこAさんが担当してるから。そっちと調整してね。」 >>638
何を言ってるのかわからない
円周率の精度のテストを新たに作った上でのテストだろ stringクラスを変更するって平気で言い出すキチガイ >>663
テストしてないの?
テストしていて、変更しても動きが変わらなければ問題ないでしょ
(前提:リファクタリングは、変更しても動きが変わらない。
動きが変わるものはリファクタリングにはあたらない) >>631
> 円周率が3.14じゃ精度が足りない計算が必要になっても
> 既存の円周率とは別に用意して
あの、リファクタリングは変えないものなので
精度を増やすことは、リファクタリングではなくて単なる仕様変更なんですけど?
なんてことはないリファクタリングの意味をわかってないだけかw >>631
> 円周率が3.14じゃ精度が足りない計算が必要になっても
> 既存の円周率とは別に用意して
> 既存には一切手を付けない
別に用意する必要はないな。
(リファクタリングではなく)仕様変更の前後で互換性があればいいだけ
俺なら精度を上げるための省略可能なオプションを追加する リファクタリング・・・動きは変えない。だから既存の自動テストがそのまま通る
仕様変更・・・動きが変わる。だから全部テストしないといけない
結論。リファクタリングはしてもよいが、仕様変更はするな。 >>666
いいや、仕様には円周率の精度なんて書いてないよ
精度がたまたま必要になっちゃったのは今回の追加処理だけ
それだって明記されてるわけじゃない >>670
精度が"たまたま"必要になる"なんてことはありません リファクタリング(動きが変わらないもの)の話で
仕様変更を持ってくるやつは、何も理解してないとしか言えないな >>675
あるよ
円周率を割と入力しないと違いが出てほしいとこで出ない計算式とかあるぜ >>673
いいか?仕事とはこうやるんだ
仕様書がないということは、いかなる動作変更も仕様変更ではないということなんだ
だから客にはこう言うんだ。
「動作は変わりましたが仕様変更ではありません」 >>678
だから今まで低い精度で行っていた仕様を
精度を上げるというふうに仕様変更したんでしょう?
まさか、そもそも変更すべき仕様がない = 仕様変更ではない とでも? リファクタリングもエンハンスも元あるものから手を加えるなら
それは一度壊す事を意味する
言葉上の意味だがこれが理解出来ないからテストを軽視する >>680
だから必要なのは今回の追加分だけだっつの
客からしたらな
円周率をソース内で使いまわしたいのはテメーのおかしい頭だけなんだよ >>683
> リファクタリングもエンハンスも元あるものから手を加えるなら
> それは一度壊す事を意味する
だからリファクタリングで壊すってなに? >>684
だから今回追加分は、今までと同じ精度では足りなかったから
それに対応する精度に仕様変更するんでしょう? >>682
え?誰も既存処理を変えろなんて言ってないよね?
円周率を何で使いまわしたいの?
精度が必要なのは今回の追加分だけだよ そもそも円周率の精度変更ってなんなんだ?
円周率取得関数の話してんの?
円周率は固定値なんだから、変更すべきコードなんて無いじゃん
でだしからおかしいのかよw >>686
端的に言えば元あるものに手を加えて変更する事
変更してる最中は機能してないんだから壊している
作り上げてテストして元あるものと同等であることが確認出来て
初めてリファクタリングしたと言っていい × 円周率は固定値なんだから、変更すべきコードなんて無いじゃん
○ 円周率は固定値なんだから、リファクタリングすべきコードなんて無いじゃん >>694
> 端的に言えば元あるものに手を加えて変更する事
> 変更してる最中は機能してないんだから壊している
え? 変更ってコミット単位じゃないの?
コミット単位では壊さないよ
まさか、ファイル保存した単位で壊してるって言ってる? >>684
あるシステムにはA機能しかありません。ここにB機能を追加します。
はいこれ仕様変更ね。 >>697
仕様書はないのだから、仕様変更ではない >>698
こいつプログラムと一対一の設計者書いてそうwww >>696
編集してる最中が壊している状態
編集完了してもテストしてない状態が壊れている状態
テストまで完了して完全に機能している事が保証できたらリファクタリング完了 >>701
いや、だから「編集」とはコミット単位で考えてないんですか?
YES か NO でお応えください 今回の追加分の処理の円周率は3.1415までは必要
既存の処理は3.14で十分
このとき既存処理と追加分の処理とで同じ円周率3.1415を共通で使うかどうかって話だな
ビジネスならNo
既存の処理を変更することになる 今回の追加分の処理の円周率は3.1415までは必要
既存の処理は3.14で十分
このとき既存処理と追加分の処理とで同じ円周率3.1415を共通で使うかどうかって話だな
ビジネスならNo
既存の処理を変更することになる >>703
つまりサーバーにアップロードする前
個人のコンピューターの中でだけ
一時的に壊れてるってことですか? >>704
ビジネスならNoとか意味わからんし、こっちが恥ずかしくなるレベルw
仕様による。それだけ。仕様書がないのは論外
> このとき既存処理と追加分の処理とで同じ円周率3.1415を
共通で使うならば、それは仕様変更。なぜなら既存の処理の動きが変わってるから。
なお、動きが変わるのでこれはリファクタリングではない(リファクタリングと関係ない話)
仕様変更なのでいままでのテストは通らない可能性があるだろう
まあリファクタリングではないので、それはしかたない
> このとき既存処理と追加分の処理とで同じ円周率3.1415を
共通で使わないならば、既存の処理は変わらない
既存の処理は変わらないのであれば、追加分の処理を除いた既存の処理はリファクタリング可能(必須ではない)
既存の処理に関しては仕様変更しないので、いままでのテストはそのまま通る
追加分の処理は、そもそも存在しなかったものなのだから、この文は当然リファクタリングではない >>706
コミット単位と言ってる意味が
「毎回機能が保たれた状態に編集してテストまでして問題なくコミットすること」を意味しているなら壊れてない状態
それ以外は壊れてる状態 >>703
質問に答えてくれないので、追加で追い打ちw
つまりサーバーにアップロードする前
個人のコンピューターの中でだけ
一時的に壊れてるってことですか?
他の人は壊れたことに気づかない=壊れてないってことですか? >>708
でも他の人は誰も、一時的に壊れたことに気づかないんですよね? >>711
バージョン管理ソフト用語で、変更の1単位を表す
ソースコードの修正は複数のファイルにまたがることがあるが
その複数のファイルの変更をまとめて一つにしたものがコミット
通常はコミットごとにテストを実行し壊れていないことを確認する >>710
他人は関係なく自分で今プログラムをどういう状態にしようとしているか
編集を始めた時点で壊し始めている
当然他人にそんな事認識できるわけない
ローカルで勝手にやってる事が壊してるというのはおかしいというなら
俺とは考えが違う >>713
え?だってあなたの定義だと既存の機能に全く手を付けなくても
機能追加中も壊れますよね?
ソースコードコンパイルできなくなるんだから >>714
機能追加中はエンハンスだから壊してる状態
文法エラーでコンパイルできないならそれ以前の問題 ソースコードの修正途中に一時的に動かなくなることを壊すと言ってるのなら、
それをリリースするわけでもないので大したことじゃないから
心配する必要はなにもないってことになるのでいいんですよ。 (自動化された)テストが重要なのは、壊れてないことを保証するためですからね
一時的に壊れてもコミット時に壊れてなければ問題ないので
リファクタリング(動きを変えない)の場合はテストを変える必要もないので、
機能追加と違って、安心して変更ができるわけなんですね。 揚げ足取りしかできなくて自分の意見が表明できないなんて悲しいな リファクタに耐えるようなうまいユニットテストつくれん
設定項目が膨大すぎてIF変更やDBの取得先変更で
あっさりで投げ捨てられる
F痛でDBの更新項目とか結果全部テストしてたからそういうふうにしてたが
世間の常識とちがうらしい ゼネコン案件だったらほとんどがコーディングスキルゼロの素人が設計したスマートUI乱用システムだろ
そのようなシステムではそもそもユニットテストは作れないのが普通なんだ
無理してユニットテストを作るんじゃなくて設計か要件定義までロールバックしたほうがいい >>668
動きは変えない。
変わっていないことを証明せよ。 このリファクタ馬鹿って、結婚障害だとか書いてる馬鹿と同一人物なんだろ
ほっとけよ >>627
毎回リファクタリングが必要とか、
無能すぎてもう何やってるか理解できてないんだな。 業務システムだと簡単すぎて時間が余る
暇を弄ぶのも苦痛なのでテストを整備してリファクタリングする
これぐらいでいいんだよ
無理してやるもんでもないし頑なに拒否するもんでもない うちのメンツだとリファクタはまずないわ
なにせ綺麗だもん常に うちは正規職員しかいないから
正規職員も全員偏差値70は最低でもある
だからソースも無駄がないのさ
馬鹿な派遣だらけの職場は大変ですね >>727
ビジネスが進歩とか、
お前の辞書()には面白い単語が載ってるんだな。
つか、表面に見えてるビジネスに依存したソース書くのは素人丸出し。
まともに設計できる技術者なら、リファクタリングなんて無駄な事は発生させない。 >>731
言語やフレームワークの進化も無視ですかそうですか >>1って、自分以外誰も支持してくれない現実どう受け止めてんの?w
ああキチガイだから受け止めないかw >>732
そうそう
お気づきの変化が起きた頃にはリプレイスです
リファクタ不要だろ?w 客「仕様変更をお願いしたいですが」
お前「リプレイスですね」
客「ちょっと仕様変更だけなんですが」
お前「無理です。変えられません。リプレイスしたほうが安いです」
客「来月さらに同じところの仕様変更を考えてるのですが」
お前「またリプレイスでしょうねーwww」 >>731
まあそこが君んとこの限界なんだろうね
業務ルールや要望が変化するたびに秘伝のタレを付け足していけばいいさ リファクタせずに機能追加しまくって
限界が来たらリプレース
理にかなっている ・客先にて
客「広島から大阪を経由して東京へ行く仕様を、京都経由に変更してくれ」
上司「了解しました」
・社内にて
上司「大阪と京都は近くだから簡単だろう?すぐに修正してくれ」
お前「現状、広島から北海道を経由して福岡を経由して新潟を経由して京都を経由して東京に行くようになってますから
京都からさらに大阪を経由して東京に行くんですね」
上司「は? 広島から京都を経由して東京にいくだけだろ。なんでそんなに遠回りしてるんだ?」
お前「動いているコードに手はださない。既存のルートに付け足すだけだ。今までずっとそうしてきた」
上司「それだとムダでわかりづいらいだろ。リファクタリングしろ」
お前「コードぐっちゃぐちゃやねん。手遅れだ。リプレイスしたほうが早い」
上司「なぜこまめにリファクタリングしなかったんだ?」
お前「リプレイスしたほうが早いからだ」
上司「手遅れにならないうちに! こ・ま・めに!」
お前「知るか、リファクタリングなんか不要!」 ・客先にて
上司「この間の仕様変更の作業中に、遅かった理由が判明しました。
広島から大阪を経由して東京に行く仕様ですが、
広島から北海道を経由して福岡を経由して新潟を経由して大阪を経由して東京に行っていました」
客(絶句)
上司「担当者は今回の仕様で、上記に追加して大阪からさらに京都を経由しようとしていましたので、
ご安心ください。クビにしました」 コードを書くのは下流だけど下流に行くほどリファクタリングに無頓着
派遣さんはコードを書かせたらサヨナラバイバイだから
彼らには後の事を考えてコーディングする機会がないのだろうね
そうなるとリファクタリングという発想自体が出てこなくなるのも仕方がない >>738
正解
その頃にはシステム担当者が変わってるから、引き継ぎを兼ねて新しく作るのが吉 新人「大阪経由を京都経由に変更するんですね!(簡単そうだ)任せてください!」
上司「ちなみに納期はこれこれだから」
新人「まあ、変更少なそうだし、大丈夫でしょう」
新人(コード見て絶句)
新人「え!!その期間でその修正を!?」
新人(無理や・・・大阪からさらに京都へ経由する処理を追加するしかない)
上司「おい、なんで。広島から北海道を経由して福岡を経由して新潟を経由して京都を経由して大阪を経由して東京に行ってるんだ?」
新人「知らねーよ。既存のコードがそうなってたんだから真似しただけだ」(暗黒面落ち) >>742
新しく作るには、ぐっちゃぐちゃのコードを解析しないといけないんやで? リプレースって既存システムの仕様解析を諦めてベタ移植するフラグが最初からたってる
汚いレガシーシステムを違う基盤上の汚いレガシーシステムに置き換えるだけに終わる
莫大なコストがかかるくせにビジネス上のメリットは殆どゼロ >>738
> リファクタせずに機能追加しまくって
> 限界が来たらリプレース
> 理にかなっている
限界が来る前の修正でリファクタリングしない理由がわからん 既存システムがめちゃくちゃで仕様解析は無理だ
↓
解析は諦める
行単位で移せば機能を維持したまま移植できるはず
↓
言語やライブラリの仕様の違いのせいでバグが多発
残業しまくって火消しするしかない
↓
なんとか移植完了
バグ数が多いので客は品質に強い懸念を抱いているがテストは通した
たとえスカスカでもテストは通したんだから大丈夫なはずだ
↓
経営陣に土下座させて客への説得もなんとかクリアして受け入れも済んだ
さあ本来の目的だった機能を追加するぞ
↓
コードがめちゃくちゃでどうやったら機能を追加できるかわからないよ
リプレースって毎回こんななるんだけど
リプレースがうまくいくことなんてあるの? リプレースついでに新しくしましょうとかやるからだろ
リプレースは古いものを使うのが鉄則
そんで限界が来るまで使って
限界が来たら、リプレースをする リファクタリングしてリプレースに耐えうるコードに書き換えてからリプレースするとうまくいくのだけど
コストをケチってリファクタリングが省略されて失敗する リプレースって仕様書みて一から全部再実装するんだぞ
そのために仕様書があるわけで、
完璧な仕様書が求められてる >>743
フレームワークが少し変わるとリプレイスとか頭おかしいよね >>739
まさにお前のいうようにするわ
いままで北海道で下車できてたのにできなくなったら大デグレードじゃん
それリファクタじゃない
クビになるのは間違いなくお前のほう
多少遅いぐらいなんだってんだ
通常の現実世界とプログラムの世界の違いを知れよ
どうせ1秒2秒だろ?またせとけよ >>754
> いままで北海道で下車できてたのにできなくなったら大デグレードじゃん
勝手に仕様を追加するな > 通常の現実世界とプログラムの世界の違いを知れよ
> どうせ1秒2秒だろ?またせとけよ
実行時間の問題じゃないのよ。解析にかかる時間が問題なの
別の担当者が作業した時、なんでこんなことをしているのかわからないコードを
自信を持って完成しましたと言えないことが問題なの
何をやってるか知りませんが、動くからバグはないんじゃない?
テストに漏れがないと良いですね。
こんな無責任なこと言えないの 仕様変更で既存のコードに付け足してつじつま合わせのようなことをしてるなら
テストも同じように付け足してつじつまを合わせをすることになる
必要のないテストをするだけじゃなくテスト自体の自信もなくなる。
こんなテストしてますが、このテストは正しいのですか?
必要なさそうなテストですが、前の人がやっていたので繰り返しやります
時間かかりますね。 >>748
リプレースの目的と、今後必要な機能を整理して、
現状よりも効率の良い新システムとして提案するのが正解。 >>758
例えばCOBOLのバージョンを毎日確認したりしないよね
いつの間にか「あれ?バージョンが上がってる?」ってなる
数年スパンで起きる現象なんだから
お気づきの変化が起きた頃には(数年たっていて)リプレイスです。 >>755
理由もなくそんなことになるもんか
変えたら何がおこるかわからん >>759
> リプレースの目的
リファクタリングしてなかったので
想定よりずっと早くコードの寿命が来てしまった
仕方がないのでリプレースで対応します >>761
意味がわからん。
> 客「広島から大阪を経由して東京へ行く仕様を、京都経由に変更してくれ」
どこにも北海道で下車したいなんて書いてない リファクタをリプレースと呼べば多少動きが変わっても許してもらえるという願望 >>755
自分が知らない仕様を他人のせいにするなよ。。。
こういう馬鹿が「聞いてない」「勝手に仕様が追加された」とか言い出すんだよな。
利用者にとって当たり前の仕様くらい把握する力を持てよ? >>762
コードの寿命。。。?
お前の書いたコードは経年劣化するのか? >>763
客も開発者もすべての仕様を常に把握してるわけじゃないからな
どっかでだれか急に悲鳴上げて大混乱になる >>765
だから意味がわからん。
> 客「広島から大阪を経由して東京へ行く仕様を、京都経由に変更してくれ」
どこにも北海道で下車したいなんて書いてない
仕様に書いてない挙動も、動作保証してるのかな?w >>767
つまり「仕様変更は認められません」ですかな?w 客「仕様を変更し欲しい。どれくらいかかりますか?」
お前「仕様変更は認められん。こういう使い方してるかもしれないだろ」
客「いやそういう使い方してないから」
お前「お前が決めるな。客は神様ではない。」
客「お前の所に開発頼むのやめるわ」 >>769
仕様変更の依頼があったら大手を振って変えられるし
多少デグレしても言い訳は立つ
ちょっと大阪を京都にするだけだろ?そこだけ対応するよ? >>759
増改築繰り返したシステムではその必要な機能を解析することがほぼ不可能 客が求めてないのに、一旦リリースした以上
混乱を招くかもしれないからって仕様変更を拒否するとかイミフ >>768
そんなことすら理解できないから、
お前は素人だと言ってるんだよ。
現状それで運用されてるんだろ?
なんでわざわざ北海道経由してるのを
「お前の判断でやめてもいい」んだ?
それは最早リファクタリングでもなんでも無い。
ただのバグ追加だ。 >>771
> ちょっと大阪を京都にするだけだろ?そこだけ対応するよ?
大阪で下車するかもしれないだろ?
というような(意味不明な)話だったはずですが? >>774
> 現状それで運用されてるんだろ?
> なんでわざわざ北海道経由してるのを
> 「お前の判断でやめてもいい」んだ?
↓どうみても客の判断なんだが? 何を言ってるんだこいつ。
> 客「広島から大阪を経由して東京へ行く仕様を、京都経由に変更してくれ」 >>775
なんか気づけば指摘してやるが
そこは客が言い出したんだから間違いがあったら客のせいにできる >>777
つまり
> いままで北海道で下車できてたのにできなくなったら大デグレードじゃん
っていうのは間違いってことね >>778
そりゃ客が北海道で下車したいって今まで言ってないなら
そんなことに対応する必要はありませんね ・客先にて
客「広島から大阪を経由して東京へ行く仕様を、京都経由に変更してくれ」
上司「了解しました」
・社内にて
上司「大阪と京都は近くだから簡単だろう?すぐに修正してくれ」
お前「現状、広島から北海道を経由して福岡を経由して新潟を経由して京都を経由して東京に行くようになってますから
京都からさらに大阪を経由して東京に行くんですね」
上司「は? 広島から京都を経由して東京にいくだけだろ。なんでそんなに遠回りしてるんだ?」
お前「動いているコードに手はださない。既存のルートに付け足すだけだ。今までずっとそうしてきた」
上司「それだとムダでわかりづいらいだろ。リファクタリングしろ」
お前「コードぐっちゃぐちゃやねん。手遅れだ。リプレイスしたほうが早い」
上司「なぜこまめにリファクタリングしなかったんだ?」
お前「リプレイスしたほうが早いからだ」
上司「手遅れにならないうちに! こ・ま・めに!」
お前「知るか、リファクタリングなんか不要!」 続き
・客先にて
上司「この間の仕様変更の作業中に、遅かった理由が判明しました。
広島から大阪を経由して東京に行く仕様ですが、
広島から北海道を経由して福岡を経由して新潟を経由して大阪を経由して東京に行っていました」
客「今までの経由の変更はすべてそんなことをしていたと?頼んでないんだけど?」(絶句)
上司「担当者は今回の仕様で、上記に追加して大阪からさらに京都を経由しようとしていましたので、
ご安心ください。クビにしました」 おまえぐらい同じこと何回もコピペするのが好きなら
リファクタしたくなるのもわからんでもない >>783
読まないで途中参加するやつがいるから
これ結構効果あるんだよ。 一見仕様にないように見えても
イクラ弁当がたべたいとか言い出すやつがいたりして
そこで仕様がねじくれてる可能性もある
ぜんぜん関係ないはずなのに勝手に機能削除してそこでデグレたらだいぶやばい まず経路をデータとして扱うように改修して
既存の経路と同じ結果になるデータを投入してテスト
新しい経路のデータを投入
リファクタリングしてよかったな
しなければ経路を増やすたびにバカバカしい議論、コード分析、コード改修、ビルド、テスト、納品、客先説明をしなければならないところだった
とんでもないコストだよ >>785
何度も言わせるな
なんか気づけば指摘してやるが
そこは客が言い出したんだから間違いがあったら客のせいにできる 客の仕様自体が間違ってた時な
べつにそこだけ変えりゃ今まで通り達成できるのに
全然関係ないとこでデグレてあんたが言ったからだって通んないでしょ >>760
日本語がおかしいって指摘だろ
そしてCOBOLかよwww >>788
そこは客が言い出したんだから間違いがあったら客のせいにできる 言い出した部分自体の仕様バグだったらね
これは関係ないとこの機能削除しようってんだからだめだろ
どっちにせよ現実に対しては何の解決にもならんが そりゃリファクタリングしないほうが良いとか誰も支持せんわw >>792
やっぱり現実的に解決できるのは
リファクタリングしかないのかな
仕様変更で無駄になったコードは削除しないといけないね 今回の例↓みたいに
> 客「広島から大阪を経由して東京へ行く仕様を、京都経由に変更してくれ」
広島 → 大阪 → 東京 を
広島 → 京都 → 東京 に変更する場合
既存の処理(大阪に行く)を残して
広島 → 大阪 → 京都 → 東京 に変更する方法もある
だがそれは客は望んでいない
で、忘れてはいけないのはコレは ”リファクタリングではない" ということ
仕様変更なんだから当然リファクタリングではない
じゃあこの話のどこにリファクタリングが絡んでくるのかと言うと
(手っ取り早いという理由で)広島 → 大阪 → 京都 → 東京 と書いた後
(客の要望通り無駄な)大阪 を経由する処理を省くこと
広島 → 大阪 → 京都 → 東京 を
広島 → 京都 → 東京 にすることがリファクタリング
ここまでやって、完成と言えるのだが
こまったちゃんは動いたからOKでしょで、完成にしてしまうから
それが積み重なって、(客が要求してない)こんなクソコードになる
広島 → 北海道 → 福岡 → 新潟 → 大阪 → 京都 → 東京 仕様変更のたびに、こうやって無駄になってしまったコードを
削除することもリファクタリングの一つなんだよ >>795
その要望で、その直し方する且つそんな直しになるプログラムを組むバカがいるとこで働いてないので 俺はそんなところで目隠しされた状態で働いてる
へたに動いて事故れない >>776
だからお前はど素人なんだよ。
「現状のルートは京都を経由していない」
という可能性に気付け。
勝手に仕様を自分の中だけで完結するな。
相手の意図を正しく判断して、今のシステムと比較して確認しろ。
お前のいうとおりなら、そもそも京都を経由してるんだから
要望じたいが発生しない。 >>803
お前一人でずれたこと言ってるぞ
もう少し落ちつて書いてある要望を見ろ
それが全てなんだから >>786
いちばんヤバいやつ
データ化すると仕様変更にいちじるしく弱くなる
それこそ最初から設計されてなきゃ
なりゆきで変えちゃったらどつぼにはまるパターン
そしてどのみち駅ごとに別のことやるからテスト工数削減できないという
そのうえプログラムだとIF文ですんだところがデシジョンテーブルなんか使ったら
ちょっとしたきっかけで組み合わせ爆発、そのすべてをテストせざるを得なくなる 客や上司が意地悪だとこっちの様子やプログラム見てわざと困るような要求してきたりするしな!
世界が敵に見えてる人間のやることではない リファクタリング禁止とか言ってるやつが書いた(クソ)コード見てみたいよなー
でもクソコード書くようなやつは公開しないだろうなー
ってことでなんかないか探すスレ立ててみた
【反面教師】 オプソで汚いソースコードを見てみる
https://mevius.5ch.net/test/read.cgi/tech/1540137601/ >>805
> そしてどのみち駅ごとに別のことやるからテスト工数削減できないという
駅の話なんて一言も言ってないよ >>805
何言ってんだ?
ハードコードされてる方が変更に弱い
経路という明らかにデータで表現すべきものを手続きで実装するなんておかしいよ
そうやっておかしなことをやるから「既存の経路をコピペして付け足しましたー」などと無茶をする奴が現れる
データだったら「新規経路登録しました」で済む話だ
プログラムの変更がないからテストも最小限で済む
客への説明もこれ以上ないほど簡単だ この事例でパスをデータ化しない奴は即刻クビでもおかしくない 任意のデータを扱えることという要件がない以上やらんほうがいい
客の要望が都合よく同じ枠組みからずっと外れずにいる保証なんてないぞ
やっていいのはこっちが開発のアドバンテージを握ってるときだけだ
思い付きで下っ端がリファクタでやるとか自殺行為 仕様が変わる可能性があるから「具体的な経路」と「枠組み」を分離してメンテナンス性を上げるんだろが
これらがハードコードされて絡み合ってたら直すに直せんぞ 経路が本当は何を意味しているか気づいてないやつばかりだなw
これ、コードの修正方法の話よ?
例えば、既存の処理が
A という処理を行って
B という処理を行って
C という処理を行っているとき、
仕様変更で、BをB'に変えてください(もうBは不要です)と、客から注文が来た時
A という処理を行って
B' という処理を行って
C という処理をすればいいのに
もしかしてBを使ってるかもしれないだろ!(実際には使ってない)と
使うかもしれないだろ(そんな予定はない)と
動いているコードに手を出すな!とかいって言って
客が残せなんて言ってないものを自分の判断で勝手に残して
A という処理を行って
B という処理を行って
B* という処理を追加して Bの結果からB'の結果を作り出して
C という処理を行うという修正をする
素直にBをB'に変更すれば、コードもシンプルになり内容を明確になるのに
修正するたびに既存のものをなるべく残して処理をねじり込ませてコードを複雑にしていく
こういうことするやつがシステムを腐らせていく
なお修正作業の流れだが、BをB'に変更するのが簡単であればそのまま変更すればいいが
複雑な場合は、直接 BをB'にするのではなく、一旦 B+B* にしてテストコードを書いてから
リファクタリングすることで B+B* を B` に変更するという方法もある >>820
内容が理解できないなら無理して話に加わらなくてもいいんだよ? >>812
既存システムで扱われている「経路」というものを
「データで扱った方が良い」と判断した根拠が示されていないんだから、
賛同者が居ないのは当たり前。
データに分離しない方が楽なときはまたリファクタリング()するのか? >>821
書いた俺が内容わからないわけ無いだろw >>824
お前は、自分の書いたことすら理解できてないだろ。
1つのレス内ですら筋が通ってない。
真ん中頃と最後の発言比べてみ? こんなに必死になっても、誰も同意してくれないってことは
自分に間違いがあるってことだってことに気が付かないんだろうな
人の意見に耳をかさず、自分の意見は主張し続ける
パヨク病だな完全に >>828
こんなところで自己紹介しなくていいから >>820の言いたいことがわからん
方針決めずにダラダラ書いていくのがリファクタリングってこと? 設計もせずにいつもグダグダになるから
リファクタリングが必要とか言い出すんだろう >>830
> 方針決めずにダラダラ書いていくのがリファクタリングってこと?
リファクタリングの利用の場面はいくつかあって、
その一つが、テストファーストであるという話
先にテストを書いて、そのテストに通る最低限のコードを書く
(ここまではリファクタリングじゃないぞ)
そしてテストに通る状態を維持したまま、質の高いコードに変える
これがリファクタリングの利用例の一つ >>833
なんではじめから質の高いコードを書かないの? 時間効率悪くても
最初は動くの確かめて安心したいから >>834
既存のコードがあって、そこに付け足すから。
ちょうど今やってるんだが1関数50行のコードがある。
少々長めだが、switchである値はこれ、この値はこれ、みたいな処理の連続で
単純な処理なのでこのままで質には十分だった。
だけどその値のパターン数が5つだったが、新たに3個追加になる。
似たようなコードなので今のコードに単純に追加するのは簡単だが
これをやると単純計算で1関数80行にもなってしまう。1関数80行はさすがにヤバい。長過ぎる
許容範囲の品質が、悪い品質に変わる瞬間
だから今リファクタリングを行ってる段階。(3個追加はまだする段階ではない)テストはあるので安心。
関数の中にある似たようなコードを共通化して別の関数に追い出すことで15行減らした。
もう一箇所減らせそうなので15行、50行のコードが20行程度になる予定
これに3個追加しても+12行で32行なので十分な品質だろう
もしもっとパターン数が追加になれば、パターンごとに別関数にするだろうけど
まだそこまでやる段階じゃないな。今の段階でこれをやると逆に関数に分けすぎで見通しが悪くなる >>836
設計しろよ。。。
スケーラビリティーの考慮なんて基本中の基本。 >>837
コストを考えろ。
必要かどうかもわからないことをやるな ソースコードが仮に1万行だとすると、
1関数あたり平均20行として500関数ぐらいかな?
今作ってるのを見てみたら2000行程度で
120関数だから大体計算あってる
何が言いたいかって言うと、1万行で500関数ぐらいは
設計時点で関数名出してくださいよっていったら
不可能と言うだろうってこと。俺もそう思うw >>839
設計もせずに書き始めるから書き直す羽目になるんだろ。
コスト意識ないバカはこれだから・・・ >>841
設計っていうのは規模で変わるんだよ
一階建ての家と二階建ての家の設計が違うように
設計は変えないといけないの
お前MS-DOSの時代にWindowsの設計をする馬鹿じゃないだろうな?w ガチガチに設計してしまったら、変更に弱くなるからな
作り直しが必要になるのは、やりすぎた設計が原因だよ
必要最小限の実装にしておけば、そこだけ修正すればいい 全く設計しないみたいな論調はどこからでてきた?そして何故その前提を受け入れるんだ?
リファクタリングは必須だがだからといって設計をしないわけじゃない
どんなに注意深く設計しても多人数で時間をかけてコードを蓄積したらコードは劣化するからリファクタリングが必要なんだ
はじめから汚く書いてもいい免罪符にはならん
テストドリブンでもすべてを厳密に動く汚いコードから始めるメリットはない
普通はできるだけキレイで動くコードから始める 設計を変更するって言ってる時点で、
最初に設計してるの当たり前ですわw
客からなにを言われても、修正対応は受け付けない!って
突っぱねるなら話は別だけどwww とりあえず、1万行のソースコードから
500個の関数名を始めに設計(?)できるもんなら
やってみなと
あーだこーだと机上の空論で手を動かさず
設計に何ヶ月もかかったりしてなwww >>844
リファクタリング必須とか言ってる時点で設計とは何かを理解していない 詳細設計書く力があったら普通にできるんじゃないか
やることって大体決まってるだろ >>847
設計と内部構造に何の関係があるの?
設計をしていれば、内部構造も決まるってこと? あ、KACが言ってることが破綻してきたw
どう答える気だろうwww >>850
なにが破綻してるというのか。
内容が理解できないなら無理して煽らなくていいぞ? 破綻してるな。
リファクタリングは内部構造(実装)の問題点を修正するものなんだから
設計していればリファクタリングが不要になるというのなら、
設計時点で、内部構造(実装)まで決まっていないといけない しかも、最初の時点で最終的な設計をしなければいけない
バージョンアップしていくという当たり前のことできない バージョンアップしてもリファクタリング不要にするってことは
初期バージョンの時点で最終バージョン用のコードを書くってことですかねぇw
最終バージョンの機能なんて決まってんの?
そもそも最終バージョンなんてものが存在するのか知りませんが 最初のうちから完璧なものを出せって考え方だと
いつまでたってもリリースできないんやで なるほど。
お前が設計がどういうものか全く理解していない事はよく分かった。 昔はこの手の人を小ばかにした韜晦でいいようにつつきまわされたもんだ
今は死ねとしか思わん >>857
みんなお前がわかってないと思ってるよ
なぜならお前は設計がどんなものかを何一つ言ってないから >>859
おまえ、周りの人達も「設計を理解していない」とか思ってる?
理解してて当たり前だって事すら知らないんだな。 IT技術者辞典
理解=個人的解釈
当たり前=根拠のない思い込み では設計を理解してるKACに問おう
設計とはなんぞや?
簡潔に述べよ 昨日の50行→80行になりそうだった関数。言ってなかったけど
あれからリファクタリングして35行に減らした。
で、そのあともう少し見直して、パターンごとで関数に分けるのではなく
中でやってる処理を複数の処理に分けられることに気づいた(適切な名前をつけられた)
そこで分割したら、メインの関数が25行に減って、そこから呼び出す4つの関数
(それぞれ15行、20行、5行、10行)に分割できた。
テストもそれぞれの関数ごとに行えるようになったので、よりシンプルになった
最初からこうしろと?無理だよ。一番最初は30行程度だったんだぜ。
初期バージョン時点の複雑になってない状態で分割とかしてたら
いつまでたってもリリースできない。 >>865
?
時間をかけて35行に減らしたものを、さらに、25+15+5+10 = 合計55行に
増やして "改善された" って言ってるんだけど?
行数で "あんたが望んでいるようなこと" は何も語ってないよね?
このようにリファクタリングで時間がかかるのに
将来のバージョンアップでどうなかもわからないのに
最初のうちに将来のバージョンアップを想定してやるのは時間の無駄
だけど1関数80行を放置したら、さらに時間がかかる
このタイミングでリファクタリングするのはいいタイミングよ。
開発コストは行数とは無関係。だけど多くの場合複雑度とは関係ある
複雑だとテストの時間も長くなるし、バグも増える
コストを掛けて1関数の行数を減らす=複雑度を減らすことは
将来のコストを減らすことにつながる
ただし1関数の行数は減っても全体の行数は増えることもある。
もちろんそれで良い。重要なのは複雑度
だから行数と開発コストを関連付けるなんて古いタイプの人間の考えとは全く違う あと設計で関数の名前を出すといってるのかしらんが、
実装(何行かかるか、どれくらい複雑か)がわからんうちに
どれくらいの数の関数が必要なのか、わかるはずがない
5行以下の関数を大量に作ったら、それはそれで分かりづらいし
そもそも関数に分割するべきかを行数で判断してはいけない
(ただし行数と複雑度に相関関係はある。俺は行数ではなく複雑度で判断して分割している) 現実でも誰にも支持されてないんだろうな
これだけ利害関係もない多くの人がいるとこでも支持されない
無様w
誰でも極端なやつは相手にされないんだよ
適材適所
なんでもかんでも自分が読んだ本はすべての人が実践しなければならないって思い込んじゃうんだろう
精神病患者だな完全に 40年ぐらい前なら支持されてたかもしれないなー
当時はリファクタリングなんて用語はなかっただろうし
自動テストってのもなかっただろう まあ待て支持を得られているかどうかを判断するのは
KACが設計とはなにかを語ってからにしようじゃないか
今は何も言ってないから支持を集められないだけ KACが考える設計がそれ(世間一般の常識)とずれてるって話 >>870
40年前だと、ほんとに露骨なほど、
腕の良いプログラマとそうでないプログラマの作ったソースコードの差が酷かったからなw 根本的に海外の人の設計思想って、日本で言うところの内製環境が絶対的前提条件だしなあ
ぶん投げた先の派遣の馬鹿に設計なんてやらせないし >>876
本人が設計を言わないで、
オラの考える設計と違うだと言ってるから
KACが間違ってるんだろうって話だよ >>877
海外と同じように、派遣がやってる設計を全部
自分の所で引き取って、自分で設計すれば良いのでは?
本当の理由は、派遣が〜じゃなくて
あんたの会社に、開発リソースがないってことでしょう? >>878
設計なんて皆普通に理解できるけど
貴方には無理って事? >>880
は?
プログラマの立場。日本と海外とどういうスタンスの差があるか調べたら?
その違いから、根本的に海外の開発設計思想を日本で語ろうというのが間違いなんだよ 日本の場合プログラマは大半が派遣・少し外部、部内プログラマは極小
海外の場合プログラマは大半が部内プログラマ、少し派遣・外部 日本で開発設計手法を語るなら、日本の開発環境を大前提とした開発設計手法を独自に考えないと意味がないね
たとえガラパゴスと言われようとも
それが嫌なら、海外とプログラマの立ち位置を同じようにしないと話しにならん >>882
いやいや、派遣のせいにするのではなくて、
そういう開発してるのはあんたの会社でしょうって話。 > 日本で開発設計手法を語るなら、日本の開発環境を大前提とした開発設計手法を独自に考えないと意味がないね
念の為に言っておくけど、海外の開発設計手法は
全て日本には当てはまらないという話にしたらだめだよ?
海外の開発設計手法は全く使ってないと言うのなら別だけど。 結局リファクタリングって何してるの?
関数を小分けにして作業時間の水増しを図るって事? ソースコードの複雑性を解消して
メンテナンス性を上げてる まああれだな。
整理整頓するのには時間がかかる
だから散らかっている方が、時間の節約になる
と短絡的に考えてる人には理解できないw そもそも散らかさない
という考えには至らないんだよな >>891
面白くないよ
バージョンアップすると、
必ず無駄な部分、効率が悪い部分が出てくるんだから
それよりキミ、自分の宿題をなかったコトにしないように
863 名前:仕様書無しさん[sage] 投稿日:2018/10/24(水) 20:23:06.43
では設計を理解してるKACに問おう
設計とはなんぞや?
簡潔に述べよ >>890
なるほど
整理整頓・ゴミ掃除が下手な人の言い訳なんだね >>893
そうそう。片付けるのには時間がかかるからと言ってやらない
結果余計に時間がかかる。
それを防ぐのがリファクタリングなわけさ。
こまめにリファクタリングしましょう >>894
でも整理整頓は一般常識の範囲なんで普通は仕事とは言わないよね?
その作業を仕事といってお金取るのはどうなんだろう
整理整頓をリファクタリングっていう言葉に置き換えて仰々しくみせてるだけな気がする 1剣件あたり10nsでやらないといけないとこを勝手に無学なやつにリファクタされる悪夢 >>895
> でも整理整頓は一般常識の範囲なんで普通は仕事とは言わないよね?
それは「整理整頓」の話ですね。
リファクタリングの話じゃないです。 >>896
リファクタリングしても10nsで実行できていれば問題ないのでは??? >>897
え?リファクタリングってコードを整理する事でしょ
処理の共通化や細分化ってコードの整理じゃないの?
整理整頓と同義だと思うんだけど 1. 作業をしていると散らかるのは避けられない
2. だから整理整頓やリファクタリングをしないといけない
3. 整理整頓もリファクタリングも作業効率が上がるという効果がある
4. 整理整頓は仕事ではないが、リファクタリングは仕事である >>900
1から3まで
と
4が一致しないというwwww >>899
はい? 整理整頓は仕事じゃないですが、
リファクタリングは仕事だって言っただけですよ?
そりゃどちらも効果はあるでしょう?
効果はありますが、整理整頓は仕事とは言わないといわれたから
リファクタリングは仕事かつ効果があるって話をしてるんですよ >>901
そりゃ、違うものなんだから違う部分ぐらいあるでしょう
頭大丈夫なのか?
効果は一緒。
仕事かどうかは違う >>900の話で、整理整頓が仕事から除外された理由がわからんわwwwwwwww
やっぱりキチガイだwこいつ >>904
> でも整理整頓は一般常識の範囲なんで普通は仕事とは言わないよね?
整理整頓は仕事なんですか?仕事じゃないんですか?
仕事なんですよね? 作業をしていると散らかるのは避けられないので、整理整頓やリファクタを「しなければならない」
整理整頓やリファクタは「効果がある」
だけど、整理整頓は仕事では「ない」。リファクタは仕事で「ある」
なにが起こったんだ???wwww 普通に考えれば、会社でやる整理整頓は仕事の一環ですよ
もちろんリファクタリングも仕事の一環
おかしいのは>>895 >>906
よし>>895を問い詰めようぜ。
この馬鹿が、整理整頓は仕事じゃないって言ったんだ なんだよw 結局、整理整頓もリファクタリングも
仕事なんじゃねーかw (リファクタリングの)アンチって行き当たりばったりで
しゃべてるから、すぐ矛盾起すよねw >作業をしていると散らかるのは避けられないので、整理整頓やリファクタを「しなければならない」
この「作業をしていると散らかるのは避けられないので、整理整頓やリファクタを「しなければならない」」から、お前以外誰も同意してないけどな。 >>910
整理整頓は仕事じゃないって言っちゃった本人ですかw
社会人失格ですよ >>912
そういうが、お前に同意しているやつは一人もいないじゃん コードのリファクタより重要なことは
ユーザーのシステム仕様に対する記憶や理解、把握が劣化しないようにすること
これをダメポシステムが教えた。
ユーザーのシステム仕様に対する記憶や理解、把握が劣化しなければ、システムの再開発は容易い。 >>915
それが不可能だからという前提なんですが・・・ 十分な時間が与えられ、誰も間違いをおかさず、仕様、設計が変更にならず
バージョンアップ(段階リリース)することもなく
最初から最終バージョンをいきなりリリースして
その後バグ修正以外のことをしないなら
リファクタリングなんか必要ない >>917
それも不可能という前提なんですが・・・ >>915の対応作として最近出てきてるのが、担当者交代毎のリプレイス法なんだがトップが理解してくれない悲しい現実 895だけど整理整頓を仕事の範囲なんて書いてないけど?
一般常識でいう整理整頓って普通は仕事前とか終わりなんかに自主的にするもので仕事外の作業だと思うんだけど…
そもそもコード書いたときに日常的にコードの整理を最後に加えておけばいいだけなんじゃないの?
なんでリファクタリングっていう整理だけの工程が仕事になってるの? >>921
あ!なるほど…いいよねフリーダム
束縛されない人生って素敵やん 別名:無職
司法「仕事は?」
リファクタリアン「社畜どもがwww」
司法「無職ね」 >>922
え?なに極端なこと言ってんの?
仕事なんだから仕事時間内にやれって言ってるだけなのに
そんなんだから社畜なんだよw >>920
そのコードの整理も仕事のひとつだと思うぞ おまえを支持するくらいだったら無駄にリファクタリングするわ 無駄なリファクタリングもあれば必要なリファクタリングもあるよ
当たり前だろ 整理整頓って言った方が心理的抵抗感が減ってGoサインが出やすくなることに気付いた でもまあGoサインとかもらうもんじゃないけどな
修正作業に含まれるものなんだから コードの複雑さを数値化して
複雑すぎるモジュールは作り直すんだよ
もちろんテストは全部やり直す >>935
そしてその作り直したものに修正を加える時はどうするの? >>935
正しいけれど
真の馬鹿は閾値を馬鹿みたいに上昇させて
結局リファクタリングなんてさせない。 複雑かどうかより、追加変更のしやすい形に直すんだぞ。
変更しやすければ、より複雑でも構わないんだ。
仕組みの複雑さより、見た目の複雑さの方が問題なのさ。 部下が勝手にリファクタやってたら懲戒にするわマジで >>938
「複雑」という言葉の意味を理解してないように見える
コードが複雑という話。重要なのは「コード」
読めない人がいる というのは「人の話」
この2つをごっちゃにしてはいけない
変更しやすいが複雑なコードなんてものはないだろう
>>939
リファクタリングは修正作業の中に含まれるものなんだが?
勝手に修正はしませんよ。客などからの要求があって作業します。
修正しろと言われたら、案に必要ならリファクタリングすることも含まれるってだけです。 >>938
次の仕事来なかったら意味ねーじゃんアホ? >>940
>変更しやすいが複雑なコードなんてものはないだろう
そんなことないよ 複雑と言うのは、既存機能モジュールに置き換えしたら結果全体的には複雑化になるって話だぞ。
複雑さと読みにくさは比例しない。
複数の分岐処理と論理演算駆使した1分岐処理と、どっちが複雑?
でその論理演算を1つの関数にまとめたら、最初のものと比べてどっちが複雑? 規模の大きい企業システムが混乱する原因はほぼ100%データベースだから
アプリケーションコードだけリファクタリングしてもあまり意味がないと思う >>945
DBリファクタリングはノウハウがあっても業務系では絶対に許可が出ないから需要がない > 業務系では絶対に許可が出ないから
それはノウハウがないってことでは?
許可が出ないのにノウハウなんて貯まるわけ無いでしょw
ってか、仕様変更があったらどうすんの?
DB変えられないので、仕様変更は受け付けませんって
客の要求を突っぱねるの? 仕様変更は(多大な労力が必要だけど)許可が出る
そこをはき違えちゃいかん だから仕様変更でリファクタリング(が必要な場合)の許可がでるでしょ
仕様変更などで(客などから要求があって)変更する許可がでたときに
作業工程の一つとしていれるのがリファクタリングだって何度も言われてるじゃん
なんでまたいつものように、勝手にやるのがリファクタリングだって思いこんでるのさ? 余計なことするなって言われて終わり
最小限の変更は許可するがそれ以外は認めない
これ常識ね そう思ってるのは末端だけ
決定権持ってる人は揃って無駄な工程と言う でも、無駄な工程と言ってるあんたは
決定権持ってないじゃんw リファクタリングは余計なことじゃないのかもしれんが
おまえらがやってるのはゴミを別のゴミに変えとるだけやからな
そもそもリファクタリングちゃうし どうしておまえらごとき一介のコーダーがリファクタリングできると勘違いしてしまったのか
闇は深いでこれ コーダーはコードしかみてないからな
変えた後の単体から受け入れまでのテスト工数
デグレのリスク
なのに後から参加して詳細知らないPGほど積極的で
最悪前よりさらにぐちゃぐちゃになる そもそも問題ないとこさわるな
一生経っても終わらんなる そこの関連のテストがナンボあるかわかってないやつに限って触ろうとする狂気 コードの問題じゃないぞ
動きに問題があるときだけだぞ >>953
俺が言ってる言ってないは関係ないと知れ >>962
コードを修正するときにより複雑にしていまい
不具合が発生する。大問題ですね >>964
せやな。上であるお前(笑)が
無駄と言ってるかどうかは関係ないなw >>960
> そこの関連のテストがナンボあるかわかってないやつに限って触ろうとする狂気
でも、客から修正しろって言われたんですよ?
客にテストがなんぼあるかわからんから、修正は受け付けないって突っぱねるの? リファクタリングの許可が出ない現実は変わらない
これだけは確かだ >>968
いや、修正作業の一環として普通に出るんだが? >>967
客の命令は仕方がないので直して全部テストする
余計な修正はしちゃダメ >>969
出ないよ
データベースの話だぞ
DB管理者が抱え込んでるからアプリ開発者などには手出しできん 大きいプロジェクトはな、詳細なんて誰もわかんねーんだよ
だから動くと自信を持って開発することなんかできやしない
動くかも?動くと良いな。で開発してあとはひたすらテストして
あ、動いてる?良かったよかったってのを増やすしか無いんだよ
その程度のプロとは思えない仕事をするのが現実なんだから
リファクタリングして動くと自信を持てるコードになんかする必要ないの
動いてるといいなーレベルで十分。 >>971
いや、仕様変更するんだから変更許可出る > DB管理者が抱え込んでるからアプリ開発者などには手出しできん
DB管理者がリファクタリングするんでしょ?
動きを変えないのがリファクタリングなんだから
アプリ開発者にとっては関係ないこと 新人が結合テスト中にコードリファクタして文字とか定数に変えまくってて
全体がめっちゃ変更履歴ついてて肝が冷えた
でも問題おこってないからわりかし大丈夫なのかもしれない やっぱ>>945(データベース・リファクタリング)読んだほうが良いぜ
お前(ら?)、どうせ無停止(もしくは短時間の停止)で
(客からの支持に伴う仕様変更で必須な)データベースの構造変更とかできないだろ?
データベースとアプリを同時に変更しなきゃいけないから
どうしても停止時間が必要ですとか思ってそう
(データベースの)リファクタリングは動きを変えないものなんだから
データベースのみ変更できるんだよ。 >>975
リファクタリングは動きを変えないものだからねー
動きを変えるものの変更は大変だけど
理論上動きが変わらないと確立されている
変更を行うだけだから問題は起きにくいんだよ >>976
んなあほな…
止められるときは止めたほうが安全だろ
変更中にシステムが正常に稼働し続けるテストとか
手続きを間違いなく行うための準備とか
その変更プロセス自体のリスクと重さ考えたら
よっぽどのことじゃなきゃやれん > 止められるときは止めたほうが安全だろ
止められない時の話をしてる > 変更中にシステムが正常に稼働し続けるテストとか
そんなんじゃAmazonのように24時間稼働しつづけてかつ
変更もされていくシステムなんか到底できそうもありませんね >>980
あいつら機械とかビルごと別のにしてんじゃねーの リファクタの手続きとしてはわかる
でもこれってほんとにシステムを停止させないための話なの?
切り替えるのはサブ構成作ってマシンごとごっそりやっちゃうみたいな感じじゃないの >>984
アプリとは違ってデータベースはサブ構成作ってえいやって
置き換えることはできないんだよ
すでに大量のデータが溜まってるんだから
データの変換作業というものが必要になる
そういうのをどうやるかが「データベースリファクタリング」には
書いてあるんだが絶版 >>988
意味がわからん。データベースはサーバーを分散したとしても
えいやって置き換えることはできないって話をしてる >>990
データベースを分散化することで、何がどう解決するのか言ってみ
お前、目的を忘れてるみたいだからさ あ?
まさか、単にバラバラにデータばら撒いてるだけだと思ってる?
主な目的は、相互補完だぞ。 そういうのは良いから、何(どういう問題)がどう解決するのか書いて
どうせわかってないから誤魔化かしてるんだろうけどw ちなみにデータベースのリファクタリングの話をしてるんだからな リファクタリングするよりクリアなスキーマ設計のデータベースを立ててデータ転送する方が楽 はいはい。それを無停止でやる方法が上で書いた
「データベースリファクタリング」に書いてあるんですってば
何周も回ってやっと追いついた感じだなw だめな会社は、優れたこと(リファクタリング)でも
理解できないので、なんでもだめといいます。
ゲーム?よくわからないからだめ
漫画?よくわからないからだめ
インターネット?よくわからないからだめ
これと一緒です。
とりあえず否定からはいって
会社をダメにする奴らです このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 164日 1時間 10分 26秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。