一些代码写法推荐
等号加空格
$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
有啥用
见过挺多这种 迷惑行为
。
拒绝使用数字做状态
// 即使数据库有注释 但是看也麻烦 (我想只有新手才会用数字)
$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()
本地作用域优势:
- 复用 (建议创建个
模型基类
) - 直观
(作用域见: 局部作用)
模型可以考虑使用query()
直接用
query()
区别
query()
有ide
提示。query()
更快,因为他不会经过这两个魔术方法。(这点速度可以忽略 就一点点)
用异常替代错误的返回
return
异常
异常优势
在 子方法
或者说 在 任何方法
,都可以 中止
后面的代码, 然后运行异常的处理。
这是 return
无法做到的。
推荐
可以看下这个: 重构 改善既有代码的设计—笔记
(虽然我没怎么仔细看过)
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 4年前 自动加精
高认可度评论:
if 不加花括号,我裂开 :joy: :joy:
接受不了
if
不加花括号{}
,哈哈哈复杂逻辑先写 汉字描述 再写具体代码
if 不加花括号,我裂开 :joy: :joy:
:+1:学到了,感谢大佬分享!
对模型查询加query那个不太建议,如果要ide提示加个minxin 写多了方法都记住了
官方代码规范PSR-2 照着这个来
接受不了
if
不加花括号{}
,哈哈哈我准备从新 按照你的方式优化下我的程序代码
我只能说:慢个 0.1ms 重要吗?一个函数0.1,10个函数呢?
我隐约的记得
if
不用花括号是代码不规范的一种。 :see_no_evil:我也知道
if
不加 花括号不规范,但是一行的if
就是控制不住我自己,最主要我觉得一行的代码不加花括号,再换行好看,而且像if,foreach
花括号我都换行 :joy:除了作用域,全中 :joy:
忙的时候不会思考怎么优雅,不忙的时候慢慢细磨。
这样写不行吗?
不错,大部分都是跟你推荐的一样,尤其是query():joy:
我就是这样来写代码的 哈哈
代码写得好,换人换的早 :relieved:
代码少了 else 看起来简洁了,但是很容易出现疏忽,如果条件不成立的话,还要往回看代码,很难看出覆盖了所有分支,增加了心智负担。
感觉该啰嗦的不能省,因为写的时候开心了,回头改的时候可能因为一些小技巧,改出bug,JAVA那么繁琐还是那么流行,没有规矩不成方圆
复杂逻辑先写 汉字描述 再写具体代码
github上有一个项目叫 clean code,上面有你所有需要知道的写代码技巧。
之前遇到个公司项目一个if 1000行代码 还不算else里面,而且7-8层if层数,里面还有大量的foreach循环查数据库 想想就刺激 一个接口查询数据库上千次的都有, 但是那个技术总监还JB说,我们不考虑重构,已经稳定运行了2年,第二天我就闪人了。
if不加花括号或者if写在一行换行能扣钱么.......
其实楼主只是建议而已不必太认真,想要优雅写法 ‘Python ’ 就好了 ,
代码加空格只是习惯性用 Ctrl+L 命令,另外使用模型类的人也是不嫌麻烦 :joy: