• 代码易读性探索总结


    写在前面:
      代码的易读性,个人认为是非常重要,受团队重视但是不能始终贯彻的.虽然面向对象已经成为了不二主流,在PHP的大世界里,在本人遇到的各种PHPer中,面向过程的写法仍比比皆是.维护成本也各不相同.
      下面是本人在工作中的一些总结和想法,如有看的不舒服的,换个舒服的姿势.

    命名
      命名规范是编码的基本,下划线和驼峰只是形式,实质还是要看想要这个名字做什么.

      1.确定使用动词性质还是名词性质
      2.尽量将其具体化
      3.勤于修改

      eg1. userName VS userAttribute
      eg2. setName VS manageName
      eg3. 王建国 VS 王建设
      eg4. getUserName VS getUserNameByUid

    注释
      无效注释一定要删除!害人害己.
      逻辑注释一定要详细!
      代码修改后,注释一定要改!
      没有注释,别人还能一眼看明白,是真的厉害!

    代码生命周期
      1.局部变量声明和使用尽量靠近,不要跨过山河大海,穿过人山人海

    $userLogObjectId = "string";
    $userLogForCache = array(...);
    $userLogForStorage = array(...);
    if(!createUserLogForCache($userLogObjectId, $userLogForCache)) return false;
    if(!createUserLogForStorage($userLogObjectId, $userLogForStorage)) return false;

      vs

    $userLogObjectId = "string";
    $userLogForCache = array(...);
    if(!createUserLogForCache($userLogObjectId, $userLogForCache)) return false;
    $userLogForStorage = array(...);
    if(!createUserLogForStorage($userLogObjectId, $userLogForStorage)) return false;

      2.方法调用尽量紧跟其后

    public function setInputRules(){...}
    public function getInputValues(){...}
    public function main(){
    $this->setInputRules();
    $this->getInputValues();
    }

      vs

    public function main(){
    $this->setInputRules();
    $this->getInputValues();
    }
    private function setInputRules(){...}
    private function getInputValues(){...}

      3.成员变量谨慎使用:欲说还休
      4.常量谨慎使用:const vs define

    访问权限
      权限是基础的,但是真正做到权限管理的很少,基本上都是一溜的public.
      虽然代码一样跑的畅通无阻,管理一下,起码看起来更安全和更专(装)业(X)一些.
      关键是其他人调用的时候不会感到一脸懵逼,也不会滥调用.看到自己精心写出来的代码被随意滥用,很不爽的啊!
      而且对于编写的类结构也更清晰,什么是开放的,什么是私有的,什么是继承的.
    类间关系
      1.面向接口编程,而不是面向实现编程
      2.组合优于继承
      3.依赖注入
      4.依赖反转
      5.等等...
      对自己编写的代码不断进行优化重构,总会发现新的想法和技巧

    设计模式
      很少有东西是可以不懂就拿来使用的.
      设计模式是一个启示性工具,在代码解耦性和扩展性方面很强大.
      选用合适的模式,结合自身需求,进行整合和修改,不断优化重构,才能达到理想的效果.

    测试
      曾经看过一句话:没有测试的代码,就好像在钢丝绳上跳舞.高空,没有安全带的那种.随时可能被摔死,而且死的很惨.
      虽然TDD提出好久了,各流行框架也加入了PHPUnit,但是现实是骨感的.
      只想说:测试非常非常重要!能写出好的测试非常非常重要!能加就加!能早加就早加!

    写在后面:
      看的舒服,其实就是对代码不断优化重构的表现.是对代码精益求精的体现.
      还没有见过一次性写完代码不进行修改的大牛.期待!
      业精于勤,希望自身也能通过自己的总结,激励自己,成为一个勤奋的人!

     

  • 相关阅读:
    bag of words in c++
    中位数计算
    awk数据预处理
    收集主机OS相关数据
    Kernel trick----PRML读书笔记
    Error:java: 不再支持源选项 5。请使用 6 或更高版本。
    springboot mybatis日志级别
    java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
    docker部署Nacos集群
    WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. Please consider disabling it now.
  • 原文地址:https://www.cnblogs.com/hongxinlaoking/p/9238435.html
Copyright © 2020-2023  润新知