一些代码写法推荐

等号加空格

$a=1; // 新手用
$a = 1; // 1年+工作经验都会变成这样

挺有趣的事实, 通过看 我以前代码 & 同事以前代码 & 一些新手的代码,
都会慢慢过渡加 空格 的。

变量重复

个人感觉一部分的代码的优化

一眼可以看出, code 变量出现两次。

 let code = this.getCodeByArea(value);
 if( isArea) 
   code = this.getAreaCode(value,check,type)

这样重写变量不香吗?

调用两次 this.getAreaCode 速度会慢些,
我只能说: 慢个 0.1ms 重要吗?

(当然最优的是: 是处理下参数 最后再调用函数)

不用else

个人感觉一部分的代码的优化

写代码,我个人不用 else 的。

还有些人类迷惑行为:

if( $res == "hello")
    return true;
else 
    return false;

请问 else 有啥用:joy:
见过挺多这种 迷惑行为

拒绝使用数字做状态

// 即使数据库有注释 但是看也麻烦 (我想只有新手才会用数字)
$order->status = 3;   

// 好处: 1. ide可以点击跳转过去  2. 一眼看懂
$order->status = Order::STATUS_SUCCESS; 

使用本地作用域代替Where

这和 [拒绝使用数字做状态] 有类似,都是为了更直观理解代码。
Where:

Address::Where('user_id',Auth::id())->get()

使用作用域:

模型添加

public function scopeCurrUser($query)
{
    return $query->where('user_id', Auth::id());
}

调用:
Address::CurrUser()->get()

本地作用域优势:

  1. 复用 (建议创建个 模型基类)
  2. 直观

(作用域见: 局部作用)

模型可以考虑使用query()

直接用

一些代码写法推荐

query()

个人感觉一部分的代码的优化

区别

  1. query()ide 提示。
  2. query() 更快,因为他不会经过这两个魔术方法。(这点速度可以忽略 就一点点)
    个人感觉一部分的代码的优化

用异常替代错误的返回

return

一些代码写法推荐

异常

个人感觉一部分的代码的优化

异常优势

子方法 或者说 在 任何方法,都可以 中止 后面的代码, 然后运行异常的处理。

这是 return 无法做到的。

推荐

可以看下这个: 重构 改善既有代码的设计—笔记
(虽然我没怎么仔细看过)

本作品采用《CC 协议》,转载必须注明作者和本文链接
专心学习不瞎搞
本帖由系统于 3年前 自动加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 24

if 不加花括号,我裂开 :joy: :joy:

3年前 评论
lyxxxh (楼主) 3年前

接受不了 if 不加花括号 {},哈哈哈

3年前 评论

复杂逻辑先写 汉字描述 再写具体代码

1.xxx
 // todo
  1.1xxx
   // todo
  1.2xxx
  // todo
2.xxx
// todo
3年前 评论

if 不加花括号,我裂开 :joy: :joy:

3年前 评论
lyxxxh (楼主) 3年前

接受不了 if 不加花括号 {},哈哈哈

3年前 评论

复杂逻辑先写 汉字描述 再写具体代码

1.xxx
 // todo
  1.1xxx
   // todo
  1.2xxx
  // todo
2.xxx
// todo
3年前 评论

github上有一个项目叫 clean code,上面有你所有需要知道的写代码技巧。

3年前 评论
  1. 没太看懂第二条 if else 哪里不好。。
  2. 不太赞同写一个本地作用域代替一个 where 条件,多个条件的情况下需要很了解每个作用域,但是直接 where 能解决的事情,个人认为这种有点过度封装,而且后期维护很难,还要再去看一下作用域的具体含义
3年前 评论
lyxxxh (楼主) 3年前
风吹过有夏天的味道 3年前
飞飞鱼 3年前
ZLSN 3年前

代码加空格只是习惯性用 Ctrl+L 命令,另外使用模型类的人也是不嫌麻烦 :joy:

2年前 评论

其实楼主只是建议而已不必太认真,想要优雅写法 ‘Python ’ 就好了 ,

2年前 评论
颠倒的玉石

if不加花括号或者if写在一行换行能扣钱么.......

3年前 评论

之前遇到个公司项目一个if 1000行代码 还不算else里面,而且7-8层if层数,里面还有大量的foreach循环查数据库 想想就刺激 一个接口查询数据库上千次的都有, 但是那个技术总监还JB说,我们不考虑重构,已经稳定运行了2年,第二天我就闪人了。

3年前 评论
李小明 2年前

感觉该啰嗦的不能省,因为写的时候开心了,回头改的时候可能因为一些小技巧,改出bug,JAVA那么繁琐还是那么流行,没有规矩不成方圆

3年前 评论

代码少了 else 看起来简洁了,但是很容易出现疏忽,如果条件不成立的话,还要往回看代码,很难看出覆盖了所有分支,增加了心智负担。

3年前 评论

代码写得好,换人换的早 :relieved:

3年前 评论
giao哥

我就是这样来写代码的 哈哈

3年前 评论

不错,大部分都是跟你推荐的一样,尤其是query():joy:

3年前 评论

这样写不行吗?

 let code  = isArea ? this.getAreaCode(value,check,type) : this.getCodeByArea(value);
3年前 评论
lyxxxh (楼主) 3年前
李小明 3年前
zxk 3年前
Mr-houzi 3年前

忙的时候不会思考怎么优雅,不忙的时候慢慢细磨。

3年前 评论

除了作用域,全中 :joy:

3年前 评论

我也知道if不加 花括号不规范,但是一行的if就是控制不住我自己,最主要我觉得一行的代码不加花括号,再换行好看,而且像if,foreach花括号我都换行 :joy:

3年前 评论

我隐约的记得if不用花括号是代码不规范的一种。 :see_no_evil:

3年前 评论

我只能说:慢个 0.1ms 重要吗?一个函数0.1,10个函数呢?

3年前 评论
zxk 3年前
nff93 3年前

我准备从新 按照你的方式优化下我的程序代码

3年前 评论
我的世界 3年前

官方代码规范PSR-2 照着这个来

3年前 评论
lddtime 3年前

对模型查询加query那个不太建议,如果要ide提示加个minxin 写多了方法都记住了

3年前 评论
sunny123456 3年前
小学毕业生 (作者) 3年前

:+1:学到了,感谢大佬分享!

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
87
粉丝
105
喜欢
480
收藏
717
排名:109
访问:8.7 万
私信
所有博文
社区赞助商