一、这一章讲了什么
子程序(函数、方法)是软件构建最基本的单元。McConnell 认为,好的子程序应该「只做一件事,并且把它做好」。他从内聚性、命名、参数、长度几个方面,给出了一套可操作的判断标准——这些标准不玄乎,都是日常写代码时能立刻用上的。
二、三个我划了线的观点

  1. 内聚性决定子程序的质量。 功能内聚(只完成一个明确功能)最好;逻辑内聚、偶然内聚(把不相关的事硬塞在一起)最差。一个函数如果要用「而且」来描述,多半就该拆了。
  2. 命名要「自解释」。 名字应描述「做什么」,用动词加宾语,如 GetUserName();避免 ProcessData()、Handle() 这类含糊的词。好名字本身就是最好的注释。
  3. 参数越多越危险。 参数超过 7 个就该考虑拆分;参数顺序上,输入在前、输出在后,可以减少调用时的误用。
    三、结合我自己的项目
    Lab01 的 script.js 里,我把「显示时间」和「图片轮播」分别写成了 updateClock() 和 nextSlide() 两个函数。看起来只是拆了一下,但好处很实在:后来我想把轮播间隔从 3 秒改成 5 秒,只动 nextSlide() 里的一行,完全不用担心碰坏时钟。如果当初全塞进 window.onload 一个大函数里,改一处就得通读全部代码。
    四、我打算怎么做
  • 写函数前先问一句:「它能不能用一个动词短语概括?」概括不了,说明它做了太多事。
  • 函数超过一屏(约 50 行)就考虑拆分。
  • 命名多花 30 秒想清楚,别用 a、tmp、data 这种名字。
posted on 2026-10-23 21:15  chenyun_922  阅读(5)  评论(0)    收藏  举报