V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  encro  ›  全部回复第 118 页 / 共 164 页
回复总数  3269
1 ... 114  115  116  117  118  119  120  121  122  123 ... 164  
2020-04-16 16:44:32 +08:00
回复了 hbolive 创建的主题 程序员 千万不要相信码农说的,任务太紧,没时间优化代码
我们框架做法都$user->city->name 得到城市名。
明显现在大部分用 orm 这么简单的方法?
团队都应该愿意用啊,
所以我觉得你是框架没有选择好,
还是过分吹毛求疵?
2020-04-16 16:32:14 +08:00
回复了 hbolive 创建的主题 程序员 千万不要相信码农说的,任务太紧,没时间优化代码
标题我是认可的。


但是呢:

读取一个用户列表,这个列表有些属性要从另外一张表读(比如所在城市),做法是:先读取列表数据成数组,然后再遍历这个数组,遍历的时候再根据城市 id,再去查询地区表,得到城市的名字。

如果流量不大,公司后台,没必要去合并再查询,ORM 关联查出来直接上就行,虽然多了一页几十条查询,但是性能基本没有影响。

程序员这时候偷懒是可以的。

程序员不写注释,不写文档也是可以的。

但是不搞清楚需求,逻辑不搞清楚,代码写得不清不楚,是不允许的。

最后,我们没法要求别人什么,但是我们可以培训,让大家都朝一个层次看齐,提高大家的代码水平和要求,这就是管理的责任了,也是公司团队组织存在的价值和意义之一。
2020-04-16 15:55:59 +08:00
回复了 Elethomdog 创建的主题 杭州 快递最后一公里这么多年还是没解决好
最后说一下,并不是支持快递不上门。

有阵子我老婆一个人在家带小孩不能出门,也会特别要求快递员送货上门,打电话过去说明下,最后也很乐意的送上门了,大家都互相尊敬,有什么不好吗?

只是如果没有特殊情况,请不要送上门,让快递员多为有需要人服务。

如果你有特殊原因,可以要求上门,对方不上门,那么是支持去投诉的。
2020-04-16 15:46:44 +08:00
回复了 Elethomdog 创建的主题 杭州 快递最后一公里这么多年还是没解决好
@shijingshijing

请看我前面的内容:

国家规定是在菜鸟驿站等出来之前立的法,
现在菜鸟,蜂鸟,速递易等出来后,
直接将快递费降低了一半( 6 元到 3 元),
快递人员的工作负担降低了一般不止,
最后一公里,快递员等人等电梯,中间浪费多少人力和时间成本?
是造福广大群体的事情,
认为快递点在吸血,
只能说是没有商业常识。


法律永远落后于现实,(当然不因此以为我们就可以逍遥法外)
生活永远不可能完美,(若自由无限制,则自由无意义,快递公司为了最大效率,确实牺牲部分人利益)
所以如果你是如 @nguoidiqua 一样提出完善法律,强制各大快递服务商提供分级服务,那么我是赞成的,我相信各快递公司,大部分人民都是赞成的(那部分打算继续用底快递费享受上门的除外)。

社会劳工一直在减少,
用工成本一直在增加,
视而不见吗?

一个快递员每个月工资最少 3000 元,
每个快递收费 3 快全给他,
它如果都送上门,
一天也送不了 100 个快递啊,
所以我说不会算账的,
都是不愿意遵守客观事实的,
都是一厢情愿的。

如果让快递员回到送上门的状态,
将人变成畜,
我认为是社会的倒退,
是悲哀,
你们好意思让人送上门吗?
你们在喝大部分没有要求送上门的人的血,
你们在喝快递员的血,
请反思。
(当然特殊情况不方便除外)
2020-04-16 15:13:45 +08:00
回复了 Elethomdog 创建的主题 杭州 快递最后一公里这么多年还是没解决好
@MooneyDiy

你太理想化,
商业的事情,
如果都按法律来,
现在还在吃大锅饭,
还有人饿死,
第一个分田到户的村名都在蹲大牢,
菜鸟驿站,速递易,蜂鸟也不会诞生,
因为一出现就违背了送上门的法律啊。
2020-04-16 15:10:22 +08:00
回复了 Elethomdog 创建的主题 杭州 快递最后一公里这么多年还是没解决好
@nguoidiqua

