看板 Soft_Job 關於我們 聯絡資訊
回答最後 後端要想辦法切入這一塊 不一定, 不入這塊還是很好找工作薪資也 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 萬 : 想在這邊請益各位是不是後端要想辦法切入這一塊,是的話該怎麼切入 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.80.109 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1515563281.A.889.html
lmr3796: 推這篇,但偷偷挑個錯字,應該是thrashing不是threshing 01/10 16:41
我只記得讀音 XDD
chan15: 粗俗的問一下大大,對程式、伺服器、DB、機器、各種解決 01/10 16:50
chan15: 方案都要很熟,這樣的人職稱該叫什麼,合理薪資應該是多少 01/10 16:50
可以叫萬用打雜工 資深全端 或者架構師 實際上是什麼 不只看自己 也看同事 如果在沒制度的小公司 同事很多菜菜der 那就會是到處補洞救火的萬用打雜工 如果在精實的小公司 同事都獨當一面 人人一條龍 那就是資深全端 架構師當然就是在有制度的大公司做大案子 底下有一票各方專員配合 薪資說真的看公司 首先公司要賺錢 然後願意分 跟能力的相關性不是那麼高 做一樣的事在抬雞店 (...色色der?) 跟小接案公司薪水不會一樣
GALINE: 有個潮名叫 devops.... 01/10 18:14
chan15: 就我所知,devops 定義到現在都還沒蓋棺論定,跟前端到底 01/10 18:26
chan15: 要到什麼程度才能叫前端一樣.. 01/10 18:26
GALINE: 我覺得這就跟「什麼都要會一點是要多大一點」一樣意思 01/10 18:37
GALINE: 每間公司或每個人的想法都不一樣的啦... 01/10 18:38
GALINE: 是能統計個業界現況,但報告滿貴的,我自己沒看過... 01/10 18:39
GALINE: 反過來說,對devops的新潮想像跟對資深全端的長久想像 01/10 18:43
GALINE: 「我覺得」是同一件事,雖然比例配重各公司不太一樣 01/10 18:44
要說情況類似的話好像蠻多的 比方怎樣才算 特級廚師 之類的 就是對 食材 鍋鏟 火候 爐 擺盤 各種料理技法都要很熟 知道它們的特性跟優缺點, 再配合要做的菜式及顧客喜好, 做出最適當的成品 好像蠻類似der XDD
apage: DevOps 的定義是Programmer 去做運維 01/10 20:03
wildli0422: 好文推推 01/10 20:19
補充一下加機器的人難以處理的情形 比方記憶空洞化造成狂 OOM 引致的 CPU 上升/Crash, 光看機器數值記憶體是夠用的 (只是碎碎的 連續的區塊很小) 就 CPU 不夠, 所以解法是加 CPU -> 當然沒用 或者像 NodeJS 天生單執行序, 在多核環境無法有效利用多顆 CPU, 那要解決速度問題的第一步其實是先判定各個部份的工作量, 將能獨立的部份均勻分拆出去獨立執行 性能立刻提升 N 倍 (N = CPU 數) 即使沒有遇到百萬負載, 在一般般的情況下, 這也代表機器費用可以大幅減少, 幅度大小看原本做得多囧而定, 減個 50%~90% 都是很有可能的
jjwei: push 01/11 08:34
想想這說來蠻單純的, 就兩件事, 你知道有什麼東西可以用 以及 對它們夠了解 知道的越多、了解的越徹底, 就有機會用得越好, 就醬 @@ ※ 編輯: lovdkkkk (118.163.80.109), 01/11/2018 16:12:34
es8603: 推推 01/12 14:21
xdraculax: 推 01/17 09:33
jyhfang: 感謝分享 01/20 01:20