它谨慎地将长函数分解为主函数和辅助函数.
我知道模块外部只会调用主要功能,但它的长度可能会被证明是令人生畏的.
教科书限制了行数,但我觉得这太严格了.
PS我用Python编程,需要处理传入的消息.该函数返回一个包含消息的元组,但是在Python的内部数据类型中.因此,您可以看到每种消息类型的独立代码.
重复的问题
我不太喜欢将一个函数不必要地分解为多个函数。这不是一件一成不变的事情——如果有些东西看起来像是不同的逻辑单元,那么无论如何,要把它们分开并单独考虑它们。但是,不要仅仅为了“每个函数一页”或“每个函数 N 行”之类的指导方针而将事情分解。
我认为你需要从问题的另一端来解决这个问题。自下而上思考。确定尽可能小的小工作单元,然后开始以这种方式编写代码。只有当您自上而下编码并且不采用结构化方法时,您才会遇到意大利面条式代码问题。
如果您已经有了意大利面条式代码并且需要重构,那么您几乎必须重新开始。分解现有的意大利面条式代码可能比重写它需要更多的工作,而且结果可能不会那么好。
我认为方法中的代码行数也不应该有一个硬性数字,但是编写良好的代码不会有底层超过 5 到 10 行、业务逻辑超过 20 到 30 行的方法。给你某种衡量标准。