函数不仅用于最大程度地减少代码重复,而且还用于将长函数拆分为较小的函数以提高可读性,并使代码具有自注释性。但是,这种增益与每个函数或方法的LOC数量并不成反比;否则,我们将拥有大量功能,所有功能仅包含一行或两行代码。
这使我想知道:每个功能是否存在最优数量的LOC?如果是这样,那是什么,它在语言之间是否有差异?
函数不仅用于最大程度地减少代码重复,而且还用于将长函数拆分为较小的函数以提高可读性,并使代码具有自注释性。但是,这种增益与每个函数或方法的LOC数量并不成反比;否则,我们将拥有大量功能,所有功能仅包含一行或两行代码。
这使我想知道:每个功能是否存在最优数量的LOC?如果是这样,那是什么,它在语言之间是否有差异?
Answers:
我要使用的标准不是行数,而是每个函数只能做一件事并且做得很好。
一个古老的经验法则是,功能应该在屏幕上完全可见,而无需滚动。
基本思想是,如果您不能一次查看整个功能,则该功能过于复杂,您应将其拆分为更多基本部分。
虽然此规则非常实用且有用,但正式规则是您应仅在函数中保留一个逻辑步骤。函数仅执行基本工作,如果您可以将工作划分为更多基本部分,则必须将函数拆分。
屏幕越来越大,字体越来越小。当人们的拇指大小不同时,经验法则不能很好地发挥作用。
简明扼要。如果您的函数执行多项操作,则最好将其分解为较小的部分。
Smalltalk具有减小方法大小的不寻常方法。编写代码时,将其编写在名为“浏览器”的小部件中。浏览器有两个主要部分,水平划分。您的代码位于下半部分。
默认情况下,浏览器不是很大。您可以先放入5或6行,然后再开始滚动。滚动当然有点令人讨厌。
因此,在Smalltalk中,环境“鼓励”您编写简短的方法,最长不超过6行。(通常足够; Smalltalk是一种非常简洁的语言。)