我都觉得不值得争论了,
程序写久了,
不会算账,
没有商业意识。

国家规定是在菜鸟驿站等出来之前立的法,
现在菜鸟,蜂鸟,速递易等出来后,
直接将快递费降低了一半( 6 元到 3 元),
快递人员的工作负担降低了一般不止,
最后一公里,快递员等人等电梯,中间浪费多少人力和时间成本?
是造福广大群体的事情,
认为快递点在吸血,
只能说是没有商业常识,

如果不是因为确实不方便,
我倡议大家都自己去取快递,
自己到店消费减少外卖上门,
节省社会成本,
我始终认为用人的体力是不道德的,
是将人当牛和马在用,
仿佛让我看见我以前老家牛被套在犁上犁田,
社会应该给快递员培训,
去做更有创造价值的事情,
需要动脑的事情,
人的大脑才是最大的财富。

没有脑子,
不会算账,
真可怕。
2020-04-16 14:42:24 +08:00
回复了 Elethomdog 创建的主题 杭州 快递最后一公里这么多年还是没解决好
大部分城市的卖家快递费是 3-3.5 元,
收货方没有钱,
送货方 1 元,
中间物流 1 元,
快递点 5 毛,
剩下 1 元快递平台和交税。
以上为大概数字。

你想怎么样?

最后一公里,本不合理,快递员等人,中间浪费多少人力和时间成本?快递公司铁定亏本。
菜鸟驿站这种,才是目前最合理的。
如果你因为不方便想送到家,可以选择宅急送和顺丰。

至于通知,是自动化的,快递通过扫码枪入了快递点,自动发送通知卖家。
所以你说的没有通知,通知短信是卖家的可选服务,卖家决定是否发送物流通知短信(淘宝京东卖家开通快递助手的短信通知)。
目前 android 小米,华为手机都可以接收快递通知,
支付宝,顺丰服务号等也有通知。
所有我觉得还是非常方便的。
是否因为你关闭了通知?
2020-04-15 14:26:26 +08:00
回复了 ackfin01 创建的主题 程序员 请大家帮忙推荐部手机
华为对焦慢,是真的。。。
苹果快一点吧,
手机很难做到吧,
好像可以调?
2020-04-15 14:22:30 +08:00
回复了 ackfin01 创建的主题 程序员 请大家帮忙推荐部手机
我用了华为的,苹果,小米,
觉得华为拍照还算三者最好的啊(年代不同,所以不算比较),
我用的 p20pro 。
@Tas1

以前我住老小区,我妈来帮我带孩子,几天就几乎谁家几口人做什么工作,甚至收入开支多少,都清清楚楚了。哈哈。


也没有什么不好,老校区绿化好的话,通常很舒服,我个人喜欢老小区,6 层以下的。
我觉得大部分小区 12 层就好了,太高不好。

老小区通常都是南北通透采光好,空气对流好,花园阳台大赠送面积大,教学质量好。

不好的是建筑质量,停车位,人车分流。
2020-04-15 11:50:27 +08:00
回复了 dvaknheo 创建的主题 PHP [吐槽]刚读了 yii3-demo, PHP 框架是怎么把 PHP (优雅的)玩死的。
@HiCode

openresty 很好,价值很大。
曾经尝试做 waf 。

你们网站流量居然用 openresty ?
比我现在做的流量高吧?
我怕人难招,老板嫌开发不够敏捷。
如果不是因为上面原因,我更乐意用 go 慢慢堆代码吧,毕竟新玩具比较好玩。
2020-04-15 11:43:05 +08:00
回复了 dvaknheo 创建的主题 PHP [吐槽]刚读了 yii3-demo, PHP 框架是怎么把 PHP (优雅的)玩死的。
@nicoljiang

PHP 还是简单,快速啊。
你看我都学了用了这么多框架,
我还是个很懒的人,
经常在 v2 灌水。
就知道这些框架有多简单了。

你说的 lue,python 方向是可以做客户端之类的吗?
那些真不适合 PHP 。

