簡要記錄了 04-21到04-26的聊天記錄
[福利分享] Many many
超神 ?簡單 CSS 框架
Starriv 洋蔥驗證
http://php.net/manual/en/closure.bindto.php
Littlehz?鑒別BGP的方法
JellyBool vue分頁
https://github.com/andersao/l5-repository
超神:很炫酷
Abraham:http://flarum.org/
http://labs.infyom.com/laravelgenerator/
教主 理解依賴注入
獵人親身親測專治各種curl不服
幾個關(guān)于圖片的小玩意http://lorempixel.com/? ??http://temp.im/? ?http://placehold.it/
Judd 又一個markdown
統(tǒng)計代碼數(shù) ?https://wakatime.com/
Judd 頭像生成器
[業(yè)務疑問]希望新項目要和舊項目共享session等東東赶促,舊項目難以擴展山憨,重構(gòu)又太花時間
[解答]可利用sso單點登錄,RPC是指遠程過程調(diào)用枚赡,也就是說兩臺服務器A狰腌,B,一個應用部署在A服務器上,想要調(diào)用B服務器上應用提供的函數(shù)/方法,由于不在一個內(nèi)存空間,不能直接調(diào)用醉者,需要通過網(wǎng)絡(luò)來表達調(diào)用的語義和傳達調(diào)用的數(shù)據(jù)。
[經(jīng)驗分享] (超神) 處理問題的方式
提問要帶上下文:
1. 我想做什么披诗,我嘗試怎么去做了撬即,我的環(huán)境是這樣的。呈队。剥槐。
2. 但是出了這樣的錯,這個錯誤的明細如圖
3. 我嘗試從日志去查找問題宪摧,并且確認我翻閱了該章節(jié)相關(guān)的文檔沒找到答案
比如像微信問答錯誤解析
1. 你得獲取到哪個微信號(openid)發(fā)了什么粒竖,上一條是什么
2. 對上下文進行分析,取得對應的反饋信息并返回
上面兩句包括了以下四點:
1. 微信用戶唯一ID
2. 存儲微信用戶發(fā)送的信息以便于搜索
3. 如何獲取他上一次發(fā)的消息
4. 如何做上下文分析
[經(jīng)驗分享] (超神) 如何接觸一個新東西
接觸一個新東西的時候最好把它的文檔全都讀一遍几于,知道它的結(jié)構(gòu)蕊苗,知道它能干嘛不能干嘛.總想著,我寫這個功能的時候才去看吧沿彭,你就會發(fā)現(xiàn)朽砰,你很難推進的項目.像我搞一個自己不熟悉的東西的時候我就會花時間把文檔大概讀一遍
[經(jīng)驗分享] (超神) 命名
函數(shù)/方法:動名; ?變量:名詞,或者形容詞+名詞,或者名詞+副詞
[業(yè)務疑問]? 怎樣獲得URL中最后一個正斜杠后面的字符串
超神?array_pop($t = explode('/', $url));
OutShine?end(explode('/', $url));
超神?url.split('/').pop();
(Littlehz) 服務器的小經(jīng)驗
一般是把mysql獨立出去瞧柔,nginx再作為前端入口,中間用php-fpm還是apache?mod_php都可以
[業(yè)務疑惑](獵人) vue該怎么融入一個程序好呢漆弄,深層融入的那種
[解答] (安正超) 使用組件化,webpack + vue-loader,把項目頁面的模塊全拆分成組件造锅,web component 這樣的玩法
[業(yè)務疑惑] (程序鼠) 內(nèi)容型網(wǎng)站 適合用vue.js? react? angularjs嗎撼唾?感覺 對于seo 支持太差.?
[解答] (安正超) 1.當訪客為 robot的時候,用無樣式的純文本網(wǎng)頁給它哥蔚。
angularJS 有專門的插件 似乎只能支持google
還有一個解決方案用phantomjs,定期抓取網(wǎng)頁生成靜態(tài)站點,這樣就不用你去寫專門針對機器人的網(wǎng)站了.
google 能讀 ajax(現(xiàn)在它們的蜘蛛是完全以 js 引擎渲染頁面)倒谷, 不用 angularjs 也沒問題。國內(nèi)就必須服務端渲染了糙箍,或者像超神說的純文本恨锚。
定期抓取增加復雜程度阿,還要維護那么個東西倍靡。以我的個性,就是服務端渲染课舍。 現(xiàn)在 js 扯的比較火爆塌西,但是 php 程序員如果用一個庫的話, 必須考慮的是如果客戶端禁用 js筝尾, 你的網(wǎng)頁打開捡需,用戶能不能看到內(nèi)容。
2.要做些手腳才能更好支持SEO筹淫,server-side-render之類的
[業(yè)務疑問] (程序鼠)php的多線程是不是不可以共享對象
[解答] (Littlehz) 線程沒怎么用過站辉,php的zts太弱,不要用损姜。
進程也可以共享饰剥,如果php cli fork了子進程,在父進程fork子進程之前摧阅,創(chuàng)建的內(nèi)存區(qū)域汰蓉,都是可以被子進程讀寫的.
[話題探討] (安正超)?
超神的socialite組件,session state 的驗證,會有偶發(fā)性的失敗.我嘗試了N次去定位問題棒卷,但是由于很難復現(xiàn).可能是微信瀏覽器偶爾的 cookie 里的 sessionid 的問題,state 類似 scrf, redirect 前種到 session 里顾孽,callback 回來時驗證來源可靠性的 .好多人理解state為用于額外參數(shù)傳遞的,OAuth 2 協(xié)議里的這個參數(shù)好多文檔都略過了
(Littlehz)?如果是file session,不靠譜.或者你能不能強制配置成 加密cookie 做的session呢,按微信的文檔是說要驗證state
(安正超)其實有想過淺驗證,就是說只驗證來源可靠比规,但不驗證是不是剛剛redirect的那個,不驗證身份,用 php 的內(nèi)置的那個密碼生成算法.配置一個 key + salt 來生成state,不用寫入 session
(Littlehz)?總之file session是各種不靠譜若厚,用戶量多一點就性能下降很大,并發(fā)量大一點文件還會鎖卡住其他php-fpm進程蜒什,也保不準file session還會出其他問題测秸。
(安正超)回調(diào)的時候我只需要驗證該 state 是否是我加密的就好了,對的,就是 file session 狀態(tài)下出的問題,就是 加密cookie 做的session
[業(yè)務疑惑](獵人) vue里的方法里通常會先這樣:var vm = this; 這樣的目的是什么?
[解答](Tomoe)怕因為scope不同this指向改變
[業(yè)務疑問] (程序鼠)?像gulp webpack這種 是不是再學之前需要先學習下node.js乞封?
[解答](安正超) javascript的花樣玩法,了解js的amd/cmd 寫法,es6
[業(yè)務疑問]?(程序鼠) laravel同一域名如何共享session
[解答] (HavenShen)用根domain做裙,統(tǒng)一appkey 可搞定
[業(yè)務疑問] (bachelor.向浩) 使用過laravelFly嗎?是關(guān)于swoole和laravel的結(jié)合
[解答] (Littlehz)?swoole畢竟是改變php生命周期的東西肃晚,不是無損的锚贱,謹慎使用,使用了acabin/laravoole.
最后一種,無nginx是不現(xiàn)實的关串。所以基本上考慮 laravoole 的 SwooleFastCGI 模式拧廊,放在nginx后面。file session各種坑晋修,redis session和 加密cookie session都可以吧碾。swoole http 不支持文件上傳。也沒仔細測試FastCGI模式能不能上傳文件.可以架構(gòu)一個RESTful對外提供服務墓卦,幾乎也沒有文件上傳倦春,session也沒有,用OAuth2落剪,任何全局變量都不能有睁本,任何dd、exit忠怖、die都不能有
[業(yè)務疑問] (bachelor.向浩) 開發(fā)的時候避免swoole呢堰,測試環(huán)境開啟swoole這種方案靠譜不?
[解答] (Littlehz)?不靠譜凡泣,開發(fā)swoole和開發(fā)php是兩種不同的概念枉疼,默念一百次生命周期不一樣.
[業(yè)務疑問] (獵人) vue 只有網(wǎng)頁第一次加載時才會觸發(fā)生周期,當我點擊按鈕改list鞋拟,引起dom改變時骂维,不會觸發(fā)
[經(jīng)驗分享] (Littlehz) 代碼發(fā)布邏輯
如果你一個一個上傳文件,擔心所有文件沒上傳完贺纲,就有用戶訪問到了席舍,那自然會500。而如果比發(fā)布的時候哮笆,通過tar打包来颤,一次性tar解壓〕碇猓或者webroot是軟鏈福铅,所有文件發(fā)布完成后改軟鏈。再更新opcache,就不會出錯.只用保證一點项阴,升級滑黔、代碼發(fā)布的效果是在一瞬間完成就不會有問題笆包。在這個時刻之前,全部訪問的是老代碼略荡,過了這一時刻庵佣,全部是新代碼生效.