0

我参加过不止一场讲座,我们被告知类不应超过 200 行代码。

然而,我有很多项目的类有多达 500 行甚至更多的代码。通常,这些类看起来就像它们一样有意义,因为这些类中的所有功能似乎都属于一起。

我的问题是,尝试针对较小的课程是否真的有意义(在大多数情况下,总是有例外),或者这只是软件开发中的一厢情愿,在大型项目中并不总是可行(甚至是合理的)?

4

4 回答 4

2

这实际上取决于实现和领域。如果可以,您应该始终尝试重构代码并将其组织成最简单的布局。精简接口,使用Chesire CatBuilder Pattern等模式实现。有时您需要在一个类中包含大量代码,但这是一个很好的“经验法则”,即如果看起来代码太多,至少花一些时间考虑是否可以对其进行重构。

于 2013-02-22T18:40:11.283 回答
1

只需将每个类视为现实生活中的对象表示。因此,如果对象很复杂,则该类将有更多代码。不太复杂(小对象)将有更少的代码。

您可以尝试将对象拆分为单独的组件或将常见的东西取出到父类。但是,这总是有限制的。

于 2013-02-22T18:35:30.203 回答
0

应该减少包含大量代码的单个方法,以提高可读性和理解力,但我倾向于说,只要类本身包含的代码合适,那么被包含就可以了。

于 2013-02-22T18:37:15.777 回答
0

用 分析firefox和chromium的源码后cloc,得到如下结果:

---------------------------------------------------------------------------
Project   Language    files       blank     comment        code    loc/file
---------------------------------------------------------------------------
firefox   C++          5987      417603      318973     2156414         360
chromium  C++          3381      140033      128591      737553         218

我使用了 firefox 20.0 和 chromium 4.0.249.0 的源代码。在每个项目中都有很多编程语言,我忽略了除了 C++ 部分之外的所有语言。

我看到两个项目的每个文件的平均代码行数都超过 200 行。这意味着很多文件可能有 200 多个 loc,因为肯定也有很多小文件(头文件和源文件甚至单独计算)。

我绝对知道我的研究并不是我的主张的真正依据,但是在分别对不同的源文件进行了一些检查之后,我发现有相当多的文件有很多超过 200 loc。

为了回答我自己的问题,我想说虽然人们应该总是尝试有小类,但经常存在将类拆分成更小的类以减少每个类的 loc 使项目比相反更复杂的情况。

于 2013-04-10T15:59:05.803 回答