最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

技術(shù)干貨:嗶哩嗶哩(B站)功能框架圖 ——以B站為例分析面對秋招必須要掌握的前后端

2020-08-14 18:27 作者:匯智知了堂  | 我要投稿

本次夏令營知了堂項目經(jīng)理以B站為原型,帶著大家熟悉了軟件的開發(fā)流程及還原了部分功能模塊?,F(xiàn)在就將B站功能架構(gòu)圖及前后端技術(shù)棧給大家。同時從以B站技術(shù)為例給大家分析作為應(yīng)屆畢業(yè)生,面對秋季校招時必須要掌握的核心技術(shù)知識模塊。

圖一 B站功能架構(gòu)圖

前端篇

前端在前幾年的發(fā)展過程基本上是一個工程化的過程,框架和工程化工具層出不窮。很多人都在追逐框架的道路上越來越累。這兩年,基本趨于平靜,框架方面也形成了三足鼎立的局面,各個框架也在相互借鑒取長補短。那就回歸本質(zhì),想要從事前端這個職業(yè)(或是長遠發(fā)展),還是要注重知識的系統(tǒng)性和基礎(chǔ)的扎實性。

通過企業(yè)的用人需求可以看出,這兩年對于前端人才的技術(shù)的要求變化還是挺大,就拿應(yīng)屆生(成都地區(qū))來說相較于2017年之前,對于技術(shù)的要求都在不斷升級,在要求技術(shù)棧全面性的同時更加看重基礎(chǔ)的扎實程度。

下圖是某公司的前端應(yīng)屆生的招聘要求,可以看出任職資格上基本涵蓋了前端所需技術(shù)棧。

那么反推作為應(yīng)屆生的我們在簡歷上的準備,我們要基本符合企業(yè)用人需求,大概可以以下從2個方面去準備。

一:技術(shù)棧

1. HTML+CSS+JS+bootstrap 網(wǎng)頁的制作(熟練)

2. ECMA5、ES6、JQ 、面向?qū)ο驩OP、閉包等ES高級特性

3. Nodejs+數(shù)據(jù)庫(mongoDB/mysql)服務(wù)端編程

4. Vue/react/angular至少熟悉一種、小程序

5. Webpack工程化項目搭建

6. Git、svn等協(xié)同開發(fā)

二:項目方面

作為應(yīng)屆生至少有2個項目能寫在簡歷里面。并且寫清楚項目功能、項目職責(zé)、所用技術(shù)棧。所以我們最好能動手分析并且用當(dāng)下流行技術(shù)棧實現(xiàn)一個項目。

在這以還原B站(嗶哩嗶哩)為例,去分析一下它的功能和技術(shù),B站作為一個大型彈幕視頻網(wǎng)站,從功能而言,主要就是視頻和彈幕,其中還有廣告,會員,創(chuàng)作等功能,具體的功能組成可以參考(圖一 B站功能架構(gòu)圖)。

在這我們從以下幾個方面來分析,并結(jié)合目前互聯(lián)網(wǎng)公司的項目所采用的技術(shù)架構(gòu)來做一些討論。

因為要完成一個項目,首先要了解及熟悉它的需求。

1、產(chǎn)品性質(zhì)?B站是一個平臺類產(chǎn)品(b2b2c),b端對應(yīng)up主,主要功能就是上傳。c端對應(yīng)觀眾,就是觀看視頻。

2、核心功能?視頻,包含直播+社交,在這我們要了解的技術(shù)就是視頻的上傳, 需要涉及到:

(1) 前端文件上傳,斷點續(xù)傳,

(2) 流媒體播放,本地緩存,

(3) 視頻播放器的編寫,

(4) 核心功能——彈幕等功能

3、性能/安全?相對于B站這種大型視頻網(wǎng)站,肯定需要考慮性能方面的優(yōu)化,從以下幾個點我們可以思考對于技術(shù)的選擇。

(1) 項目框架本身:數(shù)據(jù)量特別大 而頁面本身加載不卡頓,且首頁打開時間應(yīng)該在3秒之內(nèi),所以選擇了目前流行的vue作為前端項目架構(gòu),它就是利用MVVM模式結(jié)合虛擬DOM等技術(shù)來解決數(shù)據(jù)渲染的性能相關(guān)問題。

(2) 多人同時彈幕操作,而視頻或DOM不卡頓。這里會涉及到算法相關(guān)技術(shù)

(3) 同時在線人數(shù)高 同時播放引起的高并發(fā)的問題

當(dāng)然這里面要完整實現(xiàn)B站相關(guān)前端功能,需要從最基礎(chǔ)的網(wǎng)頁布局到頁面懶加載、模塊化編程,前端數(shù)據(jù)分片加載(chunk)等技術(shù)的運用,在學(xué)習(xí)過程中我們應(yīng)該明白我們的目的是什么,然后結(jié)合項目去實戰(zhàn),還有就是要學(xué)會分析項目的業(yè)務(wù)及功能,從而結(jié)合技術(shù)去綜合鍛煉。

后端篇

B站作為一個大型彈幕視頻網(wǎng)站,從功能而言,主要就是視頻和彈幕,其中還有廣告,會員,創(chuàng)作等功能,本次我們主要從視頻和彈幕的技術(shù)為例,來對目前互聯(lián)網(wǎng)中項目架構(gòu)的公用技術(shù)來做一些剖析。

視頻模塊

B站視頻技術(shù)體系圖


