欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

代码易读性探索总结

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

写在前面:
  代码的易读性,个人认为是非常重要,受团队重视但是不能始终贯彻的.虽然面向对象已经成为了不二主流,在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,但是现实是骨感的.
  只想说:测试非常非常重要!能写出好的测试非常非常重要!能加就加!能早加就早加!

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