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