2014.12.1《Clean Code-代码整洁之道》的阅读感悟 - 关于代码注释的实际使用及体会
2014-12-01 14:06
274 查看
《Clean Code-代码整洁之道.pdf》
关于注释,《Clean Code-代码整洁之道》中提到几点原则:
1.注释的恰当用法是为弥补我们在用代码表达意图时遭遇的失败,是对代码的一种补充;
2.注释的存在说明你的代码还不能表达意图,并不值得庆贺;
3.写注释不是最恰当的表达程序设计目的方式,因为代码注释存在越久,就离其所描述的代码越远,代码一直在变化,但是注释并没有变化,程序开发者不可能坚持维护注释;
4.与其花时间写注释解释糟糕的代码,不如花时间清理这段糟糕的代码;
接下来以“保存消息并推送消息”功能为例:界面选择人员,输入推送内容,后台将内容保存到数据库并将内容推送到所选择人员的手机上。
1.removeDuplicatedMemberid翻译为:移除重复的memberid。函数表示的意思是从一个指定列表中移除在另一个列表中已经出现过的值。这种调用方式体现了面向对象的编程思维:方法对调用者来说是透明的,调用此方法可以返回你想要的结果,至于如何去实现的,调用者不需考虑,一切都在被调用的方法中处理,如下:
2.saveAndPushMessageByMemberIds可翻译为通过memberids保存并推送消息。在这里将保存和推送的方法分离开,保存和推送本身就是两个不同的操作,有不同的处理逻辑,分离开满足了“一个方法只做好一件事”的代码精简原则[page51]。同时便于阅读、修改和代码重用(如果我只需要推送或者只需要保存,只需要调用相应的方法即可)
3.saveAndPushMessageByDepids可以翻译为通过depids保存并推送消息。其实,其最终仍是调用saveAndPushMessageByMemberIds方法针对某一个人进行推送,只是我们将depids 到memberids的转换封装到方法中了,如下:
这里是将depids转换为memberids的过程。在实现过程中,用containSelf代替了true,虽然代码多了一行,但是,让我知道了这个参数所要表达的意思,这种思路可以借鉴。“注释的存在说明你的代码还不能表达意图,并不值得庆贺”[page68],
“大师级程序员把系统当做故事来讲,而不是当做程序来写”[page64]
“让代码整洁也不是一件很费时的事,也许是改好一个变量名,拆分一个有点过程的函数,消除一点点重复代码,清理一个嵌套if语句”
关于注释,《Clean Code-代码整洁之道》中提到几点原则:
1.注释的恰当用法是为弥补我们在用代码表达意图时遭遇的失败,是对代码的一种补充;
2.注释的存在说明你的代码还不能表达意图,并不值得庆贺;
3.写注释不是最恰当的表达程序设计目的方式,因为代码注释存在越久,就离其所描述的代码越远,代码一直在变化,但是注释并没有变化,程序开发者不可能坚持维护注释;
4.与其花时间写注释解释糟糕的代码,不如花时间清理这段糟糕的代码;
接下来以“保存消息并推送消息”功能为例:界面选择人员,输入推送内容,后台将内容保存到数据库并将内容推送到所选择人员的手机上。
1.removeDuplicatedMemberid翻译为:移除重复的memberid。函数表示的意思是从一个指定列表中移除在另一个列表中已经出现过的值。这种调用方式体现了面向对象的编程思维:方法对调用者来说是透明的,调用此方法可以返回你想要的结果,至于如何去实现的,调用者不需考虑,一切都在被调用的方法中处理,如下:
2.saveAndPushMessageByMemberIds可翻译为通过memberids保存并推送消息。在这里将保存和推送的方法分离开,保存和推送本身就是两个不同的操作,有不同的处理逻辑,分离开满足了“一个方法只做好一件事”的代码精简原则[page51]。同时便于阅读、修改和代码重用(如果我只需要推送或者只需要保存,只需要调用相应的方法即可)
3.saveAndPushMessageByDepids可以翻译为通过depids保存并推送消息。其实,其最终仍是调用saveAndPushMessageByMemberIds方法针对某一个人进行推送,只是我们将depids 到memberids的转换封装到方法中了,如下:
这里是将depids转换为memberids的过程。在实现过程中,用containSelf代替了true,虽然代码多了一行,但是,让我知道了这个参数所要表达的意思,这种思路可以借鉴。“注释的存在说明你的代码还不能表达意图,并不值得庆贺”[page68],
“大师级程序员把系统当做故事来讲,而不是当做程序来写”[page64]
“让代码整洁也不是一件很费时的事,也许是改好一个变量名,拆分一个有点过程的函数,消除一点点重复代码,清理一个嵌套if语句”
相关文章推荐
- 2014.09.21 关于《Clean Code-代码整洁之道》的阅读感悟 - 第一章
- 【前端阅读】——《代码整洁之道》摘记之整洁代码、命名、函数、注释
- 使用ASP.NET中的一点体会--关于代码分离(转载)
- 使用ASP.NET中的一点体会--关于代码分离[原创]
- 使用ASP.NET中关于代码分离的心得体会(转)
- 关于代码中空白、注释等字符的统计(正则表达式的使用)
- 关于代码中空白、注释等字符的统计(正则表达式的使用)
- 阅读笔记 > 关于代码注释
- 在有源代码的情况下注释ComponentArt的许可证检查,彻底无风险使用ComponentArt
- 关于源代码的阅读体会
- 关于Asp.net中使用以下代码导出Excel表格的问题
- 《.NET大局观》的一些阅读感悟与心得体会
- 在有源代码的情况下注释ComponentArt的许可证检查,彻底无风险使用ComponentArt
- 关于zeo作品中生成代码使用方法的说明!
- 使用Jbuilder重构功能阅读混淆过的Java代码。
- 关于main参数和inp.c代码阅读的一点笔记
- 关于PowerDesign让生成的代码成功的为字段生成注释
- 《.NET大局观》的一些阅读感悟与心得体会
- 使用vim+cscope/ctags阅读内核代码
- 关于Asp.net中使用以下代码导出Excel表格的问题