質問者
ソース当たりのコード適当量とは?

全般的な情報交換
-
お世話になっております。
@ITの、とある記事で下記のようなことが書かれていました。
『転載したソースは650行あり、かろうじて1ファイルで扱えるサイズだが
2倍になるなら分割を考えたい』今まで、ファイルサイズが肥大しないように意識はしていましたが
まさか650行が1ファイルの(理想)最大サイズだなんて思いもしませんでした。この情報が本当なら、その理由を教えて頂けませんでしょうか?
また、その場合のメリット/デメリットも併せて教示頂けると助かります。
宜しくお願いします。
追記:
また、デザイナファイルはコントロールを多用すると2000行くらいすぐに
達すると思われますが、それも考慮すべきことなのでしょうか?
すべての返信
-
ご回答ありがとうございます。
アドレスを添付します。
http://www.atmarkit.co.jp/fdotnet/extremecs/extremecs_08/extremecs_08_03.html
ことの真偽を確かめたいというよりは、メリットや制約があるのであれば
知りたいと言ったところです。またデザイナファイルに対しては仰る通りですね。
自動生成ファイルに対して分割するという意味ではなく、それ自体も考慮しなくちゃ
いけなくなるのでは? -
-
ことの真偽を確かめたいというよりは、メリットや制約があるのであれば
知りたいと言ったところです。制約、制限という意味では、1つのファイルに記述できる行数は、268,435,454 行までです。
コンパイラ エラー CS1033
http://msdn.microsoft.com/ja-jp/library/w6yz61s5(v=vs.90).aspxとはいうものの、実際、人間が扱える行数には限界があるでしょう。ただし、何行だから限界であると一律には扱えないと思います。例えば、ソースコードが整然と書かれ、regionで折りたためるようなっている場合、特に読みにくいということはないかもしれません。プロパティがたくさんあっても、それをregionで畳んでしまえば、表示上は1行になります。また、プロパティも自動プロパティを使うなど書き方によって、同じ機能を実装した場合でも、それだけですぐに数行の差が出てしまいます。
また、人間が弄らないソースコード、例えばVisual Studioが自動で生成したコードなどは、いくら長くても基本的に問題ないはずです。
以上のように、1つのファイルに何行までと決めるのはあまり意味がないように思います。それよりも大事なことは、人間にとって如何に読みやすく保守しやすいソースコードであるかだと思いますので、それを実現するための弱い影響力の少ない条件として、1つのファイルには何行ぐらいまでというのがある程度だと思います。要するに、行数を削ることよりも読みやすさを優先すべきでしょう。
ですから、むしろコード規約に目を向けるべきだと思います。例えば、基本的に1つのファイルには、publicなクラスは1つまでというような規約です。この規約によって、ソースコードがある程度長くても、読みやすさや保守性は確保できると思いますし、それらを優先すべきだと思います。
#(追記)Visual Studioの進化によっても、長いソースコードが扱いやすくなっていると思います。例えば、自分が編集したところのマーカーが表示されるようになりましたが、これによって長いソースコードでも、すぐに自分の編集したところに行くことができます。このように時代と共に変化しているところもあり、Visual StudioのようなIDEの進化によっても考え方が変わってくるのかもしれません。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
- 編集済み trapemiyaModerator 2013年11月6日 5:07 追記
-
皆様、ご回答ありがとうございます!
>1.ひととまとまりのソースコード内で一つの「意味」又は「物」を表現している。
>人間にとって如何に読みやすく保守しやすいソースコードであるか
仰るとおりですね、それらを踏まえた上で読んでみると納得できることがあります。
あの記事を書いた方は、そういった面から膨大なステップ数になるとダメなので分割という手も
あるんだという結論に至ったのだとおもいます。ただ、650というステップ数に驚いて『そういう慣例のようなものがあったのか』と、ぜひこちらで
ご意見を頂戴したかった次第です。また以前、N△△データに外注したアプリケーションのメインフォームのステップ数は1万を超えて
いたのでそういった面からもお話を聞きたかったのです。色々と勉強になりました。皆様本当にありがとうございました!
- 編集済み コーベル 2013年11月6日 6:01