我觉得你对 C10K 可能有误解
以你文中的例子来说:
"据上个月vpon座谈 如果我没记错 最复杂的子系统 qps约6000~7000左右吧?"
这并不代表他们的系统没有达到 C10K 标准
C10K 的背后意义是什么 ?
我的理解是硬件跟架构要恰当, 在合理的硬件条件下, Concurrent 数量要合理
并且随着 clients 数量提升越来越高, 系统的资源花费不会离 Linear 差太远
这跟后端背后的应用相当有关系, 我认真觉得后端一定要学好 C / C++
以及 Linux Kernel 背后一些重要参数的意义
后端要碰的坑可多了, 例如一个不太懂 Linux 的人, 即使写出可以跑的程式
他可能也会在 scale 越来越大的时候碰到 ulimit 内的限制问题而不自知
然后就出包了, 还是在半夜出包, 等著收一堆客户抱怨信
资深的因为踩过一堆坑, 就能在系统开发初期就预料到可能会碰上哪些问题
这些都是经验累积而来的, 后端要做到很好难度确实比前端高不少, 要踩的坑太多
还没踩到只是你还没碰到而已 (也很可能跟际遇有关, 没有合适的环境跟应用去踩坑)
就算想做前端, 最好也是要稍微摸一下后端, 不然后端对你来说只是黑盒子
身为一位 RD, 应该勇于解开所有黑盒子, 了解透彻, 减少自己未知的领域
※ 引述《stillboy (joey)》之铭言:
: 我自己full stack 对两端都有粗浅的了解
: 但
: 看到这么多前端的hater就觉得无奈QQ
: 你不懂前端 你要说啊! bro
: 客观来说好了 台湾的后端??
: 除了几家走出国际的大数据公司 or 本来就是国际大公司
: 有多少公司的后端达到C10K的等级? (新手不知道的 请自行Google)
: 据上个月vpon座谈 如果我没记错 最复杂的子系统 qps约6000~7000左右吧?
: 如果连C10K都没有的话 这种规模和复杂度就不要拿出来嘴惹
: 如果是大陆的一二线软件公司的后端 C100K C1000K都有
: 这种后端 我举双脚和双手赞成 如果是台湾的
: 台湾 除了少数的公司 其他去了 就算年资10年 最后还是领低薪
: 解决问题的scale就在那里 ..你解决问题的等级多高 薪水就多高
: 领底薪也是合情合理
: 然后
: 顺便厘清一下
: 真正的前端 跟 美术
: 一 点 关 系 都 没 有
: 说有关系的 大概还停留在dreamweaver 和 fontpage的时代吧
: 或 所待个公司和产业 太过老旧.
: 在现代
: 美术和体验的职位 叫做‘UI/UX’ 看公司大小 有些公司例如Google
: 会再细分 叫做 UX researcher 这种相关职等的人 会跟工程的人有许多讨论。
: 前端在近10年来因为硬件日新月异 导致client端能做的事情变爆干多
: 原本的架构是后端处理所有的事情 client端收到资料 显示出来
: but 现在可能一个页面有几百个api的需求 加上行动装置的出现
: 导致原本back-end request数量变超级大
: 比较烂的解法当然就是直接买更多机器 但成本会变很高
: 所以 有人想 既然前端硬件效能变好 那为啥不好好利用前端?
: 所以前后端分离出现了 也就是所谓的SPA 之后为了改善SEO and initial loading slow
: 的问题 又走到了 进阶版的server-side rendering 但是 based on SPA.
: 走到这个SPA level之后 前端有自己的server 后端也有自己的server
: 因为这样的配置 导致后端的工作量大为减少 而把这些工作量丢给client端
: 从而后端可以handle更多的工作量
: 所以为啥会看到 有些前端职位的需求要会redis node.js nginx
: but 这只适用于不需要太复杂的情况 复杂一点的情况的client server
: 还是需要考群以及分布式的需求 这样的话 可能还是会由后端来处理。
: 而此时的前端基本上就变成应用程式软件一样
: 需要什么资料跟后端要 要回来自己处理
: 同时也要效能 安全性 兼容性 design pattern 也是不容忽视的一环
: 所以说 为啥前端有些你看征才文 薪水不比后端差
: 就是因为前端 早就不是以前的前端了
: 最后总结一下
: 走到极端的后端 VS 极端的前端
: 论复杂度 毫无疑问 后端屌打前端
: 但前提是 产品的scale要很大 (例如server的数量及至少至少要 > 50)
: 且 有很多real-time和巨量的数据的issues需要处理
: 这种架构以上都是分布式或微服务 跨区以上的等级
: 需要处理很多race condition/一致性/...等 复杂的问题
: 而一堆公司的后端常常会包含DBA 那就更复杂
: 如何取舍该功能是使用sql or nosql 并且对sql or nodql底层原理有通盘的了解
: 但台湾走到这种scale的软件公司 屈指可数
: 所以如果要在台湾工作的话 选自己爽的比较重要
: 什么叫做自己爽? 有些人天生喜欢面对client 喜欢面对画面
: 有些人喜欢always面对程式码 有些人喜欢自己写一些web or app应用来玩
: 只要你在任何一端强的话 薪水早就不会是什么大问题了
: 当然普遍来说 后端天花板会比较高
: 最后 不建议新手 走什么full-stack拉
: full-stack 要顾 前后端 devops 然后五年后 全部都半桶水(半桶水其实是很高估)
: 很多事情欲速则不达 full-stack代表你要做的事情就是爆干多
: 根本没时间反刍 根本没时间好好理解原理 基础根基根本就不稳
: 比较好的path是你先走任何一端5~7年以上 再走任外一端5~7年以上
: 先把一端的基础好好打好 念熟 到讲一堆观念 就像吃饭喝水一样的解释给旁人听
: 当然一个最重要的前提是 你们公司做的产品是很有挑战性的
: 所谓有挑战性就是 后端至少朝C10K 甚至C100K走
: 前端 朝做tool走 而不是一直在那边单纯无脑刻画面
: 而不是 product的 level一直在 0~1 1~10打转
: 在这种有挑战的公司各呆至少五年 我想 应该可以自称 junior full-stack惹
: 看到一堆人 写没几年 react+node.js+mongoDB就自称full-stack
: 问他为什么是node.js 为什么mongoDB 也说不出个所以然
: 也是没错 大概是产品scale < 100 简单应用的 full-stack . 也没啥问题!
: 好拉 讲太多惹 大概是这样