V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
majianglin
V2EX  ›  程序员

刚面了一个 6 年的前端,页面有 10 张图片每个 1MB, 2000 个用户同时访问需要多大带宽

  •  2
     
  •   majianglin · 2022-07-08 11:31:24 +08:00 · 17331 次点击
    这是一个创建于 862 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这个题超纲了吗?人家直接怼我,我只是个前端,服务器的事情我不管

    本来是想问他 CDN 的问题,他说原来方案选择了 CDN ,后来因为成本太高就用自己的服务器了,就引出了这个问题

    174 条回复    2022-07-13 18:10:08 +08:00
    1  2  
    GreatAuk
        101
    GreatAuk  
       2022-07-08 16:27:12 +08:00
    没水平的问题
    frozenway
        102
    frozenway  
       2022-07-08 16:31:00 +08:00   ❤️ 6
    确实不应该问这后端问题,我上家公司主管招前端就是面试大部分偏向后端和服务器的,结果招到了个前端不怎么行后端有点水平的,后来那个前端做不了前端他就再招了个会前端的,然后他转后端了,然后把做后端的我给辞了。真是瞎折腾
    jrtzxh020
        103
    jrtzxh020  
       2022-07-08 16:32:06 +08:00
    作为前端,你问什么解决方案,我肯定会有 cdn 的答案。但是你这问题扯得太抽象了吧,根本没有重点!写代码都够抽象了,面试还需要将问题抽象?人何必难为人呢!
    libook
        104
    libook  
       2022-07-08 16:40:25 +08:00
    理论上来说,在这个问题上前端职责应该只关注用户体验,也就是说假设服务可用(包括带宽足够)的话,页面上的图片展示给用户的方式是否让用户觉得体验好,这个可能会涉及到前端渲染性能,如果是移动端的话也会涉及到弱网环境和流量消耗情况。

    如果图片是由后端提供的,那么前端就得给后端提出可用性的要求,再涉及到运维运维层面的,就由后端提要求给运维;如果图片是由中间件、CDN 、OSS 等提供的,那么前端就得给运维提出可用性的要求。

    由此我个人认为算出最小带宽需求( 10x2000x8 ),以及提供一些用户体验优化的方案(图片压缩、加载动画、懒加载等)就应该算合格了;还要拓展到系统架构上,可能就得看所招聘的职位是不是还有全栈开发或架构涉及职责,因为这部分通常需要进行技术选型和成本、风险评估,一线开发人员通常不会承担这种职责,能很好承担这种职责的也一般会贵一些。

    还是需要看题主招聘的职位画像是什么,以及这道题希望考察候选人的哪方面是否符合职位画像要求。
    wangritian
        105
    wangritian  
       2022-07-08 16:41:58 +08:00   ❤️ 1
    有一说一,不可能一点运维知识都不懂,哪怕从前端角度讲讲怎么优化,怎么延迟加载之类的,也是加分,直接回怼,这种性格很难和其他人配合,我一般不要
    pepesii
        106
    pepesii  
       2022-07-08 16:48:27 +08:00
    你的目的是想考察对方的啥能力呢?
    OnionJuice
        107
    OnionJuice  
       2022-07-08 16:49:44 +08:00
    听到这种问题,就知道这家公司的技术领导水平不怎么样,你熟背 Nginx 各项配置了吗?是考了 CCIE 还是 HCIE ?如果没有的话好意思聊 CDN ?
    yinzhili
        108
    yinzhili  
       2022-07-08 16:51:04 +08:00
    超纲了。假如我是一个厨子,我还要考虑蔬菜用啥样的卡车运输吗?
    pieerepeng
        109
    pieerepeng  
       2022-07-08 16:54:16 +08:00
    从回答里,可以看出比这个问题本身更多的问题
    darknoll
        110
    darknoll  
       2022-07-08 16:58:05 +08:00
    要几秒钟下载完,用的 http1 还是 http2
    unco020511
        111
    unco020511  
       2022-07-08 17:02:52 +08:00
    可是这个确实和前端没啥关系啊
    chenmobuys
        112
    chenmobuys  
       2022-07-08 17:04:19 +08:00
    确实跟前端关系不大
    nuk
        113
    nuk  
       2022-07-08 17:04:34 +08:00   ❤️ 1
    多大带宽,这不得看用户的带宽吗
    2000 个 1kb 的用户同时访问也就需要 2M 的速度
    dorothyREN
        114
    dorothyREN  
       2022-07-08 17:05:20 +08:00
    @fisherwei #2 真巧,这里还能碰到一样的背锅侠
    really28
        115
    really28  
       2022-07-08 17:33:58 +08:00
    这种问题,不被怼就奇怪了。举个例子:面试后端岗位,哪怕是十年的后端:你问他一个管理后台,5 个大模块,每个模块下面有有 10 个左右的页面,请问整个项目需要设计多少个 components 和 router path ?
    lujiaosama
        116
    lujiaosama  
       2022-07-08 17:35:17 +08:00
    等一等, 要满足同等级别的流量, 服务器带宽难道不比 cdn 贵? 是我搞错了吗.
    jojobo
        117
    jojobo  
       2022-07-08 17:42:17 +08:00
    属实和前端没有关系,俺也是 6 年前端,也不知道
    lycpang
        118
    lycpang  
       2022-07-08 18:03:18 +08:00
    是正常的难题你不会问?

    还是你觉得问这种稀奇古怪的点能体现你的与众不同?

    跨行业问问题真的就贼有优越感吗?
    lxyer1
        119
    lxyer1  
       2022-07-08 18:28:11 +08:00
    这问题就有问题,over
    encro
        120
    encro  
       2022-07-08 18:28:39 +08:00
    如果我是前端,

    我会回答:“使用懒加载,缩略图,1M 不是小图片,没必要一开始就现实出来,公司带宽不要钱啊”。

    然后心里想:“什么 SB 问题,这公司也就这样了!”
    encro
        121
    encro  
       2022-07-08 18:34:03 +08:00
    原来作者是老板,
    啥都不懂,难怪问这种问题了,
    如果没有靠谱的朋友,还是不要搞这行了吧,
    劝退。
    Envov
        122
    Envov  
       2022-07-08 18:45:19 +08:00
    这题不是很简单,带宽描述的是速率,图片是存储大小,之间的换算不查一下还真记不起来,这里面既有 1000 的换算还有 1024 的
    wonderfulcxm
        123
    wonderfulcxm  
       2022-07-08 18:46:53 +08:00 via iPhone
    胡闹
    DeutschXP
        124
    DeutschXP  
       2022-07-08 19:17:19 +08:00 via iPhone   ❤️ 2
    这就是楼主的错误了。你这个问题去问苹果 Google 之类大厂的前端,能问到答案,因为你想要个工程师,能发现问题分析问题解决问题的。那些前端确实能,人家还能创造一个又一个框架呢。
    但你别被现在的宣传唬住了,你从回答也能看出来,好多前端本质还是切图仔,搬砖的并没变成工程师。他们只会用工具,用框架。
    一个大厨(工程师)在煤气炉换成电磁炉之后,会想办法调整烹饪方法,尽量保证出品的质量。一个偷看了大厨几天做菜的就只会叫唤:缺乏工具,这道菜没法做了。
    再回到正题,例如上面有人的回复,我不是说所有,而是说许多前端,他们会使用,但永远也不会创造出下一个“懒加载”技术,因为他们不会真的写代码。
    他们也会模仿,但不会创作出下一个流畅的苹果的产品动画页面,因为他们不懂技术,就不知道美学 /设计如何同现有的硬件软件技术兼顾,他们会坚持认为这些不属于前端的事。
    当然,最后还要灵魂拷问楼主,你想要找一个那样的前端工程师,你给得起那么多工资么……
    stkstkss
        125
    stkstkss  
       2022-07-08 19:22:16 +08:00
    作为前端 你连问题都不会问
    DeWjjj
        126
    DeWjjj  
       2022-07-08 19:56:35 +08:00
    我目前用的答案是依据 cdn 的数量*1.5 ,能标准让 CDN 吃满的带宽即使有的时候有一些奇葩 ip 也能吃满。
    qiuai
        127
    qiuai  
       2022-07-08 20:03:56 +08:00
    这个比较适合运维把?
    aliveyang
        128
    aliveyang  
       2022-07-08 21:30:45 +08:00
    你这个问题本身就是个问题,时间都没给,怎么给你算速率
    sl0000
        129
    sl0000  
       2022-07-08 21:40:34 +08:00
    带宽大于 0 就行吧,应该问需要费多少流量
    cctrv
        130
    cctrv  
       2022-07-08 22:02:06 +08:00 via iPhone
    1. 服務器只需要 1 2 3 4 5 mb 的帶寬?
    2. 可以使用 CDN 解決問題的,這種事情看錢份上也不會放在服務器。
    3. 根據公司的消費能力選擇服務器帶寬,5m 也沒問題,讓瀏覽器給你慢慢排隊加載(有 CDN 就快了)。覺得慢的人自己也會多次刷新。
    4. 真的要 1m 這麼大嗎?不允許壓縮嗎?我的話,必然壓縮一下,儲存成本和流量都是成本。
    5. 雖然你問題是這樣問,可是你真的想拿 1m * 10 * 2000 這種答案嗎?
    6. 他之所以 CDN 成本高,然後用服務器反而便宜,是因為服務器是按帶寬算,而 CDN 按流量算啊!這個可能是一個大流量低併發的需求。例如,app 更新 apk 這種,用 CDN 就沒那麼划算了。
    7. 上述答案並非來自前端⋯
    liprais
        131
    liprais  
       2022-07-08 22:20:15 +08:00 via iPhone
    "刚一看吓一条,还以为是我刚跑路的那个公司

    进去的时候老板说找你就是做重构的,过了 2 个月梳理顺畅了,老板完全没有重构的想法了,遂跑路"
    大半年前还跑路呢现在就创业了?
    metalman7511
        132
    metalman7511  
       2022-07-08 22:31:24 +08:00
    我虽然不懂前端,但是我想到当年我去面试一个互联网公司的客户支持岗位,不是技术支持类的,面试官来问了我一个奥数数学题,你应该就是这种人吧。
    rrfeng
        133
    rrfeng  
       2022-07-08 22:56:11 +08:00 via Android
    那你应该直接问页面图片很多加载很慢有什么办法
    流量很高如何节省成本
    joynvda
        134
    joynvda  
       2022-07-09 00:04:02 +08:00
    也想过前端懒加载的答案。

    再想深一层:假如是内网,无需 CDN 。来个简单粗暴的答案。
    HankAviator
        135
    HankAviator  
       2022-07-09 00:13:02 +08:00 via Android
    10Tbps
    这么大?
    我不是老板,只给个答案,不负责掏钱买带宽,哈
    camus
        136
    camus  
       2022-07-09 01:15:15 +08:00
    大概因为你问到了他的技术盲区,CDN 他知道这个名词,而并不知道这是干什么用的
    所以只能通过扣个”不是我的专业“给你,才能避免自己露怯

    v2 上都是有技术情怀的,看看前面各种讨论用户体验和各种前端技术,
    就应该明白,
    你所面试的”前端“和 v2 上的前端属于两个不同维度的定义。
    luckycat
        137
    luckycat  
       2022-07-09 01:51:59 +08:00
    前端六年应该没错,楼主大概是个刚通过实习期的不懂技术的 HR 。
    LancerComet
        138
    LancerComet  
       2022-07-09 01:59:46 +08:00
    这种只能以假设前提回答,比如反正对于传输 10MB 数据,如果没法考虑用户网速,那就可以大体视作每秒 10MB ,2000 个人理论撑满就再乘 2000 ;如果讨论网速那就可以耍无赖了,比如因为用户网速可以视作无底洞,所以如果我不谈客观条件限制,你的服务器某个毫秒之内网速峰值可能巨高无比
    如果讨论其他情况,面试官来定条件,然后针对讨论
    mhycy
        139
    mhycy  
       2022-07-09 02:19:52 +08:00
    这属于发散性问题,回怼确实不好,但建议在问的时候提示这是一道发散性问题
    原因在于 2000 人同时访问到底要多少带宽其实是和内容相关的
    本质上,这属于一道与业务结合的前端数据访问优化问题
    考要多少带宽只是给一个方向发散性思考罢了
    发散性问题本质也仅仅需要发现思考逻辑,而不是算出标准答案
    所以建议提示一下,不拐弯的就冒火了
    这是一道很能考验知识广度和思考深度的问题
    winterbells
        140
    winterbells  
       2022-07-09 08:03:00 +08:00 via Android
    有个后端面我安卓,问我十万个文件怎么样快速同步到下来。我问他什么需求要在手机上这么搞,他自己想了一会儿说当成后端了,然后就走人了。第二天那个公司通知我面试过了🌝
    wanacry
        141
    wanacry  
       2022-07-09 08:12:48 +08:00 via iPhone
    有带宽就能访问了
    yolyzhu
        142
    yolyzhu  
       2022-07-09 08:36:06 +08:00
    @bitmin 你完全不理解,答辩反正都是过,随便问。面试问这种问题就是面试官想怼人,只不过对面先下手为强了,这薄脸皮面试官还要上网找安慰。
    yolyzhu
        143
    yolyzhu  
       2022-07-09 08:38:30 +08:00
    @winterbells 我见过问类似问题的,我问他什么需求要这么搞,他说你别管,反正就是要……
    sidkang
        144
    sidkang  
       2022-07-09 09:42:30 +08:00   ❤️ 1
    问得好,下次别这么问了。
    既然是老板,那应该有个 CTO 吧,让她问吧。
    neptuno
        145
    neptuno  
       2022-07-09 10:01:53 +08:00 via iPhone
    十张图片可以用缩略图,oss 支持压缩,应该不需要那么多带宽。你应该问,这么多图片,加载会很慢,你觉得有什么优化思路吗。面试官如何问问题也是一种学问。
    pony279
        146
    pony279  
       2022-07-09 10:07:46 +08:00
    @zhixiao 意义就是成本

    大厂业务的 CDN 带宽成本可以是千万级,每个月上百万
    首先是你自己的用户数据数据和 CDN 流量要能对上,自己心里要有个数吧,万一对不上怎么办?
    其次,如果成本高了,得有优化措施,这也得心里有个数吧

    这个事情跟前端开发没有直接关系,但是跟公司利益有重大关系
    我觉得,愿不愿意了解这些“分外”的事情,决定了有没有更多的被重用的机会吧
    D2h0VL89HMAU417B
        147
    D2h0VL89HMAU417B  
       2022-07-09 10:44:41 +08:00
    @wangkun025 不懂就问,大佬这里为啥要乘以 8 ?
    dabaibai
        148
    dabaibai  
       2022-07-09 10:47:45 +08:00
    图片还要算压缩率吧。。。1M 的图片 不一定传输需要 1M
    leavic
        149
    leavic  
       2022-07-09 10:48:18 +08:00
    这跟前端有毛关系
    JustinDeng
        150
    JustinDeng  
       2022-07-09 11:01:13 +08:00
    @frozenway sorry 虽然有点同情 但还是不厚道的笑出声了
    Bijiabo
        151
    Bijiabo  
       2022-07-09 11:23:53 +08:00
    图片是静态的还是动态生成的?
    实际业务场景是怎么样的?
    为什么是 10 张图片?
    同时访问是什么意思,是每秒还是其他含义?
    在客户端中还是浏览器中?
    janus77
        152
    janus77  
       2022-07-09 12:03:10 +08:00
    如果面架构师的话这种问题确实可以回答一下,普通开发还是算了
    chengzi
        153
    chengzi  
       2022-07-09 12:05:18 +08:00
    现在网络都这么好了么, 页面都开始按 MB 计算了😅
    xiangyuecn
        154
    xiangyuecn  
       2022-07-09 12:17:54 +08:00
    这是一个没有答案的问题,就算是招运维,也能给出 108 种正确的答案(包括怼面试官也是正解)。

    本身就是玄学:你要用户用的爽,上 1TB 的带宽也可以,要用户骂街还不得不用,上 1MB 的带宽也不是不可以🐶🐶
    DOLLOR
        155
    DOLLOR  
       2022-07-09 12:21:41 +08:00
    你问“需要多大带宽”真的不是前端关心的事情。

    但是,你要问前端如何优化这个有 10 张 1MB 图片的页面,如果在有限的带宽下实现最好的用户体验,那就有很多可以讨论的。
    wangkun025
        156
    wangkun025  
       2022-07-09 12:27:06 +08:00
    @zephyr1 这个问题本身有问题。乘以 8 是比特和字节的区别。网线是按照比特的。但文件是按照字节的。
    AyaseEri
        157
    AyaseEri  
       2022-07-09 15:13:05 +08:00
    这问题确实不是一个好问题。
    正确的提问应该是:2000 个用户同时访问一个页面,内含 10 张图片,每张 1MB ,是否需要优化?是的话有什么优化方案?
    milukun
        158
    milukun  
       2022-07-09 18:09:13 +08:00
    先学好语文再说吧
    moonrailgun
        159
    moonrailgun  
       2022-07-09 19:40:14 +08:00
    没听懂。问的是需要多大的带宽才能让用户瞬间加载完毕么?现实情况挺复杂的,而信息好像也不是很全
    ztcaoll222
        160
    ztcaoll222  
       2022-07-10 01:00:49 +08:00
    问得没头没尾的,应该改成问解决方案
    weiqk
        161
    weiqk  
       2022-07-10 09:25:48 +08:00 via Android
    怼的好,这问题太没水平了,如果一秒加载完要 160 ,两秒只要 80 ,十秒只要 16
    auh
        162
    auh  
       2022-07-10 10:22:06 +08:00
    这种思维方式,真的好吗?
    HackerJax
        163
    HackerJax  
       2022-07-10 11:38:38 +08:00 via iPhone
    @wangritian 楼主问的不是如何优化图片的加载速度,而是确切的服务器需要多少带宽。

    面试是双向选择,你不要别人,别人还觉得你这技术团队还不值得他去呢
    WebKit
        164
    WebKit  
       2022-07-10 14:59:17 +08:00
    能问这种问题,肯定前面已经问了不少不专业的问题了。从楼主是老板,自己负责设计、面试,大概猜测,可能是一个初创公司。所以面试者,就算面试通过估计也不回来了。既然不会产生交集,还被问这种问题,自然被怼回去很正常。
    Auroras
        165
    Auroras  
       2022-07-10 16:50:00 +08:00 via Android
    azhi2007
        166
    azhi2007  
       2022-07-11 07:55:08 +08:00
    怼就怼吧,现在的年轻人不吃 80 后那一套,应该稳点前端专业的技术实现,这本身也不是他要解决的问题,况且你这一张图片的大小也不大,这应该是架构师的问题
    sjzjams
        167
    sjzjams  
       2022-07-11 08:59:26 +08:00
    小公司老板都这样哈哈
    wangritian
        168
    wangritian  
       2022-07-11 10:44:45 +08:00
    @HackerJax 这种态度的面试者在与同事对接工作时容易出问题,并不否认楼主的问题错误,很多回帖也都指出了,但“这个事不归我管”一定是不可取的
    ahsjs
        169
    ahsjs  
       2022-07-11 10:57:51 +08:00
    对应前端的优化就图片懒加载或者先加载低分辨率的图片,cdn 确实不归前端管
    ajan
        170
    ajan  
       2022-07-11 13:03:38 +08:00
    我是来看段子手的
    xiaoranj
        171
    xiaoranj  
       2022-07-11 18:01:14 +08:00
    @frozenway 笑死🤣
    xqk111
        172
    xqk111  
       2022-07-11 18:57:55 +08:00
    不知道你想问啥,
    mokevip
        173
    mokevip  
       2022-07-12 12:15:07 +08:00
    @Joseph0717 支持,我看了这个问题我也懵逼,我都不知道问的是啥,更别说人家在面试的情况下紧张啥的,更容易答非所问,根本得不到想要的答案
    SmiteChow
        174
    SmiteChow  
       2022-07-13 18:10:08 +08:00
    的确超纲了,前端是面向浏览器编程
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2895 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:47 · PVG 21:47 · LAX 05:47 · JFK 08:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.