我宁愿去学 C#,C++,
每个人都有适合自己的定位。
历史决定的。
2020-04-15 11:38:11 +08:00
回复了 dvaknheo 创建的主题 PHP [吐槽]刚读了 yii3-demo, PHP 框架是怎么把 PHP (优雅的)玩死的。
@HiCode

小而美得框架也已经有一堆了啊。
所以没必要重复造轮子。
大框架也提供了小而美得兼容方式。

至于 PHP 发展,我有两个观点:

第一:

一门想语言发展好,主要是建立好生态。

这方面探索我们能看到的有:

1,前面我提到可以建立一个基于云原生的框架;

2,symfony 的 api 平台;

3,thinkphp 的 fastadmin ;

4,微擎的应用商店;


第二:

PHP 享受了 WEB 高速发展的红利期,
而现在虽然还没有进入衰退期,
但是 WEB 发展已经没有以前那么快了。
前文提到环境变化了,
恐龙就不能生存了,
自我改良是缓慢的,
所以不要将所有鸡蛋都放在一个篮子里面,
我们尝试 PHP 新出路同时,
不妨碍同时 go,python,java 甚至 c++等语言,
生老病死本常态,
一招鲜吃遍天的懒惰思想是行不通的。
2020-04-15 11:19:32 +08:00
回复了 dvaknheo 创建的主题 PHP [吐槽]刚读了 yii3-demo, PHP 框架是怎么把 PHP (优雅的)玩死的。
@jowan
性能测试的时候,开启 opcache 是公平的,HiCode 给的连接也是开启了 opcache 的。
如果开启数据缓存,有的框架没开启,这就不公平了,不好比了,开启后命中率等影响较大。

而且缓存级别也是有很大差别的,比如 head 直接返回 304 HTTP 304,直接 http 头设置一个超时时间两者区别都很大啊。比如 Yii 的请求,页面,widget 局部,data 级别缓存,每一级性能差别都很大啊。如果我开发一个 blog,为了测试性能好,我直接设置一个一小时过期头,那么其他框架都别比了,原生都别比了。。。所以是作弊。。。规则就是咱还是比谁代码写的好吧。

但是生产环境,可以根据情况设置缓存。

框架性能只是架构其中一个考量,大部分公司而言,都放不到第一,人员招聘容易度和开发维护成本重要程度都比它高得多。
2020-04-15 10:38:45 +08:00
回复了 dvaknheo 创建的主题 PHP [吐槽]刚读了 yii3-demo, PHP 框架是怎么把 PHP (优雅的)玩死的。
@HiCode

才看到你前面发的链接,看了下测试代码和环境,比较公平和准确。
收回我前面的话,说声抱歉。


Single query On Cloud

PHP 15,248
php-laravel-query-builder 4,867
yii2 2,545
laravel 1,087

Multiple queries On Cloud
php 1,897
yii2-raw 1,677
yii2 919
php-laravel-query-builder 825
laravel 430

这个是非常有意义的:
随着页面查询增加,性能差别变少。且这都是在框架不开启数据缓存的情况下。
如果开启缓存,那么就。。。作弊了。。。


你是希望轻量级框架,这个也已经有很多轮子也多了。如 slim,micro 等,
但是为什么我们知道的少?
我认为应为太容易了啊,很容易就自己造一个,所以大家都自己造去了,导致不集中没有流行广的框架。

ROR,django, yii, laravel, symfony 都是比较重量级的,
适合团队有前端,后端,API 接口规模的,
当然熟练了,也可以在小团队适用,比如我现在就是 3 个后端采用 YII2 的,2 年时间大小开发了十来个公司自己用的系统 3 个产品吧,目前在用的还有维护和用的有十个左右。如果不用框架,或者用简单的框架我认为做不到。基本我们是九五六吧。

yii raw, php-laravel-query-builder, symfony 等等很多框架都提供了针对 api 的简洁版本。

其实不用 orm 性能就能直接上升一倍以上,但是我还是在我团队让大家优先用 orm,因为维护简单,只有处理个别大量数据导入导出会用到 DB 类和原生 sql.
2020-04-15 09:56:31 +08:00
回复了 dvaknheo 创建的主题 PHP [吐槽]刚读了 yii3-demo, PHP 框架是怎么把 PHP (优雅的)玩死的。
@HiCode