視頻上傳其實是一個很復(fù)雜的技術(shù),但是歸根到底其實就是對于數(shù)據(jù)流的處理,從最基本的技術(shù)開始,其實就是IO技術(shù)和多線程技術(shù)的使用,服務(wù)器接收到數(shù)據(jù)流進行處理,在這個過程中通過多線程等技術(shù)來提升文件上傳速度;

用戶觀看視頻也是如此,是一個基于數(shù)據(jù)流下載的問題;但是在整個這個過程中,涉及到真正后臺實現(xiàn)要考慮的問題就很多了,比如:

l 內(nèi)容如何快速上傳

l 如何存儲海量內(nèi)容

l 如何對海量內(nèi)容進行處理

l 如何應(yīng)對大量并發(fā)內(nèi)容訪問

l ......

以上其實也就是我們后臺技術(shù)的深入以及一些架構(gòu)演變,這些對應(yīng)的內(nèi)容也是很多互聯(lián)網(wǎng)技術(shù)架構(gòu)中要考慮的技術(shù);

內(nèi)容如何上傳:會考慮到就近上傳,中間會涉及到DNS等技術(shù),上傳的是需要進行格式轉(zhuǎn)碼,加密轉(zhuǎn)碼等,包括斷點續(xù)傳,會涉及到算法等相關(guān)技術(shù);

海量內(nèi)容的存儲:在整個后臺架構(gòu)中就會涉及到數(shù)據(jù)庫系統(tǒng)和文件系統(tǒng)的處理,包括使用我們分布式存儲技術(shù),從mongoDB到fastDFS,再到結(jié)合hadoop系統(tǒng)的使用;

海量內(nèi)容的處理:包括CDN內(nèi)容的分發(fā),多服務(wù)器負載均衡再到搜索引擎elasticsearch的使用等,而大量并發(fā)內(nèi)容的訪問,從服務(wù)分離到緩存等的使用,以上這些技術(shù)都是我們在學(xué)習(xí)Java后臺技術(shù)中會涉及的內(nèi)容。

當(dāng)然,有些技術(shù)是掌握,比如向mongoDB,fastDFS,elasticsearch等 ,是各大系統(tǒng)中都會使用的,應(yīng)用起來也相對簡單;有些技術(shù)是了解,因為需要真實生產(chǎn)環(huán)境大量數(shù)據(jù)的實踐下掌握真正的調(diào)優(yōu)配置以及原理,比如真正的hadoop大數(shù)據(jù)生態(tài)的使用,需要在工作中積累和更加的深入。

彈幕系統(tǒng)模塊

B站的彈幕文化是B站區(qū)別于其他視頻網(wǎng)站的重要特征,可以想象,對于熱點視頻,對于并發(fā)產(chǎn)生的彈幕的技術(shù)支撐也是一個很復(fù)雜的系統(tǒng),B站自己有一套自己優(yōu)化的彈幕系統(tǒng),我們從后臺技術(shù)的角度來理解,其實彈幕就是一個高并發(fā)實時消息系統(tǒng),涉及到大量并發(fā)消息的有序接收后的實時推送,這塊其實我們在進行Java后臺學(xué)習(xí)過程中,會有類似的技術(shù)體系涉及:kafka消息隊列,RabbitMQ消息中間件,都是實現(xiàn)高并發(fā)實時消息系統(tǒng)的一些重要技術(shù)。

所以我們以視頻和彈幕為例,其實可以看到,Java后臺作為一個穩(wěn)定的生態(tài),對于各種互聯(lián)網(wǎng)中的應(yīng)用場景都有一套通用的技術(shù)解決方案,這也是我們在學(xué)習(xí)過程中能夠?qū)W習(xí)的;通過這些通用技術(shù)的學(xué)習(xí),我們可以了解任何一家公司底層架構(gòu)的一些原理,在以后實際工作中進一步提升和完善自己的技術(shù)體系。

作為應(yīng)屆畢業(yè)生,想要從事Java相關(guān)的工作,以下能力要求是大家必須達成的:

本次夏令營活動已結(jié)束,但是我們對大家的就業(yè)服務(wù)將一直持續(xù)……

如果你正面臨著以下難題,可參與知了堂“天府人才內(nèi)推”活動我們將竭力幫助你擺脫

1、技能達不到企業(yè)的需求——缺乏項目經(jīng)驗

2、簡歷撰寫沒有圍繞求職崗位進行,項目經(jīng)驗無法支持求職崗位要求

3、缺乏面試技巧,無法和HR項目經(jīng)理進行交流(答非所問)

4、缺乏簡歷投遞的途徑和渠道資源

5、每次都“掛”在面試題(沒有人幫你梳理解題思路)


技術(shù)干貨:嗶哩嗶哩(B站)功能框架圖 ——以B站為例分析面對秋招必須要掌握的前后端的評論 (共 條)

分享到微博請遵守國家法律
大足县| 承德县| 罗源县| 武清区| 五家渠市| 乃东县| 关岭| 台山市| 安徽省| 桐乡市| 浙江省| 英德市| 海丰县| 两当县| 普安县| 永川市| 桑日县| 台中县| 文成县| 仁化县| 绵阳市| 金沙县| 祁东县| 衡南县| 新丰县| 黄冈市| 东丰县| 琼结县| 南阳市| 清丰县| 龙胜| 拜泉县| 那曲县| 孟州市| 曲周县| 浦县| 环江| 青浦区| 大港区| 红原县| 广汉市|