Published on

高效代码规范指南:从PhpStorm编辑器配置到避坑实践

Authors
  • avatar
    Name
    Liant
    Twitter

编辑器从入门到提桶

为什么

为了统一编码风格,代码对齐方式,照顾强迫症重症患者,贯彻爱与恨的真实,我们采用同一套编辑器对齐方式,尽量做到统一。

怎么做

  • 打开phpstorm,点击左上角的File,然后依次点击Settings > Editor > Code Style > PHP,下载Default.xml配置文件,直接点击导入。
输入图片说明
  • 格式化快捷键 Ctrl+Alt+L

好代码与坏代码

  • 不要使用母语
// 👍🏻
let name = 'Allan'

// 👎
let mingzi = 'Allan'
  • 三目运算符不要太长
// 👍🏻
const foo = maybe1 > maybe2 ? 'bar' : maybeNull;

// 👎
const foo = maybe1 > maybe2 ? "bar" : value1 > value2 ? "baz" : null;
  • if嵌套不要太深,遵循最早短路原则
 // 👍🏻
 if(!condition1) {
  return
}
...

 // 👎
     if(condition1) {
      if(condition2) {
          if(condition3) {
              if(condition4) {
                  ...
              }
          }
      }
  }
  • 代码要换行
 // 👍🏻
 <div
  :class="{'not-join': status === 'allow' && !item.is_select}"
 ></div>

 // 👎
 <div :class="{'not-join': status === 'allow' && !item.is_select}" v-for="(item, index) in list" :key="index" @click="check(item)" class="activity-item"></div>
  • 变量名不要保持神秘
 // 👍🏻
 const age = 18

 // 👎
 const asdg = 18
  • 变量类型不要自由飞翔
 // 👍🏻
 $username = "小明";
 $username = "小红"

 // 👎
 $username = "小明";
 $username = 2021;
  • 回调的“形状”要优雅,不要嵌套太深
 // 👍🏻
 function(callback){
    return callback();
 }

 // 👎
 function(callback){
    return function(){
          return callback();
      }
 }
  • 知道自己在写什么玩意
 // 👍🏻
 user = new User{name="小明",age=18};
 result = user.save();
 if (!result){
      // 保存失败,记日志
  }


 // 👎
 user = new User{name="小明",age=18};
 for($I = 0; $i < 10;$i ++){
      result = user.save();
 }
  • 不要连自己都骗
 // 👎
 <a href="javascript:alert('清除成功!')">清除缓存</a>
  • 发现错误不要保持沉默
 // 👍🏻
  try{

  }catch(){
      log.error()
  }


 // 👎
  try{

  }catch(){
      // 嘘
  }
  • 不要创建没用的变量
 // 👍🏻
  function sum(a,b,c){
      return a+b+c
  }


 // 👎
  function sum(a,b,c){
      $result =  a+b+c;
      return $result;
  }
  • 不要写永远不会运行的幽灵代码
 // 👍🏻
  function sum(number){
      if(number == null){
          return 0;
      }
      return number + 100;
  }


 // 👎
  function sum(number){
      if(number == null){
          return 0;
      }else{
          return number + 100;
      }
      return null;
  }