首先,laravel 将性能降低到原生 4%左右,这个标准是什么,难道我们平时只开发 hello world ? laravel 哪个地方导致性能低了有清楚吗?是不是某个配置,某个插件导致的?不用这个配置或者插件行不行?环境配置是怎样的?有没有开启 opcache 呢,首次运行还是非首次运行?

如果不清楚这些,你只是人云既云的的程序员,没事瞎起哄。


其次,laravel 性能很重要吗?我前面提到真实环境一个 4 核 8G 一年也能跑上亿交易额,每天几千单。对我和我的团队来说,用框架我能快速定位性能问题,快速上线,统一标准统一文档代码容易维护能让我节省多少时间,团队少招聘的人,用来给其他程序加工资不更好吗?


ps:

我自己实际测试的时候,YII2,5 年前购买的笔记本 4c8g,linux 系统,fpm 配置了 150 最大请求,开启 opcache,代码连接一次 db,纯 PHP 4000rps,框架自带 DB 类不用 ORM 2500rps,用框架 ORM 500rps 。

实际项目中,我全采用 ORM,平均每秒钟处理 50-200 个请求,nginx 日志显示 fastcgi 响应时间是 5-50ms,我觉得够用了。再不行人员开支上节省的钱,我再加点服务器配置足够了。
2020-04-14 20:30:50 +08:00
回复了 dvaknheo 创建的主题 PHP [吐槽]刚读了 yii3-demo, PHP 框架是怎么把 PHP (优雅的)玩死的。
@dvaknheo
我知道都能说的通,
但是一个框架或者一段代码,
如果不是明摆着的,
而是需要解释,
那么就是没人愿意看的愿意用的。


一: 也是我困惑的问题,为什么要 Controller 非得要 return 一些东西?初学者最容易搞不懂的就是这个。
所以我们要明白为什么几乎所有流行框架都用 return 呢?其实因为后面方便加 cache 层,加 layout 啊。


二: 控制器命名空间为 \ 根命名空间。因为常规下是在 ProjectNamespace\Controller 底下的。 这个小例子不需要。 这个例子就是写小型程序用的,这样其他控制器类也直接写。我应该还加上配置扩展选项,使得没服务器配置也能用。追加

$options=[
'namespace_controller'=>'\\', // 设置控制器的命名空间为根
];

你改成
$options=[
'controller_namespace'=>'Controller ',
];
这样,你的框架又少了一条潜规则(双斜杠),框架不是潜规则越少,越容易学么?


三: 修改默认设置。skip_setting_file=false 目的是为了防止你传代码不传设置文件上去的时候报错。

做多了

$options=[
'namespace_controller'=>'\\', // 设置控制器的命名空间为根
'skip_setting_file'=>true, // 跳过配置文件,防止传代码不传设置文件上去的时候报错
];

多别扭,新手关心这个干什么,这个就不是最佳实践



四:

DuckPHP\DuckPHP::RunQuickly($options,$callback) =>
DuckPHP\DuckPHP::G()->init($options);
//$callback();
DuckPHP\DuckPHP::G()->run();
前者只初始化,后面才开始路由。DuckPHP 不仅仅支持整站配置,还支持非整站的路由设置, 如放到 /something/index.php 里。
还有 Swoole 兼容的插件, 把初始化部分放在主流程, 运行部分在工作协程。无需改动代码。


试试
DuckPHP\DuckPHP::run(['mode'=>'swoole'])
或者
DuckPHP\DuckPHP::run([],DuckPHP::RUN_MODE_SWOOLE)

还有这个 DuckPHP\DuckPHP::G()又多了一个方法,写全一点就少了一个隐藏点,仍然是潜规则越少越好,我记不住,大多数人都记不住。大部分时候,显式表达由于隐式表达。

同事说给我去买个带个午餐上周二你帮我带过的,或者说给我去兰州拉面买个刀削面,当然是后者更不会出错。

这些基础不搞好,再提性能和架构都是扯。
1 ... 114  115  116  117  118  119  120  121  122  123 ... 164  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   905 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 20:56 · PVG 04:56 · LAX 12:56 · JFK 15:56
Developed with CodeLauncher
♥ Do have faith in what you're doing.