起因是与同事的一次争执(个人单方面挑起)。
简单说下现场情况:
PHP 开发,Laravel 框架。
第一件事:
一同事不满我于每次使用 Redis 都要先 Redis::connection();
他认为这次 connection() 会单独开一个 Redis 链接,性能损耗大。
而我认为直接使用魔术方法没有代码提示且 IDE 会标黄,看着不爽~
最后给他看 Laravel 源码,证明调用魔术方法本身也是先 connection() 然后调用方法。
而且证明 connection() 内并不一定会新创建链接。
事实上,Model 我也是先 query() 后 where()。
(这个我专门查过 Model 的源代码,都一样的,但 Redis 确实没查过。)
// 我的代码
Redis::connection()->pipeline();
// 他提议的
Redis::pipeline();
// 实际上 Redis::pipeline(); 的实现方法是
$this->connection()->{$method}(...$parameters);
第二件事:
我使用观察者来在订单 status 变更时记录到日志。
而他认为每次修改数据库都会触发观察者,性能损耗大。
而我主张,为了减轻服务器损耗,而提高人员的开发成本,得不偿失。
我的结论:
既然使用框架了,那为何不充分利用他便捷的特性呢?
追求极致的性能为何还要使用笨重的框架,直接原生手写代码就好了呀。
不知道是不是我的主张是错误的,求打醒。
========
不过我的脾气是真不好,当场就开怼了,要改,要改...