テストも書かないでリファクタリングとかうけるw
まずな、リファクタリングでは機能追加・修正は行わない。
動作はまったく同じでコードをきれいに書き換えること。
書き換えるといっても、これなら同じ動きだろ?って推測でやってはいけない。
まずテストを書く。ユニットテストをできるように、
単一のクラスでインスタンスを作る。
汚いコードなのだからたいていは依存関係のせいで単一ではクラスが生成できない
それを生成するために、クラスの動作を書き換える。
といっても元のコードは修正しない。継承やプリプロセッサを使って
依存関係を断ち切るために既存のコードを上書きする。
どうしてもそれが不可能な場合には、決められた手順で最小のコード修正を行う
そうやって既存のクラスのユニットテストを行う。
それでやっとリファクタリングが行える。
既存のクラスのユニットテストを通るように新たなコードに修正、
もしくは新規作成して置き換える。
この手順と考え方を守ってないのはリファクタリングではない。
で?
リファクタリングをただのコード修正と思ってる人へ
■ このスレッドは過去ログ倉庫に格納されています
2010/05/29(土) 17:25:56
317デフォルトの名無しさん
2014/07/27(日) 14:19:58.36ID:xgsJlmZ9318デフォルトの名無しさん
2014/07/27(日) 14:22:31.05ID:5m0dj4Xz 人間は細胞でできているだろ
プログラムも細胞で作れば上手くいく
俺の独自理論だけど
プログラムも細胞で作れば上手くいく
俺の独自理論だけど
319デフォルトの名無しさん
2014/07/27(日) 14:35:22.28ID:b6NTPR2W うだうだ言わずに 60兆個の細胞を持ってこい
320デフォルトの名無しさん
2014/07/27(日) 15:03:56.50ID:kK8gelhu 共通化するときの決まりの一つとして、
全く同じコードの時に共通化するのであって
似ているコードを共通化してはいけない。
似ているコードをむりゃリ共通化しようとすると、
引数で処理を分岐することになる。
aが渡されればAの処理を、
bが渡されればBの処理をみたいに。
引数で分岐しだすとアウトだな。
全く同じコードの時に共通化するのであって
似ているコードを共通化してはいけない。
似ているコードをむりゃリ共通化しようとすると、
引数で処理を分岐することになる。
aが渡されればAの処理を、
bが渡されればBの処理をみたいに。
引数で分岐しだすとアウトだな。
321デフォルトの名無しさん
2014/07/27(日) 15:10:03.90ID:oB6jVO7Z322デフォルトの名無しさん
2014/07/27(日) 18:36:01.67ID:b6NTPR2W 経験的にforの内部、ifの内部は関数にまとめると都合よいことが多い
そして気が付くと xxhelper, xximpl, xxsub といった関数であふれるw
そして気が付くと xxhelper, xximpl, xxsub といった関数であふれるw
323デフォルトの名無しさん
2014/07/27(日) 22:38:54.70ID:j6qWMrth324デフォルトの名無しさん
2014/07/28(月) 00:24:14.35ID:PUM3vemV325デフォルトの名無しさん
2014/07/28(月) 09:35:31.93ID:DND3Jclf それを吟味するってことだろ。JK
326デフォルトの名無しさん
2014/07/28(月) 19:34:15.48ID:dU5jf/g6 コードの字面で共通化とか言ってたらそら失敗するわ
327デフォルトの名無しさん
2014/07/28(月) 22:31:59.96ID:ZMdkhV+Q 共有化するには物事を抽象化するセンスが問われるから、
低能が共有化しようとして失敗するのは良く分かるよ
それに、言語によってはクロージャやメタプログラミングが無かったり
有っても扱い難かったりして、実現可能な抽象化が限られるケースもある
低能が共有化しようとして失敗するのは良く分かるよ
それに、言語によってはクロージャやメタプログラミングが無かったり
有っても扱い難かったりして、実現可能な抽象化が限られるケースもある
328デフォルトの名無しさん
2014/07/28(月) 23:39:29.31ID:PUM3vemV クロージャwメタプログラミングw
どんだけ狭い視点で話してんだよ
それかなにか、お前は世界中で使われるライブラリの設計者かなにかか?w
お前のコードとか会社に出たら即ゴミ箱行きだよww
ただの帳票出力で得意げにtemplate使ってんじゃねえwwww後引き継ぐ奴の身になれ
死ね。くさかどああkjsdふぁj;fじゃ死ねええええ
どんだけ狭い視点で話してんだよ
それかなにか、お前は世界中で使われるライブラリの設計者かなにかか?w
お前のコードとか会社に出たら即ゴミ箱行きだよww
ただの帳票出力で得意げにtemplate使ってんじゃねえwwww後引き継ぐ奴の身になれ
死ね。くさかどああkjsdふぁj;fじゃ死ねええええ
329デフォルトの名無しさん
2014/07/29(火) 00:32:02.60ID:A/TMSH0w トラウマだったのね。
330デフォルトの名無しさん
2014/07/29(火) 09:33:14.47ID:Rzs2MIMk 自分の経験上、>>328みたいにプログラミング言語の機能の話を
狭い視点とか言い出す奴って
コードをロクに書けないSEモドキに多くて、
そういう奴に限ってリファクタリングにも否定的なんだよね
コード読めないからリファクタリングの価値を実感出来ないのかな?
狭い視点とか言い出す奴って
コードをロクに書けないSEモドキに多くて、
そういう奴に限ってリファクタリングにも否定的なんだよね
コード読めないからリファクタリングの価値を実感出来ないのかな?
331デフォルトの名無しさん
2014/07/29(火) 13:10:26.45ID:DxicYUyC 夏休みの学生が妄想で書き込むスレ
332デフォルトの名無しさん
2014/07/29(火) 18:26:00.62ID:Wf2KiU9x 自分と同じドカタ仕事してる奴以外は
全て学生に見えてしまう様になったら病気です
全て学生に見えてしまう様になったら病気です
333デフォルトの名無しさん
2014/07/29(火) 20:26:27.73ID:vPKzHxKl 自分の経験上、リファクタリングしたがる奴は例外なく低スキル。
334デフォルトの名無しさん
2014/07/29(火) 20:36:44.73ID:ahLU5tbJ アホに効果を実感させるところまでが能力の内です
335デフォルトの名無しさん
2014/07/29(火) 21:31:45.45ID:X6c6OHYr アホSEがExcel仕様書の罫線を二重罫線に書き換えて
仕事したつもりになってるのに比べたら
比較にならないレベルの価値があるよ > リファクタリング
仕事したつもりになってるのに比べたら
比較にならないレベルの価値があるよ > リファクタリング
336デフォルトの名無しさん
2014/07/29(火) 21:41:52.70ID:jt6qgrVo 2重罫線を大事にする客だって多いわ。
客はコードの中じゃなくて、資料とか見るんだわ。
リファクタリングなんかしたらね、
なんかちょっと挙動変わってるんだけど?
障害じゃないけど勝手に変えちゃ駄目でしょ。
うん?次からは言います?いや、そもそも動いてるもん変えなくていいよ
って話になる。
なんでもかんでもリファクタリングだのオブジェクト指向だの、
時と状況関係なしにやろうとするアホが多いんだよな。
客はコードの中じゃなくて、資料とか見るんだわ。
リファクタリングなんかしたらね、
なんかちょっと挙動変わってるんだけど?
障害じゃないけど勝手に変えちゃ駄目でしょ。
うん?次からは言います?いや、そもそも動いてるもん変えなくていいよ
って話になる。
なんでもかんでもリファクタリングだのオブジェクト指向だの、
時と状況関係なしにやろうとするアホが多いんだよな。
337デフォルトの名無しさん
2014/07/29(火) 22:05:08.74ID:Lzz8ZlFD 工数改善の見通しが数字で説明できるならともかく
実感とかで勝手にリファクタされたらたまらんわw
実感とかで勝手にリファクタされたらたまらんわw
338デフォルトの名無しさん
2014/07/29(火) 22:24:39.47ID:7mGq5kmY 受託開発やってるところと
自社サービスの開発やってるところは
何もかもが全然違うんだから、
分けて議論しないと平行線のまま
自社サービスの開発やってるところは
何もかもが全然違うんだから、
分けて議論しないと平行線のまま
339デフォルトの名無しさん
2014/07/29(火) 22:32:24.06ID:jt6qgrVo SEがどーのこーの言ってるんだから受託だろ
340デフォルトの名無しさん
2014/07/29(火) 22:51:00.80ID:X6c6OHYr 受託なんてドカタを人月で売って稼ぐビジネスモデルなんだから、
リファクタリングでコードを拡張しやすく保ち、
機能拡張を他社より速く行う事で競争優位に立つ
とか、そういうのは関係ないじゃん?
お前らマクドナルドのパートと大差無いんだから、
技術者の議論に入ってきちゃダメだよ
リファクタリングでコードを拡張しやすく保ち、
機能拡張を他社より速く行う事で競争優位に立つ
とか、そういうのは関係ないじゃん?
お前らマクドナルドのパートと大差無いんだから、
技術者の議論に入ってきちゃダメだよ
341デフォルトの名無しさん
2014/07/29(火) 23:05:38.45ID:Lzz8ZlFD >>340
ほー。
具体的にどういう課題があってどんなリファクタして、プロジェクトがどの程度成果上げたのか具体的に説明してみ?
壊れたレコードみたいに本で読んだこと繰り返して、しかも理解が浅くて現実が見えてないっぽいから
底辺派遣てすぐばれるよw
ほー。
具体的にどういう課題があってどんなリファクタして、プロジェクトがどの程度成果上げたのか具体的に説明してみ?
壊れたレコードみたいに本で読んだこと繰り返して、しかも理解が浅くて現実が見えてないっぽいから
底辺派遣てすぐばれるよw
342デフォルトの名無しさん
2014/07/29(火) 23:07:53.67ID:fZzOasD9 >>341
現実つーかレスの意味が見えてないのはお前のほうだな
現実つーかレスの意味が見えてないのはお前のほうだな
343デフォルトの名無しさん
2014/07/29(火) 23:56:17.33ID:vPKzHxKl 何か高度な裏の意味があるらしい
344デフォルトの名無しさん
2014/07/30(水) 00:19:39.30ID:2joTlTTw 自社サービスで食っていけてるってだけで圧倒的な成果だろうな
労働集約型な受託開発なんて価格競争で擦り減るばかりで
エンジニアに何のメリットもないし、早く脱出すべきなんだけど
脱出するためのスキルが溜まらない負のスパイラル
労働集約型な受託開発なんて価格競争で擦り減るばかりで
エンジニアに何のメリットもないし、早く脱出すべきなんだけど
脱出するためのスキルが溜まらない負のスパイラル
345デフォルトの名無しさん
2014/07/30(水) 09:05:15.28ID:NitIOFnC SEが設計してコーダがコード書くってスタイルと
リファクタリングは相性悪いだろうな
リファクタリングは相性悪いだろうな
346デフォルトの名無しさん
2014/07/30(水) 11:16:11.07ID:l4R9UcQd SEの設計が日本語プログラミングになってるからな。
日本語と一対一のコードでないとめんどくさいことになる。
日本語と一対一のコードでないとめんどくさいことになる。
347デフォルトの名無しさん
2014/07/30(水) 18:54:49.24ID:z3bvSX8e >>346
それで食えないスパゲティの一丁上がりかw
それで食えないスパゲティの一丁上がりかw
348デフォルトの名無しさん
2014/07/30(水) 20:26:49.42ID:njRDxY7Y リファクタリングは1にも2にも自分のためにやるものだ
デスマーチを充実したアフターファイブに変えたければやっとけw
デスマーチを充実したアフターファイブに変えたければやっとけw
349デフォルトの名無しさん
2014/07/30(水) 21:00:14.66ID:JOmnGzMa350デフォルトの名無しさん
2014/07/30(水) 21:00:10.81ID:O2fC1zxl そしてリファクタスパイラルへ…
351デフォルトの名無しさん
2014/07/30(水) 22:54:34.89ID:xH5zP1F6 リファクタリング否定派は技術力に乏しく低脳という風潮
一理ある
一理ある
352デフォルトの名無しさん
2014/07/30(水) 23:20:51.69ID:B3MDpURs どう考えてもすぐリファクタする方が低脳だろw
リファクタしたがる奴の傾向として
・理解力の不足。
自分に理解できないものをすぐ諦めてクソ呼ばわりする。
他人の書いたコードの一貫したポリシーや目的を汲み取れないから、先人が用意してくれた便利なライブラリも使えない。
理解できないから規約も無視しがちで、彼の書いたところだけ作りがおかしい。
・謙虚さの不足。
相手を見下して、自分のほうがいいものが作れると根拠なく信じてる。
すでに用意されているものを再発明するだけならまだいいが、
しばしば完成されたフレームワークの重要な部分にクソを差し込んでめちゃくちゃにする。
・計画性の不足。
先の見通しが利かないから、行き当たりばったりでクソしか作れない。
リファクタも行き当たりばったりにやるから、クソが超臭うクソになるだけということになりがち。
挙句に自分で訳がわからなくなって、成果物を全部消したりする。
・客観性の不足
自分のやったことの成果を、客観的に見ることが出来ない。
リファクタしたことで、掛けた工数がどれくらいでペイしたとか、数字で物事を考えられない。
彼がリファクタするのは、単に楽しいから。本人は仕事してる気になってるが、周囲から見ると遊んでるだけ。
という感じ。
そもそも最初からちゃんと書く能力があったら、リファクタしたいと思うことは少ないはず。
リファクタしたがる奴の傾向として
・理解力の不足。
自分に理解できないものをすぐ諦めてクソ呼ばわりする。
他人の書いたコードの一貫したポリシーや目的を汲み取れないから、先人が用意してくれた便利なライブラリも使えない。
理解できないから規約も無視しがちで、彼の書いたところだけ作りがおかしい。
・謙虚さの不足。
相手を見下して、自分のほうがいいものが作れると根拠なく信じてる。
すでに用意されているものを再発明するだけならまだいいが、
しばしば完成されたフレームワークの重要な部分にクソを差し込んでめちゃくちゃにする。
・計画性の不足。
先の見通しが利かないから、行き当たりばったりでクソしか作れない。
リファクタも行き当たりばったりにやるから、クソが超臭うクソになるだけということになりがち。
挙句に自分で訳がわからなくなって、成果物を全部消したりする。
・客観性の不足
自分のやったことの成果を、客観的に見ることが出来ない。
リファクタしたことで、掛けた工数がどれくらいでペイしたとか、数字で物事を考えられない。
彼がリファクタするのは、単に楽しいから。本人は仕事してる気になってるが、周囲から見ると遊んでるだけ。
という感じ。
そもそも最初からちゃんと書く能力があったら、リファクタしたいと思うことは少ないはず。
353デフォルトの名無しさん
2014/07/30(水) 23:55:14.83ID:2joTlTTw >>352
> ・理解力の不足。
> 自分に理解できないものをすぐ諦めてクソ呼ばわりする。
> 他人の書いたコードの一貫したポリシーや目的を汲み取れないから、先人が用意してくれた便利なライブラリも使えない。
> 理解できないから規約も無視しがちで、彼の書いたところだけ作りがおかしい。
>
> ・謙虚さの不足。
> 相手を見下して、自分のほうがいいものが作れると根拠なく信じてる。
> すでに用意されているものを再発明するだけならまだいいが、
> しばしば完成されたフレームワークの重要な部分にクソを差し込んでめちゃくちゃにする。
とりあえず、最初の二つだけで良いから
リファクタリングとの関係を論理的に説明してみ?
> ・理解力の不足。
> 自分に理解できないものをすぐ諦めてクソ呼ばわりする。
> 他人の書いたコードの一貫したポリシーや目的を汲み取れないから、先人が用意してくれた便利なライブラリも使えない。
> 理解できないから規約も無視しがちで、彼の書いたところだけ作りがおかしい。
>
> ・謙虚さの不足。
> 相手を見下して、自分のほうがいいものが作れると根拠なく信じてる。
> すでに用意されているものを再発明するだけならまだいいが、
> しばしば完成されたフレームワークの重要な部分にクソを差し込んでめちゃくちゃにする。
とりあえず、最初の二つだけで良いから
リファクタリングとの関係を論理的に説明してみ?
354デフォルトの名無しさん
2014/07/31(木) 00:02:21.65ID:Jagb4X9u355デフォルトの名無しさん
2014/07/31(木) 00:08:01.18ID:jvFYVzT/ そんな奴、実際には見た事無いが
受託開発だとレベル低いから居るのかもしれんね
受託開発だとレベル低いから居るのかもしれんね
356デフォルトの名無しさん
2014/07/31(木) 00:28:09.58ID:1DTVAKx3 >>354
具体的にはどう書き換えられたの?
共通化できる処理を各所にバラバラに書き散らかしてたのを
シンプルにまとめられた挙句
「DRYも理解出来ないアホが開発に関わるとか意味が分からない」
って言われたとか?
具体的にはどう書き換えられたの?
共通化できる処理を各所にバラバラに書き散らかしてたのを
シンプルにまとめられた挙句
「DRYも理解出来ないアホが開発に関わるとか意味が分からない」
って言われたとか?
357デフォルトの名無しさん
2014/07/31(木) 00:49:44.01ID:OYcKACC5 コードオナニストは、常にコード以外の観点が欠けているのが特徴。
いくら諭しても話が噛み合わず、日夜コードのブラッシュアップに励んでいる。
いくら諭しても話が噛み合わず、日夜コードのブラッシュアップに励んでいる。
358デフォルトの名無しさん
2014/07/31(木) 00:51:52.79ID:Jagb4X9u >>356
知らん。問答無用で差し戻したから。
散々テストしたはずなのに客先に持ってったら動きが変わってて
共通モジュールに手が入ってたんで何やったのか聞いたら「わかりにくかったんでリファクタしました。」
何年も動いた実績あるモジュールにそんな理由でいじんなアホか死ね
>「共通化できる処理を各所に(略」
うん。そうだな…だいたい君と同じぐらいの理解度の奴だったよ。
知らん。問答無用で差し戻したから。
散々テストしたはずなのに客先に持ってったら動きが変わってて
共通モジュールに手が入ってたんで何やったのか聞いたら「わかりにくかったんでリファクタしました。」
何年も動いた実績あるモジュールにそんな理由でいじんなアホか死ね
>「共通化できる処理を各所に(略」
うん。そうだな…だいたい君と同じぐらいの理解度の奴だったよ。
359デフォルトの名無しさん
2014/07/31(木) 00:54:29.60ID:jvFYVzT/ > 散々テストしたはずなのに客先に持ってったら動きが変わってて
それリファクタリングになってないから
リファクタリングじゃない話を使ってリファクタリング批判してどうすんだよ
それリファクタリングになってないから
リファクタリングじゃない話を使ってリファクタリング批判してどうすんだよ
360デフォルトの名無しさん
2014/07/31(木) 01:01:10.62ID:Jagb4X9u361デフォルトの名無しさん
2014/07/31(木) 01:07:13.72ID:jvFYVzT/362デフォルトの名無しさん
2014/07/31(木) 01:09:10.48ID:OYcKACC5363デフォルトの名無しさん
2014/07/31(木) 01:15:43.10ID:jvFYVzT/ 完璧なテストとか言う以前に、
ろくに自動テストとか書いてないでしょ?
ていうか、レビューもまともに機能してない
(じゃなかったら>>358のケースなんてコードがマージされるはずない)
テストもマトモに書いてないじゃ、そりゃトラブルよ
ろくに自動テストとか書いてないでしょ?
ていうか、レビューもまともに機能してない
(じゃなかったら>>358のケースなんてコードがマージされるはずない)
テストもマトモに書いてないじゃ、そりゃトラブルよ
364デフォルトの名無しさん
2014/07/31(木) 01:21:33.19ID:1DTVAKx3 Excelで書かれたチェックリスト片手に手動でテストして
「散々テストしたのに」って言ってそう
「散々テストしたのに」って言ってそう
365デフォルトの名無しさん
2014/07/31(木) 07:53:29.99ID:RHNsF96S >>336
挙動を変えるのはリファクタリングじゃなくて仕様変更だろ
挙動を変えるのはリファクタリングじゃなくて仕様変更だろ
366デフォルトの名無しさん
2014/07/31(木) 21:56:38.46ID:w9LroIYe 仕様変更でもバグ修正でもいいが、
コードを書き換えたら挙動が変わることがある。
つまり、機能追加もバグ修正もするなってことだ。
コードを書き換えたら挙動が変わることがある。
つまり、機能追加もバグ修正もするなってことだ。
367デフォルトの名無しさん
2014/07/31(木) 22:08:52.98ID:t7+Ucdvo ネストが揃ってないとか空行が多いとか
変数がはるか上で宣言されてるけど使ってるのは遥か下に固まってるとか
理解力以前に目が疲れるコードをどうにかしろって言ってるんだよ
変数がはるか上で宣言されてるけど使ってるのは遥か下に固まってるとか
理解力以前に目が疲れるコードをどうにかしろって言ってるんだよ
368デフォルトの名無しさん
2014/08/01(金) 18:46:58.63ID:xnEk5c3C 変数定義の位置を移動したりスペースを除去したり
するのもリファクタリングなわけだが
するのもリファクタリングなわけだが
369デフォルトの名無しさん
2014/08/01(金) 19:22:03.81ID:+GTzrZhA 失敗例をあげてリファクタリングは糞って言ってるの最高に滑稽。
井戸の王様を気取ってる蛙か
井戸の王様を気取ってる蛙か
370デフォルトの名無しさん
2014/08/01(金) 20:37:16.99ID:zWTZP0nt OO批判と同じ流れだな
371デフォルトの名無しさん
2014/08/01(金) 20:43:59.51ID:fzo9r37p リファクタリングが糞なんじゃないよ
リファクタリングしたがる人が糞なんだよ
リファクタリングしたがる人が糞なんだよ
372デフォルトの名無しさん
2014/08/01(金) 21:19:55.74ID:7+EywXB6373デフォルトの名無しさん
2014/08/01(金) 22:07:17.79ID:2Z4Uf/Xj 新人はリファクタしたがっていかん
関数の共通化とかGenericsとかTemplateとか覚えたてのこと使いたがる
ちょっとしたクソが一晩したらそびえたつ巨大なクソに
関数の共通化とかGenericsとかTemplateとか覚えたてのこと使いたがる
ちょっとしたクソが一晩したらそびえたつ巨大なクソに
374デフォルトの名無しさん
2014/08/02(土) 01:12:27.41ID:tvZxKsuR 技術レベルの低い人ってのは初心者に近くて
リファクタリングという技術用語を理解できないんだよ。
だからわかり易い言葉に置き換えるといい
リファクタリング=整理整頓・改善
こう言い換えれば、改善する必要があるんです。
整理整頓すると普段の仕事が捗るんです。ということになる
こう言い換えれば、反対する人はいなくなるよ。
リファクタリングという技術用語を理解できないんだよ。
だからわかり易い言葉に置き換えるといい
リファクタリング=整理整頓・改善
こう言い換えれば、改善する必要があるんです。
整理整頓すると普段の仕事が捗るんです。ということになる
こう言い換えれば、反対する人はいなくなるよ。
375デフォルトの名無しさん
2014/08/02(土) 01:27:17.11ID:nhTOdUsW 生理整頓した状態を維持しながら仕事しろよw
個人レベルの話ならクソコードをフィックス前にに最低限他人が読めるようにするのなんて責務のうちだ
リファクタはどっちかというと組織再編といったほうがいい
課題と今後の見通しがあってはじめてやることで
個人レベルの話ならクソコードをフィックス前にに最低限他人が読めるようにするのなんて責務のうちだ
リファクタはどっちかというと組織再編といったほうがいい
課題と今後の見通しがあってはじめてやることで
376デフォルトの名無しさん
2014/08/02(土) 02:10:54.57ID:tvZxKsuR377デフォルトの名無しさん
2014/08/02(土) 08:46:20.40ID:Mu2XuA5N リファクタリング本を一回読んだとき何を感じるかだよな。
ああそうそう、こういう点で苦しくなってたんだ、って気付くか、
何一つピンとこずに何やってんのこの本?と思うか。
ああそうそう、こういう点で苦しくなってたんだ、って気付くか、
何一つピンとこずに何やってんのこの本?と思うか。
378デフォルトの名無しさん
2014/08/02(土) 11:09:34.62ID:nhTOdUsW クソコードを普通のコードに直す作業をあんまりリファクタと呼びたくないw
379デフォルトの名無しさん
2014/08/02(土) 11:27:29.15ID:h5SZ209F 結合テストとかまで進んじゃったら無理だよね
380デフォルトの名無しさん
2014/08/02(土) 11:55:25.68ID:nhTOdUsW リリースした後でバージョンアップのついでにやるもんだろ
381デフォルトの名無しさん
2014/08/02(土) 11:59:50.68ID:tvZxKsuR ボーイスカウトの法則といって、
コードを修正するときは、修正する前よりも
綺麗にするもんです。
これが出来るのと出来ないのが、
初心者と中級者の境目。
もちろん、出来ないほうが初心者ね。
これが許されるのは新卒1年ぐらいなもん。
コードを修正するときは、修正する前よりも
綺麗にするもんです。
これが出来るのと出来ないのが、
初心者と中級者の境目。
もちろん、出来ないほうが初心者ね。
これが許されるのは新卒1年ぐらいなもん。
382デフォルトの名無しさん
2014/08/02(土) 12:22:30.70ID:DmU4GxTK 規模が小さいうちは手抜きで簡単なコードを書くだろ?
最初から拡張性とかそういうものを考えて作りこまない。
で、規模が大きくなってきた時に、将来性のことを
考慮して作り変えればいいんだが、
最初の手抜きのコードをそのままに、手抜きを真似して
同じようなコードを追加するやつどうにかならんかね。
規模に応じたコードの書き換えをしない。できない。
発想がない。そういうい奴がクソコードを量産するんだよ。
最初から拡張性とかそういうものを考えて作りこまない。
で、規模が大きくなってきた時に、将来性のことを
考慮して作り変えればいいんだが、
最初の手抜きのコードをそのままに、手抜きを真似して
同じようなコードを追加するやつどうにかならんかね。
規模に応じたコードの書き換えをしない。できない。
発想がない。そういうい奴がクソコードを量産するんだよ。
383デフォルトの名無しさん
2014/08/02(土) 12:37:41.39ID:Ydx1jnyI 権限のない末端PGが現場の手続き無視してユニットテストのないコードを
勝手に修正する、自称リファクタリングは非常に迷惑。
日本の受託開発の仕事ではリファクタリングなんてするべきではない。
勝手に修正する、自称リファクタリングは非常に迷惑。
日本の受託開発の仕事ではリファクタリングなんてするべきではない。
384デフォルトの名無しさん
2014/08/02(土) 12:42:59.05ID:DmU4GxTK >>383
ユニットテストが無いことが前提になってる時点で、
やっぱり、その程度の所が、リファクタリングを嫌ってるんだなとしか
思えないよ。残念だったね。君のところの技術不足を露呈しただけ。
えと、技術力不足であることを自覚してね?落ち込むところだよ。
ユニットテストが無いことが前提になってる時点で、
やっぱり、その程度の所が、リファクタリングを嫌ってるんだなとしか
思えないよ。残念だったね。君のところの技術不足を露呈しただけ。
えと、技術力不足であることを自覚してね?落ち込むところだよ。
385デフォルトの名無しさん
2014/08/02(土) 13:29:01.01ID:a3/R4SSz 最初から厳密に書けばいいんだよ
手抜きコピーが多いのは、そういうものかと思ってしまうからだ
自称上級者がスタートアップ書くことが多いが、手抜き繰り返して
しまいには自分自身が変な癖背負い込んでいくだろう
初期段階でよい方向に導くには、最初のやつががんばるしかない
手抜きコピーが多いのは、そういうものかと思ってしまうからだ
自称上級者がスタートアップ書くことが多いが、手抜き繰り返して
しまいには自分自身が変な癖背負い込んでいくだろう
初期段階でよい方向に導くには、最初のやつががんばるしかない
386デフォルトの名無しさん
2014/08/02(土) 13:37:36.15ID:DmU4GxTK 人間誰しも、最初は初心者で
一年後には今よりも成長しているという
前提にたつと最初から完璧なコードを書くのは不可能
どんなに優れたコードを書いたとしても
一年後の自分はもっと優れたコードを書ける。
一年後には今よりも成長しているという
前提にたつと最初から完璧なコードを書くのは不可能
どんなに優れたコードを書いたとしても
一年後の自分はもっと優れたコードを書ける。
387デフォルトの名無しさん
2014/08/02(土) 14:03:04.41ID:nhTOdUsW >>386
この程度の奴がリファクタしたがるんだよなあ…
リファクタってのはある設計から別の設計に軸足を移すことだ。
書き散らしたクソコードを書き直すのは、リリース前にやっておくべきそれ以前の問題なんだよ。
お前の末端の画面とか帳票とかは、誰も共通機能として使ってないから汚かろうがクソだろうが問題ないよ。
お前の自己満足のためにプロジェクトとめられてたまるか。
どんなクソでも、客の前にひりだしたクソはてめえのクソだ。受け入れて前に進め。
この程度の奴がリファクタしたがるんだよなあ…
リファクタってのはある設計から別の設計に軸足を移すことだ。
書き散らしたクソコードを書き直すのは、リリース前にやっておくべきそれ以前の問題なんだよ。
お前の末端の画面とか帳票とかは、誰も共通機能として使ってないから汚かろうがクソだろうが問題ないよ。
お前の自己満足のためにプロジェクトとめられてたまるか。
どんなクソでも、客の前にひりだしたクソはてめえのクソだ。受け入れて前に進め。
388デフォルトの名無しさん
2014/08/02(土) 14:06:28.03ID:nhTOdUsW 大体最初からある程度ちゃんとしたプログラムも書けないやつに
まともなユニットテスト作れるわけないだろうが。
まともなユニットテスト作れるわけないだろうが。
389デフォルトの名無しさん
2014/08/02(土) 14:26:29.65ID:1FEiY+vP 理想だけど
組織には逆らえない
組織には逆らえない
390デフォルトの名無しさん
2014/08/02(土) 14:42:12.73ID:wGpqnjMj 関数の中身やprivateな関数のインターフェースを修正するようなリファクタリングと、
ライブラリのpublicなインターフェースを変更するような
影響範囲の大きいリファクタリングの話が混じってる気がする
後者はそう簡単じゃないよ
影響範囲に入る全ての開発者と調整が付かない限り変更できない
(勝手に変更したら、ライブラリ使用者側から見たら仕様変更だからリファクタリングにならない)
ライブラリのpublicなインターフェースを変更するような
影響範囲の大きいリファクタリングの話が混じってる気がする
後者はそう簡単じゃないよ
影響範囲に入る全ての開発者と調整が付かない限り変更できない
(勝手に変更したら、ライブラリ使用者側から見たら仕様変更だからリファクタリングにならない)
391デフォルトの名無しさん
2014/08/02(土) 14:44:44.99ID:atIEditt 初心者にオススメなのは、派生開発でコードを読むときに、動作確認をテストで書くことかな。これはとっつきやすい。
『レガシーコード改善ガイド』では「仕様化テスト」のところ。
『レガシーコード改善ガイド』では「仕様化テスト」のところ。
392デフォルトの名無しさん
2014/08/02(土) 14:54:07.48ID:1BrdY1ES >>380
そんな意識の奴と仕事したくないわ
そんな意識の奴と仕事したくないわ
393デフォルトの名無しさん
2014/08/02(土) 15:20:52.89ID:DmU4GxTK リファクタリングするなっていってる奴がいるけどさ、
時間が十分にあるという前提にたつと
とたんに何も言えなくなってしまう
それってリファクタリングがダメなのではなくて
時間がないという問題だから。
じゃあ、なんで時間が足りないんですか?
今までと同じやり方してるんじゃないですか?って
追い詰めると、泣き出しちゃうw
時間が十分にあるという前提にたつと
とたんに何も言えなくなってしまう
それってリファクタリングがダメなのではなくて
時間がないという問題だから。
じゃあ、なんで時間が足りないんですか?
今までと同じやり方してるんじゃないですか?って
追い詰めると、泣き出しちゃうw
394デフォルトの名無しさん
2014/08/02(土) 15:21:48.08ID:DmU4GxTK395デフォルトの名無しさん
2014/08/02(土) 15:32:36.71ID:WtoScNjl396デフォルトの名無しさん
2014/08/02(土) 17:35:26.06ID:w2qydRR0 当たり前のことを当たり前に理解してそれを前提としている人と、
当たり前のことなのに全く理解しないでそれを前提とできない人とが会話しているようだ。
当たり前のことなのに全く理解しないでそれを前提とできない人とが会話しているようだ。
397デフォルトの名無しさん
2014/08/02(土) 19:06:34.85ID:jgRhK7n4 ウォーターフォールだったり、詳細設計書で日本語プログラミングしたりしてるとこと
リファクタリングは相性悪いよ
開発の全体を見直さないと、一部だけ優れた手法を取り入れようとしても
歪みが出て上手く行かないんだよね
リファクタリングは相性悪いよ
開発の全体を見直さないと、一部だけ優れた手法を取り入れようとしても
歪みが出て上手く行かないんだよね
398デフォルトの名無しさん
2014/08/02(土) 19:30:03.16ID:DmU4GxTK うまくいかないんじゃなくて
難しいだけだろ?
それを実行する力が技術力なわけで。
難しいだけだろ?
それを実行する力が技術力なわけで。
399デフォルトの名無しさん
2014/08/02(土) 19:41:02.16ID:q1w4boEu どうしても自分が書いたコードを書きなおしたい人がいるようだけど
そんなコードはいずれバグで書きなおされるんだから、あまり気にしない方が良い。
その情熱は悪くないけど、もっと前向きに使うべきだよ。
そんなコードはいずれバグで書きなおされるんだから、あまり気にしない方が良い。
その情熱は悪くないけど、もっと前向きに使うべきだよ。
400デフォルトの名無しさん
2014/08/02(土) 19:57:31.28ID:DmU4GxTK 前向きって新しいコードを書くってこと?
残念だけど、開発ってのは既存のコードの修正がほとんどだよ。
新しい機能を追加するといっても
前よりも効率よく開発するために既存の部分を、
使いまわす(コピペじゃないからね!)するために
既存の部分を修正して使えるようにするんだから。
残念だけど、開発ってのは既存のコードの修正がほとんどだよ。
新しい機能を追加するといっても
前よりも効率よく開発するために既存の部分を、
使いまわす(コピペじゃないからね!)するために
既存の部分を修正して使えるようにするんだから。
401デフォルトの名無しさん
2014/08/02(土) 19:57:37.46ID:FIwNTFpf402デフォルトの名無しさん
2014/08/02(土) 20:03:28.32ID:DmU4GxTK 全部捨てて作り直しだーまで追い詰めるって馬鹿だと思う。
少しずつ変化させていくことができないからそうなるんだよね。
全部いっぺんに変えるなんて現実的じゃないんだから。
全部いっぺんに変えることは不可能。じゃあどうするか?
それに答えられないから、どんどん壊れていくんだよ。
まあ、少しづつ良くしていくことが出来るのも技術力なわけで。
それを頭でわかっているのと実行するのとは全然違うわけで、
その実行できる力ってのが技術力そのものなわけで。
少しずつ変化させていくことができないからそうなるんだよね。
全部いっぺんに変えるなんて現実的じゃないんだから。
全部いっぺんに変えることは不可能。じゃあどうするか?
それに答えられないから、どんどん壊れていくんだよ。
まあ、少しづつ良くしていくことが出来るのも技術力なわけで。
それを頭でわかっているのと実行するのとは全然違うわけで、
その実行できる力ってのが技術力そのものなわけで。
403デフォルトの名無しさん
2014/08/02(土) 20:19:36.36ID:q1w4boEu >>400
前向きってのは、コード書きの脳からデザイナーの脳に変われるように努力しろって事。
前向きってのは、コード書きの脳からデザイナーの脳に変われるように努力しろって事。
404デフォルトの名無しさん
2014/08/02(土) 20:23:43.06ID:DmU4GxTK >>403
何に逃げてるのさ?
両方できるようになるというのなら正しい意見だが、
別のものに逃げたらだめだろ。
まるでペンもイラレもろくに使えない奴が
発想力とかいうのに逃げているのと同じ。
コードをまともに書けるようになった上でデザイナーになることはできる。
だけど、コードから逃げてもデザイナーにはなれない。
何に逃げてるのさ?
両方できるようになるというのなら正しい意見だが、
別のものに逃げたらだめだろ。
まるでペンもイラレもろくに使えない奴が
発想力とかいうのに逃げているのと同じ。
コードをまともに書けるようになった上でデザイナーになることはできる。
だけど、コードから逃げてもデザイナーにはなれない。
405デフォルトの名無しさん
2014/08/02(土) 20:23:58.64ID:J1UwFk0L よくある設計とコーディングっていう役割分担からしてくるっとる。
プログラミングなんて、設計九割五分なのに。
実装なんざオマケのオマケ。
SEとプログラマ、とわけてプログラマがキーボード叩く役とか、きがくるっとる。
まぁ聡明なお前らの会社は違うだろうけどね。
プログラミングなんて、設計九割五分なのに。
実装なんざオマケのオマケ。
SEとプログラマ、とわけてプログラマがキーボード叩く役とか、きがくるっとる。
まぁ聡明なお前らの会社は違うだろうけどね。
406デフォルトの名無しさん
2014/08/02(土) 20:28:21.78ID:DmU4GxTK 「前向き」って言ってる奴が、
コードとデザインの両方を手に入れるじゃなくて、
コードから逃げてデザインを求めていて笑えるよ。
そういう奴は両方できない。
コードとデザインの両方を手に入れるじゃなくて、
コードから逃げてデザインを求めていて笑えるよ。
そういう奴は両方できない。
407デフォルトの名無しさん
2014/08/02(土) 20:33:33.15ID:a3/R4SSz やっぱり自分でコード書かなきゃやってる気がしない
408デフォルトの名無しさん
2014/08/03(日) 00:40:07.16ID:ppjITjjs もう最近ガチガチの詳細設計やるとこって殆ど無いだろ
コメント的仮想コードとかで詳細は終わらせちゃうところが多い
その方が柔軟だしな
コメント的仮想コードとかで詳細は終わらせちゃうところが多い
その方が柔軟だしな
409デフォルトの名無しさん
2014/08/03(日) 00:45:38.31ID:CSranqfK 一応UMLでシーケンス図とクラスとPublicメソッドだけはきっちり作ってるな
DBアクセスとかあたりまで
そっから先はprivateで実装して
アプリのフレームワークに依存しないメソッドとかクラスとかはプCommonフォルダに各自放り込んでもらう
で上手くいくと思ったけど
Commonがかなりカオスなことに
DBアクセスとかあたりまで
そっから先はprivateで実装して
アプリのフレームワークに依存しないメソッドとかクラスとかはプCommonフォルダに各自放り込んでもらう
で上手くいくと思ったけど
Commonがかなりカオスなことに
410デフォルトの名無しさん
2014/08/03(日) 07:51:54.04ID:KHwMExMo >>408
あー、主に非技術者がやる作業だね。
あー、主に非技術者がやる作業だね。
411デフォルトの名無しさん
2014/08/03(日) 07:57:18.76ID:mU4IZymt412デフォルトの名無しさん
2014/08/03(日) 10:20:01.47ID:1nxvzFtA まるで業務系しか仕事がないかの勢いw
413デフォルトの名無しさん
2014/08/03(日) 10:36:51.70ID:CSranqfK >>411
コードが酷いのは予想のうちだけど
あれだけ言ったのに、規約が守られずにアプリのフレームワークに依存が作られてる
最初あたりに誰かがやったせいで後続が真似して、手続きなんとなくまとめただけみたいな処理がいっぱい
関数の共通化もうまくいってなくて
例えば分かりやすいところでは文字列をバイト列に変換してパディングするって処理があるんだけど
SJisStringUtil.ToByte
DBCodeChanger.LeftPaddingByteArray
StringModel.BytesWithSpace
こんな感じでいっぱいできてる
挙句にsTanakaとかフォルダできてるしw
コードが酷いのは予想のうちだけど
あれだけ言ったのに、規約が守られずにアプリのフレームワークに依存が作られてる
最初あたりに誰かがやったせいで後続が真似して、手続きなんとなくまとめただけみたいな処理がいっぱい
関数の共通化もうまくいってなくて
例えば分かりやすいところでは文字列をバイト列に変換してパディングするって処理があるんだけど
SJisStringUtil.ToByte
DBCodeChanger.LeftPaddingByteArray
StringModel.BytesWithSpace
こんな感じでいっぱいできてる
挙句にsTanakaとかフォルダできてるしw
414デフォルトの名無しさん
2014/08/03(日) 10:42:19.36ID:KHwMExMo まあありがちやねw
だから規約を作った人は
必ずコードレビューをしなくてはいけない。
だから規約を作った人は
必ずコードレビューをしなくてはいけない。
415デフォルトの名無しさん
2014/08/03(日) 20:06:25.42ID:lk1xFWmM416デフォルトの名無しさん
2014/08/03(日) 21:25:01.28ID:LWW935BO ロングパスきっちり通せよw
■ このスレッドは過去ログ倉庫に格納されています
