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

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

这些基础不搞好,再提性能和架构都是扯。
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 分钟的啊。
这时候我就想以后不住高层。

还有打雷时候,停电停水时候,谁来分享下?
1 ... 107  108  109  110  111  112  113  114  115  116 ... 157  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2487 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 08:42 · PVG 16:42 · LAX 01:42 · JFK 04:42
Developed with CodeLauncher
♥ Do have faith in what you're doing.