当某函数内代码行数过长时是否有必要对其进行拆分?

2015-12-17 14:23:33 +08:00
 XiaST

函数代码的行数已经超过了 400 行,也可以将其划分成多个细化的功能块,但是这些功能块都只会在这个函数中被用到,而且在函数内功能块开始的地方都有了相应的注释桌面(也就是说一般不会影响代码阅读),那么在这样的情况下还有必要对这些功能块拆分成多个函数吗?

5183 次点击
所在节点    程序员
28 条回复
orderc
2015-12-18 13:35:54 +08:00
看一下<代码简洁之道>和<重构改善代码的既有设计>就可以做出判断了。
SmiteChow
2015-12-18 15:19:32 +08:00
有必要的,最多一屏高度。最好半屏高度。
shaoqiang
2015-12-18 18:03:08 +08:00
复用只是一个原因。
不能因为不能复用就拆分函数了。
还有个目的就是易于阅读代码啊。

所以,不能复用的时候,如果语言支持匿名函数,就用匿名函数,否则就拆出来,不会害你害别人的。
shaoqiang
2015-12-18 18:04:28 +08:00
擦,上面第二句写反了(应该是:不能因为不能复用就不拆分函数 )。但貌似还不能编辑。
XiaST
2015-12-20 11:12:06 +08:00
@awfe 真的有吗。。。查了半天的资料,只看到在指定为 final 的时候才会有展开。。。而且貌似效果不好。。。如果有资料的话希望能发一下。。。
awfe
2015-12-20 13:25:50 +08:00
XiaST
2015-12-21 14:55:12 +08:00
@awfe 学习了
MiskoLee
2016-01-12 23:17:10 +08:00
@miao1007 那该换块屏幕了,我的屏幕可以显示 100 行+啊

首先,多余的函数调用会增加额外的 call 时间。除非可以做到零抽象。比如用宏来拆分业务,其实我是喜欢用宏来写代码生成器的。

如果,是 Web 应用,那么函数 call 时间之类的时间可以忽略,爱写多少层写多少层。毕竟撑死系统的都是烂 SQL 。


函数写的短小是政治正确的,然而并不具备多大的现实意义。我见过太多知名代码的函数太长了,一个 C 文件数万行代码的比比皆是。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/244201

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX