V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  encro  ›  全部回复第 111 页 / 共 156 页
回复总数  3117
1 ... 107  108  109  110  111  112  113  114  115  116 ... 156  
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()又多了一个方法,写全一点就少了一个隐藏点,仍然是潜规则越少越好,我记不住,大多数人都记不住。大部分时候,显式表达由于隐式表达。

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

这些基础不搞好,再提性能和架构都是扯。
2020-04-14 19:57:23 +08:00
回复了 dvaknheo 创建的主题 PHP [吐槽]刚读了 yii3-demo, PHP 框架是怎么把 PHP (优雅的)玩死的。
这几个才是正规项目开始的地方。

yii-base-web,yii-base-api 和 yii-base-cli 这几个参考才是正式开始的地方

demo 是某些人练手的地方,确实不友好。

https://github.com/yiisoft/docs 的 Roadmap 还有很多,不知道什么时候呢,我等了 2 年了。
2020-04-14 19:43:07 +08:00
回复了 dvaknheo 创建的主题 PHP [吐槽]刚读了 yii3-demo, PHP 框架是怎么把 PHP (优雅的)玩死的。
2020-04-14 19:38:42 +08:00
回复了 dvaknheo 创建的主题 PHP [吐槽]刚读了 yii3-demo, PHP 框架是怎么把 PHP (优雅的)玩死的。
@dvaknheo
既然你放出了你得框架( https://github.com/dvaknheo/duckphp ),
那么我就去看一下吧:

你的 hello world 代码,虽然只有几行,但是存在几个点,我看了之后基本不会用,也会劝别人不要用。

```
<?php
require_once __DIR__.'/../vendor/autoload.php';

class Main
{
public function index()
{
echo "hello world";
}
}
$options=[
'namespace_controller'=>'\\', // 设置控制器的命名空间为根
'skip_setting_file'=>true, // 跳过配置文件
];
DuckPHP\DuckPHP::RunQuickly($options);
```

第一:echo "hello world"; 而不是 return "hello world"?直接在控制器里面输出 html 这也是一绝了(绝迹的绝),你想让其他人都学样在控制器 echo html 吗?为什么其他框架都要采用 return 呢?

第二:namespace_controller 这是什么配置,双斜杆为根,什么奇葩?单独只让自己知道一个标准?我是不看源码心里没底。好的框架不应该直接一看就知道是什么吗?和 yii 的 'controllerNamespace' => 'api\controllers' 比一下,后者我一看就知道是什么意思,我用的着这简写吗,我在给别人还是自己挖坑吗?你真要少代码,因为反正都隐藏了,不如直接不配置,约定俗称。

第三:skip_setting_file=true 脱裤子放屁?不应该是不写配置就是自动跳过配置吗?


第四:DuckPHP\DuckPHP::RunQuickly($options)?莫非还有一个 RunSlowly($options)?有什么问题是直接一个 DuckPHP\DuckPHP::Run($options)解决不了的?


第五:Controller 写在入口文件?这得多 demo 啊?这是 micro/slim/flask 这类函数式框架的写法吧?


对于你的提到 Yii3 demo 增加了复杂度,我是同样看法的,应该可以更加简单,不妨先看看 yii2 吧,如果 yii3 真就这样,反正不用就是了,现在也在难产中,什么时候出来不知道。
我 yii 2 目前够用(除了那个和 bootstrap3 绑定外)。

对于以上评价,可能显得刻薄,请谅解。
敬佩你写开源框架的精神。

Yii3 确实被玩坏了,你的判断是对的,我也有这种感觉,团队成员现在动力不大了,因为 PHP 的发展空间就摆在这里,这个轮子不好玩了,意义不大了,我们都要承认。

PHP 要续命,目前我看只有写出一个好的基于云原生的框架,然后提供这个框架之上的大量现成程序,改下就能用。(类似 thinkphp 的 fastadmin,微擎的应用商店,这些都是中国特色,老外是不屑玩的)。
2020-04-14 18:42:30 +08:00
回复了 wangbenjun5 创建的主题 程序员 现在的所谓 AI 推荐算法只能这样吗?
其实我也做过推荐,也能理解吧。

1,推荐外层的是根据用户浏览历史标签来的;
2,购物车页面的推荐才是根据用户当前选择的产品,推荐相关产品;

而亚马逊主要是根据用户购买历史,而不是浏览历史。


还有一个是性能问题,按照浏览历史用户通常看得太多,filter 不好实现啊,filter 之后基本没有价值了。

另外一个因为推荐的都是广告位,是主营收入呢,都被加入 filter 之后,平台怎么赚钱呢,难道学 AMAZON ?收入怕得大降,被竞争对手打死,被投资人骂死,Aamzon 交易手续费高啊,所以药不能停,只能继续牺牲消费者利益,保证平台利益了。
2020-04-14 18:26:43 +08:00
回复了 wangbenjun5 创建的主题 程序员 现在的所谓 AI 推荐算法只能这样吗?
说过狗东的笑话:你上午卖了一款 iPhone,下午给你推荐另外一家店铺同型号更便宜的,我究竟要不要退货呢?
2020-04-14 18:23:41 +08:00
回复了 taaaang 创建的主题 生活 买了个超高层
以前在深圳 30 层办公,
有次肇庆地震了,
椅子蹦了几下,
大家先是心里一慌,
然后又安静下来了,
反正电梯已经无法上去了,走楼梯也晚了。
2020-04-14 18:17:30 +08:00
回复了 taaaang 创建的主题 生活 买了个超高层
昨天跑到 32 层,
按向下的电梯(我们电梯 2 梯 4 户停 16 层我住 11 平时觉得速度还挺快的),
不巧两个都下行过程中,那个等啊,大概 3 分钟吧,平时我都是 30 秒到 1 分钟的啊。
这时候我就想以后不住高层。

还有打雷时候,停电停水时候,谁来分享下?
2020-04-14 18:04:40 +08:00
回复了 RJH 创建的主题 程序员 BOSS 直聘服务宕机了
原来是会员就不会出广告
2020-04-14 18:03:51 +08:00
回复了 RJH 创建的主题 程序员 BOSS 直聘服务宕机了
看这个帖子,在 firefox 下出现广告了,而 chrome 就不会。
2020-04-14 14:51:47 +08:00
回复了 dvaknheo 创建的主题 PHP [吐槽]刚读了 yii3-demo, PHP 框架是怎么把 PHP (优雅的)玩死的。
@dvaknheo


一:



<?php
// ...
echo Alert::widget()
//..
?>

我个人会选择

<?=Alert::widget(['class'=>'my-custom'])?>

更加灵活,而不是从控制器传入,
框架的核心有一条是逻辑分离,减少大脑负载,
yii model 负责规则配置、数据操作,
控制器负责接收请求、组装数据,
视图负责展示,
如果采用控制器传入,那么就不是在视图定制了,而是在控制器定制界面,
如果你连这条不清楚,
那么你的框架我非常不看好,
而且会劝别人不要用,
因为大家会找不到这个界面的代码写在哪里,
我是不会去维护这样的代码的。


二:

action="<?= $urlGenerator->generate('site/contact') ?>"


Url::to(['site/contract'])方法是可以用的。


三:

其实最希望的是 View 里 一个命名空间都不用,代码简洁得多。

前面有提到视图负责展示逻辑,你记住这句就可以了,只要没有脱离这个本质,再多命名空间,那么代码也是清晰和直白的。

代码的清晰条理性重要性很重要,你说的 view 一个命名空间不用,Yii 至少有 5 种选择:

1,将展示逻辑放在控制器;(展示逻辑不分离,不推荐)
2,隐式引用;(没有代码提示,不好 DEBUG,不直观,不推荐)
3,模板引擎;(个人认为 php 本身就是最好的模板引擎,不推荐)
4,采用 ajax ;(这个可以);
5,调用 rest 接口;(这个也可以)

你有第六种办法,还是用了其中一种?


四:

配置 rule VS 手动 debug

rule 可以自动生成(gii),改好 rule 就会错误提示一致,不会出 bug,不需要 debug 了,所以这就是自动驾驶,你现在和我说手动挡好?


五:

安全

比如内置了 jwt,rules 验证,cookie 加密,防注入等等,这些基本是目前框架标配吧。
你感觉不到,因为你看的是普通模板,不是高级模板,普通模板是隐藏了这些的,不表示它不存在,且你没有看官方文档,直接上手一个 demo 了。
比如需要配置 cookieValidationKey 你知道是做什么用的吗?
比如为什么配置文件要分为 local 和非 local ?
environments 里面的 prod 和 dev 又是做什么用的?


六:

有没有默认配置,让我的 业务工程看起来简单。


https://www.yiiframework.com/
首页 5 个步骤第一个步骤:安装 composer,下载标准模板,运行 yii serve 。
三行命令项目都跑起来了,进入开发了,你说没有默认配置?



七:
比如模拟某个人操作,没必要用 curl 模拟从他登录开始吧。
拿到 uid,直接调用 service 业务层就行了。

Model 还可以用,Console 也可以用,其他都可以用,不必重复,
Yii3 最大的不同和目的就是将 jq,bt 等前端框架从核心中分离出来。
至于这个 demo 你可以看成秀技术的,Yii 其实一直都是紧跟 PHP 版本的。


八:

php7.4 预加载,解决了一部分性能问题。但是并没有完全解决

还是请举出一个除了不能常驻内存之外的性能问题例子出来,不能说空话啊,写程序的不能空对空,得摆事实。



九:
一个请求过来,框架的 hello world 要比纯 php 的 helloworld 跑多出很多 php 代码。

现实是大家都用框架,WHY ?
都是大牛们为了优雅好玩的?
大牛们都傻?
老板也傻?
层次不同而已,你看到的是自己写得爽,对其他任来说是团队合作有一套默契的规范,能够高效解决问题。

十:

为了追求性能和模式,所谓 [WEB] 高手们抛下了 PHP 改用 go 、java 、c#,留下一个所谓“优雅”的 PHP 开发氛围。

你还是可以不用框架啊,而且你还是可以自己写一个框架啊,所以有什么好说的。
环境变了,
你以为 PHP 还是嵌入 html 中用,
其实已经经历过我前面提到过的 cake,zend,yii,laravel 多个时代了,
现在即将进入云原生时代了,
你期望 PHP 什么都能解决,
我只期望它做好 Web 即可,
至少现在开发一个人人商城,微擎这样的软件,我找不到更好的语言,
至于其他,至少我还会 Python,node,go,还在学习 C++和 C#,哪个适合我就用哪个,有什么好纠结的。



建议先看完官方手册,以及下载官方推荐的几个开源项目下来用用,然后自己动手写一个商业项目,想想这个框架适合场景,再来评价框架好坏更好。
当然还需要看下软件工程,软件思想的书籍。
知道你想骗我,想多从我这里掏点东西,自己快速学走捷径,先满足你吧。
然后有一天你会明白“欲速则不达”的道理。
2020-04-14 10:58:22 +08:00
回复了 Bramblex2 创建的主题 程序员 后端接口这样设计是否合理
结构应该表意,这是写代码基本规范,应该尽量遵守。

users:null vs users:[] 通常后者能明确告诉我们这是一个空的 User 列表
user:{} vs user:null 通常后者表示这个用户不存在而不是这用户存在但是属性为空
user: {id:''} vs user:{id:null} 区别是一个表示 id 为空字符串,一个表示 id 没有设置
user:{orders:[]} vs user:{orders:null} 当然选前者
book:{author:null} vs book:{author:''} 当然选前者
book:{author_name:null} vs book:{author_name:''} 应该还是选前者表示作者名未设置而不是被设置未空字符串,但是这条动态类型语言比较难办,那么可以商量来。

以上可以衍生到数据库设计上。

如果以上很难办,
通常是因为缺少一个合适的框架,
比如 django rest 和 yii rest 只需要数据库设计合理通常就没这些问题。
2020-04-14 10:42:23 +08:00
回复了 dvaknheo 创建的主题 PHP [吐槽]刚读了 yii3-demo, PHP 框架是怎么把 PHP (优雅的)玩死的。
作为一个从 cake,ci,kahana,zf,yaf,yii1,yii2...一路用过来的人来说,每次接触一个新的流行框架,都学习了一种新的解决问题的办法,每一种框架的流行都是有其道理的,他的道理就是他迎合和解决了那个时段的主要问题。
至少我用起来,写的代码是越来越安全了,团队效率是越来越高了,而不是越来越低了,代码性能定位越来越容易了,而不是性能问题越来越突出了。

@dvaknheo

这东西怎么来的。 一两个特例马上能教人懂,多了没法马上会啊。
Yii 定位是 advanced 框架,强调是安全、可配置、可扩展、性能可见。不是 ci,cake 等脚手架、helper 类之类的框架。

View 里不能做任何计算,不能 include 非 View 的代码。
可以啊,你看的是伪 demo 吧随便找一个,既然是 PHP 文件,不能计算,你是来搞笑的吗? https://github.com/yiisoft/yii-demo/blob/master/views/contact/form.php

当然可以 include,但是你得搞对路径啊,但是建议采用$this->render 替代。

Laravel 优雅的带着 PHP 优雅的 Java 化。当初 PHP 上手就干的年代,这是 PHP 的优势。
上手就干是 4.3 以前的优势,后来的主要优势是社区、开源项目、官方库。


现在一堆代码,业务相关的没几行,这还是 PHP 么。
因为已经不需要写这么多业务代码了,你配置好 rule 之后,自动驾驶了,自动驾驶你不应该关心是否有方向盘,而应该是自动驾驶是否可靠。

ORM 就非用不可么,Data struct 不容易理解么
有 Yii::$app->db->createCommand 和 Query 任你调用

有好用的文件路由不用,非得手写路由 (src/Factory/AppRouterFactory.php)
route 不用任何配置都可以跑的,你用的是官方 demo 么?


配置文件里一堆 use (config/web.php)
是的,这次改版最大的变化之一了。
为了遵守 psr 规范,让各大框架组件能够通用目标,牺牲小我为大我。。牺牲精神值得赞扬,但是我也觉得太多了,其实以前是隐藏的,现在变得开放出来的。也可以理解框架为了变得通用,不得不做各种抽象,比如缓存,日志,数据库为了兼容各种方案,不得采用各种适配器。如果你自己写一个框架,不用兼容那么多场景,那么这块确实是可以简化的(笑)。

MVC 缺层都是大家的共识了, 业务逻辑层叫 Service 或 Logic 我都无所谓,但直接 Controller 里调用 ORM,以前 10k 行的 Controller 啊。 从 Controller 里把业务逻辑剥离出来,跑命令行测试不好么。
和 Yii2 无本质区别,加了类型的 PHP 。。。作者 samdark 以前是搞 JAVA 的?或者指使代码写多了,记性不好了,加了类型便于 IDE 方法提示,如果你记性一致很好,那么可以不要这个类型提示,代码一样可以跑的。
至于你说的 Service 和 Logic 有什么必要吗?参考我上一个回复


PHP 开发速度很快,运行速度也很快。 没必要为了那些优雅牺牲开发速度,运行速度。
开发速度,得看工具和生态,Yii 有 gii,有各种数据服务器端,客户端验证,各种第三方库。
运行速度,性能优化得看性价比、定位速度和解决方案,Yii 等框架提供了 debug,性能问题一目了然。我在一台 4 核 8G 得 CPU 也可以跑一年几亿得交易额,我觉得性能非常好了,如果再发展,我是能花钱可以添加一点机器资源的。Yii 的四层 cache 设计方案,可以让你控制缓存在页面,局部 HTML,数据,请求级别。


讲真,我动力再足一点,写个同功能的 插进这些框架的 demo 中, 让大家见识一下应该用什么样的手段最符合 PHP 的快速开发模式。
我倒觉得是时候去框架了,不过我认为值得尝试解决方案是云函数+UI 仓库+项目仓库,看看国内大厂和国外新兴就知道,越来越向 low code 发展了,但是 low code 的基础是大量成熟的解决方案,所以我认为当前符合 PHP 的快速开发模式就是一套成熟的云原生的框架加各种 demo 。其他的话我并不看好。

@zjsxwc

symfony 确实是标杆,甚至比以前 zf 做得更好,值得尊敬。目前在 PHP 界都在向 psr 靠拢。

@HiCode

1 、PHP 从一开始流行就是因为适合小型项目,开发效率及运行效率都不错;

同楼上的回复,这是 4.3 以前的优势,后来的主要优势是社区、开源项目、官方库

2 、PHP 大流行后,部分有追求的程序员希望给 PHP 加一点 B 格,开始用各种模式要求 PHP,让 PHP 往 Java 方向发展。但 PHP 是脚本语言,Java 不是,Java 本身有足够的性能可以支撑起各种设计模式的性能损耗(但还是经常被吐槽太重太慢)——而 PHP 并没有这个性能来支撑。

PHP 为什么性能不好,知道吗?
解决性能问题首先要做是定位,通常说 PHP 性能不好的,不能常驻内存导致的吧,至少我还没有发现其他 PHP 性能不好的地方,至少我觉得够用了,举一个其他例子?
常驻内存可以用 swoole 之类的解决下,当然也没必要仅限于用 PHP 开发。


3 、各类设计模式在 PHP 项目中的普及,确实提高了效率,增强了一丢丢的团队协作,但开发的复杂性和性能的损耗却让 PHP 失去了他最开始的拥趸。

PHPer 也可以学习的,而且以前的方式还是可以用啊,为什么大家都愿意用了呢?因为以前的方式已经发展到头了啊,满足需求了啊,新的方式适用新的方向。

4 、为了追求性能和模式,所谓高手们抛下了 PHP 改用 go 、java 、c#,留下一个所谓“优雅”的 PHP 开发氛围。

高手们抛弃 PHP 采用 GO,
不是因为性能和模式。
而是环境,
环境变化了,
恐龙就不能生存了,
云计算、大数据的环境来了,
人类为了掌握周边环境降低风险,
天生就会自动去觉察掌握学习周边环境便于生存,
go 和 PHP 方向还是不一样的,
如果你用 go 去开发一个电商网站,
比如人人商城这类的这时候你会觉得还是 PHP 好,
如果你去开发一个 FQ 工具或者爬虫或者即时通讯服务端,无疑 GO 跨平台编译,协程让你飞起来。
如果我们学习后不能思考工具的适用场景,那么就不是真学了,这也是码农和架构师的却别吧,码农拿着锤子都是钉子,架构师所有工具都能恰如其分的使用。
1 ... 107  108  109  110  111  112  113  114  115  116 ... 156  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   945 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 48ms · UTC 20:20 · PVG 04:20 · LAX 13:20 · JFK 16:20
Developed with CodeLauncher
♥ Do have faith in what you're doing.