《代码整洁之道》第1-2章

第一章、整洁代码
ØWhy:为什么要写整洁代码?
ØWhat:什么是整洁代码?
ØHow:怎么写出整洁代码?

第二章、有意义的命名
ØWhat:什么是有意义的命名?
ØHow:怎样避免无意义的命名?

Why:为什么要写整洁代码?
Ø花时间保持代码整洁,不仅有关效率,还有关生存
Ø混乱(不整洁)无助于赶上期限。
Ø破窗理论。

What:什么是整洁代码?
Ø逻辑直截了当,让缺陷难以隐藏
Ø分层机制完善错误处理代码
Ø性能调优
Ø一次只做好一件事
Ø能通过测试
Ø没有重复代码
Ø几乎没有改进的余地

How:怎么写出整洁代码?
Ø军规:让营地比你来时更干净。
Ø从现在开始行动:Later equals never.
Ø第一步,从命名开始

干啥都得先起个名字
Ø变量
Ø函数
Ø参数
Ø类
Ø目录/文件

有意义的命名--名副其实
          Ø是什么就叫什么,比如指明计量单位和计量对象

$d;//消逝的时间,以日计

$elapsed_time_in_days;

有意义的命名--避免误导
          Ø避免使用专有名词作变量名称,除非指的就是那个专有名词

                    $hp,$aix,$sco

          Ø避免在变量名称中使用容器类型名

                    $account_list
                    $account_group

          Ø避免使用外形相近的词

                   xyz_controller_for_efficient_handling_of_strings     VS     xyz_controller_for_efficient_storage_of_strings

          Ø避免使用小写字母l和大写字母O作为变量名称


有意义的命名--做有意义的区分
          Ø反面教材1:以数字系列命名

                    $a1,$a2,$a3...,$aN

          Ø反面教材2:名称虽不同,意思无差别

                    $product
                    $product_info
                    $product_data

          Ø反面教材3:废话(=冗余)

                    $user_name_variable
                    $user_name_string
                    UserObject

有意义的命名--使用读得出来的名称
          
          public function genymdhms(){
               ...
          }

          public function generation_timestamp(){
               ...
          }

有意义的命名--使用可搜索的名称
          Ø反面教材1:数字
                
                    5     VS     WORK_DAYS_PER_WEEK

          Ø反面教材2:单字母名称

                    i,j,k(仅适用于短方法中的局部变量,如循环计数)   

有意义的命名--避免使用编码
          Ø避免把类型、作用域编进名称里面
          Ø避免使用前缀或者后缀
          Ø接口或者抽象类不需要在名称中特地说明

有意义的命名--避免思维映射
          Ø明确是王道,不要让读者翻译

有意义的命名--类名和对象名
          Ø名词或名词短语

有意义的命名--方法名
          Ø动词或动词短语

有意义的命名--别扮可爱
          Ø避免使用俚语或者俗语

有意义的命名--每个概念对应一个词
          Øcontroller、manager、driver

有意义的命名--别用双关语
          Ø避免同一个词用于不同目的
                    add

有意义的命名--使用解决方案领域名称
          Ø使用技术术语
                    JobQueue

有意义的命名--添加有意义的语境&不要添加没用的语境
          
          first_name,last_name,street,city     VS     addr_first_name,addr_last_name,addr_street,addr_city

          CustomerAddress     VS     Address
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值