Re: [請益] 現在的 PHP 後端工程師到底要會什麼

作者: lovdkkkk (dk)   2018-01-10 13:47:57
回答最後
後端要想辦法切入這一塊
不一定, 不入這塊還是很好找工作薪資也 ok 的話,
沒有非入不可的理由 :p
是的話該怎麼切入
基本上可以估狗 "XXX performance tips" 找到很多不錯的文,
ex https://www.keycdn.com/blog/php-performance/
這算是一個開始
然後是測測測測測...文內寫的不一定合你的環境,
要自行實測, 如果測出來不如預期, 再繼續深入追
如果基本 OS 計組不熟的話, 也需要補一下,
例如 "該進 cache 的進 cache" 基本上是沒錯啦,
但要是那資料量夠大塞滿 RAM 造成 Thrashing
反而用 cache 會成為掛點的原因
那不用 cache 要怎麼辦呢?
如果有夠強悍的 DB cluster 就查完塞瀏覽器的 localStorage
其實現在 DB 自己也會做 cache, 不一定非程式這一層做
然後繼續講 cache, 只是單純的放資料進去的話,
拿進拿出一陣子後記憶體可能會碎片化
ref https://stackoverflow.com/questions/3770457/
這也是程式層能使上力的地方,
可以設法規劃會寫入記憶體的物件體積, 讓它們盡量不要差太大
或者定期清掉重新讀取等等
而假如一開始會慢就是因為塞太多東西進 cache,
CPU 跟 DB 其實很涼爽的話,
那拿掉 cache 說不定就好了咧
其它還有很多, 再舉一個伺服器設定的例子,
假設你的應用是每一個人需要用到大量的記憶體,
但是處理速度很快, 而要求的頻率不會很高,
那伺服器就比較適合設定成
將同時 request 數設小 (如 30) 然後排隊設大 (如 2000)
以避免因搶記憶體造成 Thrashing
而若每個人只用一點點記憶體 但需要等某個有點慢的遠程服務
那就適合讓所有人一起進來等
總之大概就是要對程式、伺服器、DB、機器、各種解決方案都要很熟,
知道它們的功能跟極限, 再配合實際應用的需要,
設法在各方面取得一個平衡
面你的人說的沒錯, 加機器是一回事, 但加機器的人畢竟對應用內容不熟,
還是實際實做的人最清楚需要的是什麼,
是更大的 RAM? 更快更多顆的 CPU? 更高的流量? etc etc
Da guy joe see john
※ 引述《chan15 (ChaN)》之銘言:
: 各位好,自我介紹一下,我寫 PHP 大概七八年了,coding 部份有按照 psr
: SOLID 設計模式,用 composer 管理套件,git 大部分常用的都會用
: 框架的話 Codeigniter、Laravel 都算熟,會寫測試
: JavaScript、jQuery 都還可以,會自己寫 plugin 來用
: js 寫到 es6 用 webpack + babel 編譯,玩過一下 vue.js
: 寫過商城、金流、彩票遊戲
: 加分部份
: 1. 會寫一些 shell script,Linux 部份 ubuntu centos 基本指令都可以
: 有玩 vagrant 跟 docker
: 2. MySQL 基本指令,設定權限、CRUD 那些沒問題,當然一些複雜的 join 也寫過
: 但那種東西基本上應該要透過資料表設計排除
: 3. 會寫一點 node.js 用過 express 架過 api server
: 4. 會寫一點 python 用過 flask 架過 api server
: 大致上重點履歷說明如上,當然履歷上會放作品等更細的內容
: 我要說的是,一般徵所謂的徵 PHPer 的主管應該大致知道底限或者是極限在那才是
: 但從去年到現在,有去聊天面試的部份公司,精確的話來說八間裡面有三間有問到類似的問題
: 讓我有點無所適從,不過也懷疑是不是真的必須去加強這塊,所以上來請益
: 他們問的問題是,要怎麼開發網頁可以承擔百萬人同時在線,或每秒百萬的寫入
: 我的回答是,我沒有過這樣的經驗,我待過得公司有超過萬人規模的這種東西都是分開處理的
: 有 SI 會做規劃,PHPer 確保程式不會造成延宕或出錯,該進 cache 的進 cache
: 一般來說 op 那邊會透過硬體跟系統的架設去消化這件事,具體高流量每秒寫入資料庫的規劃我們根本碰不到
: 就連我去問公司負責金流後端開發的答案也差不多,用機器、用集群、用緩存去檔
: 但面試者會說在 PHP 這邊也會有相對應的方式,硬體也有辦不到的事
: 上一個面試者還說 MySQL 一秒只支援幾百筆寫入,所以你們要想辦法
: 這幾間公司的共通點就是,新創、c2c、都說自己是大數據,薪水大概落在 5-6 萬
: 想在這邊請益各位是不是後端要想辦法切入這一塊,是的話該怎麼切入
作者: lmr3796 (Toro)   2018-01-10 16:41:00
推這篇,但偷偷挑個錯字,應該是thrashing不是threshing
作者: chan15 (ChaN)   2018-01-10 16:50:00
粗俗的問一下大大,對程式、伺服器、DB、機器、各種解決方案都要很熟,這樣的人職稱該叫什麼,合理薪資應該是多少
作者: GALINE (天真可愛CQD)   2018-01-10 18:14:00
有個潮名叫 devops....
作者: chan15 (ChaN)   2018-01-10 18:26:00
就我所知,devops 定義到現在都還沒蓋棺論定,跟前端到底要到什麼程度才能叫前端一樣..
作者: GALINE (天真可愛CQD)   2018-01-10 18:37:00
我覺得這就跟「什麼都要會一點是要多大一點」一樣意思每間公司或每個人的想法都不一樣的啦...是能統計個業界現況,但報告滿貴的,我自己沒看過...反過來說,對devops的新潮想像跟對資深全端的長久想像「我覺得」是同一件事,雖然比例配重各公司不太一樣
作者: apage (#_^)   2018-01-10 20:03:00
DevOps 的定義是Programmer 去做運維
作者: wildli0422 (wild)   2018-01-10 20:19:00
好文推推
作者: jjwei ( <囧> )   2018-01-11 08:34:00
push
作者: es8603 (緋色之翼)   2018-01-12 14:21:00
推推
作者: xdraculax (首席怪叔叔)   2018-01-17 09:33:00
作者: jyhfang   2018-01-20 01:20:00
感謝分享

Links booklink

Contact Us: admin [ a t ] ucptt.com