设为首页 加入收藏

TOP

代码易读性探索总结
2019-09-17 18:19:12 】 浏览:23
Tags:代码 易读性 探索 总结

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

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

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇关于restful开发的疑惑 下一篇用java数组模拟购物商城功能与实现

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目