2016-04-26 Laravist群友杂谈 --- 没什么特别标题

简要记录了 04-21到04-26的聊天记录

[福利分享] Many many

超神  简单 CSS 框架

监控数据可视化

Starriv 洋葱验证

Weex 

PHP闭包引发的学案

http://php.net/manual/en/closure.bindto.php

茄子 React Native通信机制详解

Littlehz 鉴别BGP的方法

JellyBool vue分页

https://github.com/andersao/l5-repository

超神:很炫酷

Abraham:http://flarum.org/

http://labs.infyom.com/laravelgenerator/

一个PHP与多字节字符串处理库 

教主 理解依赖注入

猎人亲身亲测专治各种curl不服

几个关于图片的小玩意http://lorempixel.com/    http://temp.im/   http://placehold.it/

Judd 又一个markdown

统计代码数  https://wakatime.com/

Judd 头像生成器

[业务疑问]希望新项目要和旧项目共享session等东东,旧项目难以扩展,重构又太花时间

[解答]可利用sso单点登录,RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。

[经验分享] (超神) 处理问题的方式

提问要带上下文:

1. 我想做什么,我尝试怎么去做了,我的环境是这样的。。。

2. 但是出了这样的错,这个错误的明细如图

3. 我尝试从日志去查找问题,并且确认我翻阅了该章节相关的文档没找到答案

比如像微信问答错误解析

1. 你得获取到哪个微信号(openid)发了什么,上一条是什么

2. 对上下文进行分析,取得对应的反馈信息并返回

上面两句包括了以下四点:

1. 微信用户唯一ID

2. 存储微信用户发送的信息以便于搜索

3. 如何获取他上一次发的消息

4. 如何做上下文分析

[经验分享] (超神) 如何接触一个新东西

接触一个新东西的时候最好把它的文档全都读一遍,知道它的结构,知道它能干嘛不能干嘛.总想着,我写这个功能的时候才去看吧,你就会发现,你很难推进的项目.像我搞一个自己不熟悉的东西的时候我就会花时间把文档大概读一遍

[经验分享] (超神) 命名

函数/方法:动名;  变量:名词,或者形容词+名词,或者名词+副词

[业务疑问]  怎样获得URL中最后一个正斜杠后面的字符串

超神 array_pop($t = explode('/', $url));

OutShine end(explode('/', $url));

超神 url.split('/').pop();

(Littlehz) 服务器的小经验

一般是把mysql独立出去,nginx再作为前端入口,中间用php-fpm还是apache mod_php都可以

[业务疑惑](猎人) vue该怎么融入一个程序好呢,深层融入的那种

[解答] (安正超) 使用组件化,webpack + vue-loader,把项目页面的模块全拆分成组件,web component 这样的玩法

[业务疑惑] (程序鼠) 内容型网站 适合用vue.js  react  angularjs吗?感觉 对于seo 支持太差. 

[解答] (安正超) 1.当访客为 robot的时候,用无样式的纯文本网页给它。

angularJS 有专门的插件 似乎只能支持google

还有一个解决方案用phantomjs,定期抓取网页生成静态站点,这样就不用你去写专门针对机器人的网站了.

google 能读 ajax(现在它们的蜘蛛是完全以 js 引擎渲染页面), 不用 angularjs 也没问题。国内就必须服务端渲染了,或者像超神说的纯文本。

定期抓取增加复杂程度阿,还要维护那么个东西。以我的个性,就是服务端渲染。 现在 js 扯的比较火爆,但是 php 程序员如果用一个库的话, 必须考虑的是如果客户端禁用 js, 你的网页打开,用户能不能看到内容。

2.要做些手腳才能更好支持SEO,server-side-render之類的

[业务疑问] (程序鼠)php的多线程是不是不可以共享对象

[解答] (Littlehz) 线程没怎么用过,php的zts太弱,不要用。

进程也可以共享,如果php cli fork了子进程,在父进程fork子进程之前,创建的内存区域,都是可以被子进程读写的.

[话题探讨] (安正超) 

超神的socialite组件,session state 的验证,会有偶发性的失败.我尝试了N次去定位问题,但是由于很难复现.可能是微信浏览器偶尔的 cookie 里的 sessionid 的问题,state 类似 scrf, redirect 前种到 session 里,callback 回来时验证来源可靠性的 .好多人理解state为用于额外参数传递的,OAuth 2 协议里的这个参数好多文档都略过了

(Littlehz) 如果是file session,不靠谱.或者你能不能强制配置成 加密cookie 做的session呢,按微信的文档是说要验证state

(安正超)其实有想过浅验证,就是说只验证来源可靠,但不验证是不是刚刚redirect的那个,不验证身份,用 php 的内置的那个密码生成算法.配置一个 key + salt 来生成state,不用写入 session

(Littlehz) 总之file session是各种不靠谱,用户量多一点就性能下降很大,并发量大一点文件还会锁卡住其他php-fpm进程,也保不准file session还会出其他问题。

(安正超)回调的时候我只需要验证该 state 是否是我加密的就好了,对的,就是 file session 状态下出的问题,就是 加密cookie 做的session

[业务疑惑](猎人) vue里的方法里通常会先这样:var vm = this; 这样的目的是什么?

[解答](Tomoe)怕因為scope不同this指向改變

[业务疑问] (程序鼠) 像gulp webpack这种 是不是再学之前需要先学习下node.js?

[解答](安正超) javascript的花样玩法,了解js的amd/cmd 写法,es6

[业务疑问] (程序鼠) laravel同一域名如何共享session

[解答] (HavenShen)用根domain,统一appkey 可搞定

[业务疑问] (bachelor.向浩) 使用过laravelFly吗?是关于swoole和laravel的结合

[解答] (Littlehz) swoole毕竟是改变php生命周期的东西,不是无损的,谨慎使用,使用了acabin/laravoole.

2016-04-26 Laravist群友杂谈 --- 没什么特别标题_第1张图片

最后一种,无nginx是不现实的。所以基本上考虑 laravoole 的 SwooleFastCGI 模式,放在nginx后面。file session各种坑,redis session和 加密cookie session都可以。swoole http 不支持文件上传。也没仔细测试FastCGI模式能不能上传文件.可以架构一个RESTful对外提供服务,几乎也没有文件上传,session也没有,用OAuth2,任何全局变量都不能有,任何dd、exit、die都不能有

[业务疑问] (bachelor.向浩) 开发的时候避免swoole,测试环境开启swoole这种方案靠谱不?

[解答] (Littlehz) 不靠谱,开发swoole和开发php是两种不同的概念,默念一百次生命周期不一样.

[业务疑问] (猎人) vue 只有网页第一次加载时才会触发生周期,当我点击按钮改list,引起dom改变时,不会触发


2016-04-26 Laravist群友杂谈 --- 没什么特别标题_第2张图片

[经验分享] (Littlehz) 代码发布逻辑

如果你一个一个上传文件,担心所有文件没上传完,就有用户访问到了,那自然会500。而如果比发布的时候,通过tar打包,一次性tar解压。或者webroot是软链,所有文件发布完成后改软链。再更新opcache,就不会出错.只用保证一点,升级、代码发布的效果是在一瞬间完成就不会有问题。在这个时刻之前,全部访问的是老代码,过了这一时刻,全部是新代码生效.

你可能感兴趣的:(2016-04-26 Laravist群友杂谈 --- 没什么特别标题)