パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

リファクタリングしてもコードの質は改善されないという実験結果」記事へのコメント

  • 今の一般的なソフトウェアの製作過程でみれば、何らかの問題があるからリファクタリングするのであって、問題の出ていないソースコードに集中的なリファクタリングしても効果が見られないのは当然だという気がする。

    もっとも、地道な研究というのも必要だとは思うし、将来的にはこういう技術の延長でプログラマがまだ気付いていない問題を顕在化する前に知らせるとか取り除いてくれるとかなら嬉しい。

    • Re: (スコア:2, すばらしい洞察)

      by Anonymous Coward

      いやあ、違うんじゃないですかね。
      リファクタリングは「動いているコードを触る」ということであって、基本的に挙動は変化しちゃいかんのですよ。
      挙動が変化するようなものはもはやリファクタリングじゃなく普通の修正です。
      なので、リファクタリングにパフォーマンス向上を求めることが筋違いではないかと。

      ついでに言えば、コンピューターサイエンスの学生に評価をさせたようですけど、学生に「保守性」が本当に認識できるのか、という疑問が……。

      • 問題というとやっぱり、ソフトウェアのバグみたいに聞こえてしまいますね。

        ここで言いたいのは、機能拡張をしたいけれど、既にやっつけの拡張が多数集積していて見通しが悪すぎるとか。そういう問題です。
        それから単純なものだと、ほぼ全ての変数や関数が英数字二文字以内というソースコードは、余程短くない限り問題ありです。
        一息にコーディングするとき余計なことに気を散らしたくないのは判るけれど、関数名がすべて f0 とか f4 とかだったりは受け取れません。

        • by Anonymous Coward

          最後のくだりだけについて反応。
          関数名については 全く同意しますが、
          最近 golang さんとかだと、変数名はなるべく短く、かつすぐ使い終わるように、
          というような方針が推奨されているようですよ。

          • >最近 golang さんとかだと、変数名はなるべく短く、かつすぐ使い終わるように、

            これは変数のスコープは最小にしろ。スコープが十分小さければ変数は短くてもOK。
            っていう、昔から言われていることを言い換えているだけでは。

            親コメント
            • by Anonymous Coward

              昔はスコープ長かったけどね。初期のCは関数の先頭に全部書かなきゃいけなかったし、互換性のために長い間その方式を踏襲してたから。

              むしろ名前の拒否反応は命名規則と習慣からくるんじゃないかな。以前、他人が書いたコードに

              for (int ii = 0; ii < LENGTH; ii++) {

              ってのに手を入れてた時にiiをiにしたくてしょうがなかったもの。頭でわかったつもりになってても、途中から

              「iiってなんだっけ?ああ、ループ回してるんだったな。…(ちょっと先)…ところで、このii*iiってどういう意味だ?あ、あー、ループカウントを2乗してるのか、i * iのことだな。…(さらに先)…あれ、ptrからii引くのはいいけど、このiiってどっから出てきたんだよ。あー、わかった!くそ、思い出した!」

              って感じになったから。jとかkとかnとかlだと全然気にならないんだけど、iiは生理的に受け付けないと自覚してしまった。

              • by Anonymous Coward

                へたくその典型的ないいわけですね。

                関数の先頭で宣言しないといけないからスコープが大きくなる? そもそもそんな長い関数書くなって話だ。

              • by Anonymous Coward

                > って感じになったから。jとかkとかnとかlだと全然気にならないんだけど、iiは生理的に受け付けないと自覚してしまった。

                iiは人が二人寄り添っているみたいで、リア充ばくはつしろ!みたいな?

              • by miww (14929) on 2015年03月06日 8時52分 (#2772799) 日記
                iiはおさるさんです。
                親コメント
            • by Anonymous Coward

              まぁそうなんですが、golangのライブラリ(の一例)
              http://golang.org/src/io/ioutil/ioutil.go?s=1464:1510#L39 [golang.org]
              を眺めていると、
              むしろ変数が短いほうを優先しているように感じますね。

              上記例では、ファイル情報(FileInfo)を fi と書いたりしていますが、
              なじみのAPIを使っているならともかく、
              コメントがないと 後で見返しても全く分からないと思うな。。

計算機科学者とは、壊れていないものを修理する人々のことである

処理中...