本文由阿里閑魚技術(shù)團隊逸昂分享,原題“消息鏈路優(yōu)化之弱感知鏈路優(yōu)化”,有修訂和改動,感謝作者的分享。

十載的南岔網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整南岔建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)建站從事“南岔網(wǎng)站設(shè)計”,“南岔網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
閑魚的IM消息系統(tǒng)作為買家與賣家的溝通工具,增進理解、促進信任,對閑魚的商品成交有重要的價值,是提升用戶體驗最關(guān)鍵的環(huán)節(jié)。
然而,隨著業(yè)務(wù)體量的快速增長,當(dāng)前這套消息系統(tǒng)正面臨著諸多急待解決的問題。
以下幾個問題典型最為典型:
1) 在線消息的體驗提升;
2) 離線推送的到達率;
3) 消息玩法與消息底層系統(tǒng)的耦合過強。
經(jīng)過評估,我們認為現(xiàn)階段離線推送的到達率問題最為關(guān)鍵,對用戶體驗影響較大。
本文將要分享的是閑魚IM消息在解決離線推送的到達率方面的技術(shù)實踐,內(nèi)容包括問題分析和技術(shù)優(yōu)化思路等 ,希望能帶給你啟發(fā)。
(本文已同步發(fā)布于: ?)
本文是系列文章的第6篇,總目錄如下:
《 阿里IM技術(shù)分享(一):企業(yè)級IM王者——釘釘在后端架構(gòu)上的過人之處 》
《 阿里IM技術(shù)分享(二):閑魚IM基于Flutter的移動端跨端改造實踐 》
《 阿里IM技術(shù)分享(三):閑魚億級IM消息系統(tǒng)的架構(gòu)演進之路 》
《 阿里IM技術(shù)分享(四):閑魚億級IM消息系統(tǒng)的可靠投遞優(yōu)化實踐 》
《 阿里IM技術(shù)分享(五):閑魚億級IM消息系統(tǒng)的及時性優(yōu)化實踐 》
《 阿里IM技術(shù)分享(六):閑魚億級IM消息系統(tǒng)的離線推送到達率優(yōu)化 》(* 本文)
從數(shù)據(jù)通信鏈接的技術(shù)角度,我們根據(jù)閑魚客戶端是否在線,將整體消息鏈路大致分為強感知鏈路和弱感知鏈路。
強感知鏈路由以下子系統(tǒng)或模塊:
1) 發(fā)送方客戶端;
2) idleapi-message(閑魚的消息網(wǎng)關(guān));
3) heracles(閑魚的消息底層服務(wù));
4) accs(阿里自研的長連接通道);
5) 接收方客戶端組成。
整條鏈路的核心指標在于端到端延遲和消息到達率。
強感知鏈路中的雙方都是在線的,消息到達客戶端就可以保證接收方感知到。強感知鏈路的主要痛點在消息的端到端延遲。
弱感知鏈路與強感知鏈路的主要不同在于: 弱感知鏈路的接收方是離線的,需要依賴離線推送這樣的方式送達。
因此弱感知鏈路的用戶感知度不強,其核心指標在于消息的到達率,而非延遲。
所以當(dāng)前階段,優(yōu)化弱感知鏈路的重點也就是提升離線消息的到達率。換句話說, 提升離線消息到達率問題,也就是優(yōu)化弱感知鏈路本身 。
下圖一張整個IM消息系統(tǒng)的架構(gòu)圖,感受下整體鏈路:
如上圖所示,各主要組件和子系統(tǒng)分工如下:
1) HSF是一個遠程服務(wù)框架,是dubbo的內(nèi)部版本;
2) tair是阿里自研的分布式緩存框架,支持 memcached、Redis、LevelDB 等不同存儲引擎;
3) agoo是阿里的離線推送中臺,負責(zé)整合不同廠商的離線推送通道,向集團用戶提供一個統(tǒng)一的離線推送服務(wù);
4) accs是阿里自研的長連接通道,為客戶端、服務(wù)端的實時雙向交互提供便利;
5) lindorm是阿里自研的NoSQL產(chǎn)品,與HBase有異曲同工之妙;
6) 域環(huán)是閑魚消息優(yōu)化性能的核心結(jié)構(gòu),用來存儲用戶最新的若干條消息。
強感知鏈路和弱感知鏈路在通道選擇上是不同的:
1) 強感知鏈路使用accs這個在線通道;
2) 弱感知鏈路使用agoo這個離線通道。
通俗了說,弱感知鏈路指的就是離線消息推送系統(tǒng)。
相比較于在線消息和端內(nèi)推送(也就是上面說的強感知鏈路),離線推送難以確保被用戶感知到。
典型的情況包括:
1) 未發(fā)送到用戶設(shè)備:即推送未送達用戶設(shè)備,這種情況可以從通道的返回分析;
2) 發(fā)送到用戶設(shè)備但沒有展示到系統(tǒng)通知欄:閑魚曾遇到通道返回成功,但是用戶未看到推送的案例;
3) 展示到通知欄,并被系統(tǒng)折疊:不同安卓廠商對推送的折疊策略不同,被折疊后,需用戶主動展開才能看到內(nèi)容,觸達效果明顯變差;
4) 展示到通知欄,并被用戶忽略:離線推送的點擊率相比于在線推送更低。
針對“1)未發(fā)送到用戶設(shè)備”,原因有:
1) 離線通道的token失效;
2) 參數(shù)錯誤;
3) 用戶關(guān)閉應(yīng)用通知;
4) 用戶已卸載等。
針對“3)展示到通知欄,并被系統(tǒng)折疊”,原因有:
1) 通知的點擊率;
2) 應(yīng)用在廠商處的權(quán)重;
3) 推送的數(shù)量等。
針對“4)展示到通知欄,并被用戶忽略”,原因有:
1) 用戶不愿意查看推送;
2) 用戶看到了推送,但是對內(nèi)容不感興趣;
3) 用戶在忙別的事,無暇處理。
總之: 以上這些離線消息推送場景,對于用戶來說感知度不高,我們也便稱之為弱感知鏈路。
我們的弱感知鏈路分為3部分,即:
1) 系統(tǒng);
2) 通道;
3) 用戶。
共包含了Hermes、agoo、廠商、設(shè)備、用戶、承接頁這幾個環(huán)節(jié)。具體如下圖所示。
從推送的產(chǎn)生到用戶最終進入APP,共分為如下幾個步驟:
步驟1 :Hermes是閑魚的用戶觸達系統(tǒng),負責(zé)人群管理、內(nèi)容管理、時機把控,是整個弱感知鏈路的起點。;
步驟2 :agoo是阿里內(nèi)部承接離線推送的中臺,是閑魚離線推送能力的基礎(chǔ);
步驟3 :agoo實現(xiàn)離線推送依靠的是廠商的推送通道(如:蘋果的 apns通道 、Google的fcm通道、及 國內(nèi)各廠商的自建通道 。;
步驟4 :通過廠商的通道,推送最終出現(xiàn)在用戶的設(shè)備上,這是用戶能感知到推送的前提條件;
步驟5 :如果用戶剛巧看到這條推送,推送的內(nèi)容也很有趣,在用戶的主動點擊下會喚起APP,打開承接頁,進而給用戶展示個性化的商品。
經(jīng)過以上5個步驟,至此弱感知鏈路就完成了使命。
弱感知鏈路的核心問題在于:
1) 推送的消息是否投遞給了用戶;
2) 已投遞到的消息用戶是否有感知。
這對應(yīng)推送的兩個階段:
1) 推送消息是否已到達設(shè)備;
2) 用戶是否查看推送并點擊。
其中: 到達設(shè)備這個階段是最基礎(chǔ)的,也是本次優(yōu)化的核心。
我們可以將每一步的消息處理量依次平鋪,展開為一張漏斗圖,從而直觀的查看鏈路的瓶頸。
漏斗圖斜率最大的地方是優(yōu)化的重點,差異小的地方不需要優(yōu)化:
通過分析以上漏斗圖,弱感知鏈路的優(yōu)化重點在三個方面:
1) agoo受理率:是指我們發(fā)送推送請到的數(shù)量到可以通過agoo(阿里承接離線推送的中臺)轉(zhuǎn)發(fā)到廠商通道的數(shù)量之間的漏斗;
2) 廠商受理率:是指agoo中臺受理的量到廠商返回成功的量之間的漏斗;
3) Push點擊率:也就通過以上通道最終已送到到用戶終端的消息,是否最終轉(zhuǎn)化為用戶的主動“點擊”。
有了優(yōu)化方向,我們來看看優(yōu)化手段吧。
跟隨推送的視角,順著鏈路看一下我們是如何進行優(yōu)化的。
用戶的推送,從 Hermes 站點搭乘“班車”,駛向下一站:? agoo 。
這是推送經(jīng)歷的第一站。到站一看,傻眼了,只有不到一半的推送到站下車了。這是咋回事嘞?
這就要先說說 agoo 了,調(diào)用 agoo 有兩種方式:
1) 指定設(shè)備和客戶端,agoo直接將推送投遞到相應(yīng)的設(shè)備;
2) 指定用戶和客戶端,agoo根據(jù)內(nèi)部的轉(zhuǎn)換表,找到用戶對應(yīng)的設(shè)備,再進行投遞。
我們的系統(tǒng)不保存用戶的設(shè)備信息。因此,是按照用戶來調(diào)用agoo的。
同時: 由于沒有用戶的設(shè)備信息,并不知道用戶是 iOS 客戶端還是 Android 客戶端。工程側(cè)不得不向 iOS 和 Android 都發(fā)送一遍推送。雖然保證了到達,但是,一半的調(diào)用都是無效的。
為了解這個問題: 我們使用了agoo的設(shè)備信息。將用戶轉(zhuǎn)換設(shè)備這一階段提前到了調(diào)用 agoo 之前,先明確用戶對應(yīng)的設(shè)備,再指定設(shè)備調(diào)用 agoo,從而避免無效調(diào)用。
agoo調(diào)用方式優(yōu)化后,立刻剔除了無效調(diào)用,agoo受理率有了明顯提升。
至此: 我們總算能對 agoo 受理失敗的真正原因做一個高大上的分析了。
根據(jù)統(tǒng)計: 推送被 agoo 拒絕的主要原因是——用戶關(guān)閉了通知權(quán)限。同時,我們對 agoo 調(diào)用數(shù)據(jù)的進一步分析發(fā)現(xiàn)——有部分用戶找不到對應(yīng)的設(shè)備。 優(yōu)化到此,我們猛然發(fā)現(xiàn)多了兩個問題。
那就繼續(xù)優(yōu)化唄:
1) 通知體驗優(yōu)化,引導(dǎo)打開通知權(quán)限;
2) 與agoo共建設(shè)備庫,解決設(shè)備轉(zhuǎn)換失敗的問題。
這兩個優(yōu)化方向又是一片新天地,我們擇日再聊。
推送到達 agoo ,分機型搭乘廠商“專列”,駛向下一站:用戶設(shè)備。
這是推送經(jīng)歷的第二站。出站查票,發(fā)現(xiàn)竟然超員了。
于是乎: 我們每天有大量推送因為超過廠商設(shè)定的限額被攔截。
為什么會這樣呢?
實際上: 提供推送通道的廠商(沒錯, 各手機廠商的自家推送通道良莠不齊 ),為了保證用戶體驗,會對每個應(yīng)用能夠推送的消息總量進行限制。
對于廠商而言,這個限制會根據(jù)推送的類型和應(yīng)用的用戶規(guī)模設(shè)定——推送主要分為產(chǎn)品類的推送和營銷類的推送。
廠商推送通道對于不同類型消息的限制是:
1) 對于產(chǎn)品類推送,廠商會保證到達;
2) 對于營銷類推送,廠商會進行額度限制;
3) 未標記的推送,默認作為營銷類推送對待。
我們剛好沒有對推送進行標記,因此觸發(fā)了廠商的推送限制。
這對我們的用戶來說,會帶來困擾。閑魚的交易,很依賴買賣家之間的消息互動。這部分消息是需要確保到達的。
同樣: 訂單類的消息、用戶的關(guān)注,也需要保證推送給用戶。
根據(jù)主流廠商的接口協(xié)議,我們將推送的消息分為以下幾類,并進行相應(yīng)標記:
1) 即時通訊消息;
2) 訂單狀態(tài)變化;
3) 用戶關(guān)注內(nèi)容;
4) 營銷消息這幾類。
同時,在業(yè)務(wù)上,我們也進行了推送的治理——將用戶關(guān)注度不高的消息,取消推送,避免打擾。
經(jīng)過這些優(yōu)化,因為超過廠商限額而被攔截的推送實現(xiàn)了清零。
通過優(yōu)化agoo受理率、廠商受理率,我們解決了推送到達量的瓶頸。但即使消息被最終送達,用戶到底點擊了沒有?這才是消息推送的根本意義所在。
于是,在日常的開發(fā)測試過程中,我們發(fā)現(xiàn)了推送的兩個體驗問題:
1) 用戶點擊Push有開屏廣告;
2) 營銷Push也有權(quán)限校驗,更換用戶登陸后無法點擊。
對于開屏廣告功能,我們增加了Push點擊跳過廣告的能力。
針對Push的權(quán)限校驗功能,閑魚根據(jù)場景做了細分:
1) 涉及個人隱私的推送,保持權(quán)限校驗不變;
2) 營銷類的推送,放開權(quán)限校驗。
以上是點擊體驗的優(yōu)化,我們還需要考慮用戶的點擊意愿。
用戶點擊量與推送的曝光量、推送素材的有趣程度相關(guān)。推送的曝光量又和推送的到達量、推送的到達時機有關(guān)。
具體的優(yōu)化手段是:
1) 在推送內(nèi)容上:我們需要優(yōu)化的是推送的時機和相應(yīng)的素材;
2) 在推送時機上:算法會根據(jù)用戶的偏好和個性化行為數(shù)據(jù),計算每個用戶的個性化推送時間,在用戶空閑的時間推送(避免在不合適的時間打擾用戶,同時也能提升用戶看到推送的可能性)。
3) 在推送素材上:算法會根據(jù)素材的實時點擊反饋,對素材做實時賽馬。只發(fā)用戶感興趣的素材,提高用戶點擊意愿。
通過以上我們的分析和技術(shù)優(yōu)化手段,整體弱推送鏈路鏈路有了不錯的提升,離線消息的到達率相對提升了兩位數(shù)。
本篇主要和大家聊的是只是IM消息系統(tǒng)鏈路中的一環(huán)——弱感知鏈路的優(yōu)化,落地到到具體的業(yè)務(wù)也就是離線消息送達率問題。
整體IM消息系統(tǒng),還是一個比較復(fù)雜的領(lǐng)域。
我們在消息系統(tǒng)的發(fā)展過程中,面臨著如下問題:
1) 如何進行消息的鏈路追蹤;
2) 如何保證IM消息的快速到達(見《 閑魚億級IM消息系統(tǒng)的及時性優(yōu)化實踐 》);
3) 如何將消息的玩法和底層能力分離;
4) 離線推送中如何通過用戶找到對應(yīng)的設(shè)備。
這些問題,我們在以前的文章中有所分享,以后也會陸續(xù)分享更多,敬請期待。
[1]? Android P正式版即將到來:后臺應(yīng)用保活、消息推送的真正噩夢
[2]? 一套高可用、易伸縮、高并發(fā)的IM群聊、單聊架構(gòu)方案設(shè)計實踐
[3]? 一套億級用戶的IM架構(gòu)技術(shù)干貨(上篇):整體架構(gòu)、服務(wù)拆分等
[4]? 一套億級用戶的IM架構(gòu)技術(shù)干貨(下篇):可靠性、有序性、弱網(wǎng)優(yōu)化等
[5]? 從新手到專家:如何設(shè)計一套億級消息量的分布式IM系統(tǒng)
[6]? 企業(yè)微信的IM架構(gòu)設(shè)計揭秘:消息模型、萬人群、已讀回執(zhí)、消息撤回等
[7]? 融云技術(shù)分享:全面揭秘億級IM消息的可靠投遞機制
[8]? 移動端IM中大規(guī)模群消息的推送如何保證效率、實時性?
[9]? 現(xiàn)代IM系統(tǒng)中聊天消息的同步和存儲方案探討
[10]? 新手入門一篇就夠:從零開發(fā)移動端IM
[11]? 移動端IM開發(fā)者必讀(一):通俗易懂,理解移動網(wǎng)絡(luò)的“弱”和“慢”
[12]? 移動端IM開發(fā)者必讀(二):史上最全移動弱網(wǎng)絡(luò)優(yōu)化方法總結(jié)
[13]? IM消息送達保證機制實現(xiàn)(一):保證在線實時消息的可靠投遞
[14]? IM消息送達保證機制實現(xiàn)(二):保證離線消息的可靠投遞
[15]? 零基礎(chǔ)IM開發(fā)入門(一):什么是IM系統(tǒng)?
[16]? 零基礎(chǔ)IM開發(fā)入門(二):什么是IM系統(tǒng)的實時性?
[17]? 零基礎(chǔ)IM開發(fā)入門(三):什么是IM系統(tǒng)的可靠性?
[18]? 零基礎(chǔ)IM開發(fā)入門(四):什么是IM系統(tǒng)的消息時序一致性?
(本文已同步發(fā)布于: ?)
1.當(dāng)我們使用flutter開發(fā)的時候 頁面里面只有 initState 與dispose方法.
initState 只有進入頁面的時候調(diào)用,并且在二級頁面返回的時候 是不會有調(diào)用的
dispose 當(dāng)頁面銷毀的時候 才會調(diào)用,你進入二級頁面是不會調(diào)用的
綜上分析者兩個方法沒有辦法友盟頁面統(tǒng)計分享上報
2.我們可以使用 NavigatorObserver來解決
首先新建一個 繼承與NavigatorObserver的類 實現(xiàn)NavigatorObserver 的方法就可以了
最后我們需要再 MaterialApp里面的navigatorObservers添加監(jiān)聽就可以了
這時候 會有一個問題點擊tabbar幾個主頁是沒有統(tǒng)計的 ,我們也需要再tabbar的點擊方法來進行處理
其實,這兩個方向沒有誰比誰好,選擇什么方向還是需要看你的興趣,因為興趣是最好的老師。有了興趣,你才可能愿意花更多的時間和精力去學(xué)習(xí),才能將這個方向的專業(yè)知識學(xué)到極致,才有可能在這個領(lǐng)域得到更好的發(fā)展。
轉(zhuǎn)行的目的不同,有的人是因為想要獲得更好的發(fā)展,有的人是不滿意目前的收入,有的人是想要讓自己的興趣和職業(yè)結(jié)合。那不管原因是什么,轉(zhuǎn)行之前我們都要先深入調(diào)查這個行業(yè),包括這個行業(yè)的性質(zhì)、工作內(nèi)容、發(fā)展前景等等。那我們就來一起來簡單了解一下UI設(shè)計和Web前端。
一、UI和前端
UI:全寫User Interface,簡稱用戶界面,是指對軟件的人機交互、操作邏輯、界面美觀的整體設(shè)計。
前端:是創(chuàng)建Web頁面或app等前端界面呈現(xiàn)給用戶的過程。通過HTML,CSS及JavaScript以及衍生出來的各種技術(shù)、框架、解決方案,來實現(xiàn)互聯(lián)網(wǎng)產(chǎn)品的用戶界面交互。通俗一點來講,前端就是客服,主要跟顧客(用戶)交流。
從以上可以看出,其實UI設(shè)計和前端的工作相互相成,按照項目流程,一般是UI設(shè)計師設(shè)計好產(chǎn)品界面,前端工程師通過編碼實現(xiàn)界面。通俗來說,UI設(shè)計師好比服裝設(shè)計師,而開發(fā)工程師好比裁縫。兩者都是在一個完整的互聯(lián)網(wǎng)項目中不可缺失的崗位。
前端主要是需要掌握前端語言、框架等,都是編碼的工作,而UI設(shè)計是屬于視覺設(shè)計,需要具備設(shè)計基礎(chǔ)、設(shè)計思維、設(shè)計技能,兩者不是一個類別。可以說前端比較偏向于軟件工程、計算機科學(xué)等專業(yè),而UI設(shè)計比較偏向于視覺設(shè)計、平面設(shè)計等。
二、UI和前端的前景如何
隨著互聯(lián)網(wǎng)行業(yè)的發(fā)展,也在帶動行業(yè)內(nèi)崗位的發(fā)展,所以UI設(shè)計和前端開發(fā)都有很不錯的前景。那我們來看看UI設(shè)計和前端的市場需求曲線圖,直觀感受兩個崗位的需求變化。
說明:曲線越向上代表市場需求量越大,就業(yè)情況越好。反之,代表該類職位需求量較少。該數(shù)據(jù)由各地招聘網(wǎng)站統(tǒng)計而來,可能因抓取系統(tǒng)穩(wěn)定性等因素而致使數(shù)據(jù)偏離客觀實情,僅供參考。
從圖片可以看出UI設(shè)計和前端的需求在前幾年是基本持平的,近幾年變化浮動較大,近兩年前端需求高于UI,最近半年UI的需求高于前端設(shè)計。所以兩次的需求量量都大,只是時段不同,需求量也在不停變化。
我們通過平均工資去對比一下UI和前端的薪資待遇有何區(qū)別。
圖片來源:職友集
圖片可以得出,前端的平均薪資高于UI設(shè)計,其實主要原因有以下幾點:
1、學(xué)歷要求不同。從職友集數(shù)據(jù)可以看出,對于UI設(shè)計本科學(xué)歷占49%,大專占48%。但是對于前端開發(fā)本科學(xué)歷占71%,而大專學(xué)歷僅占28%。雖然學(xué)歷不能代表一切,但是不得不說學(xué)歷對薪資待遇也有一定的影響。
2、工作經(jīng)驗的要求。從職友集數(shù)據(jù)可以看出,對于UI設(shè)計有49%的公司要求有1-3年工作經(jīng)驗,而對于前端有41%的公司都要求必須有1-3年的工作經(jīng)驗。對于3年以上的工作經(jīng)驗的要求前端開發(fā)遠遠大于UI設(shè)計。工作年限前端的需求一定程度上也說明了工作經(jīng)驗以及技能熟練度,所以工作年限的不同對薪資待遇肯定也不同。
三、UI設(shè)計和前端需要具備哪些技能?
了解了UI設(shè)計和前端的簡要信息,如果想要轉(zhuǎn)行,因為要知道轉(zhuǎn)行的條件。需要學(xué)習(xí)哪些技能才能達到入行的標準。
1、前端
前端開發(fā)零基礎(chǔ)好入門,上手快可以立馬看到學(xué)習(xí)效果,可以大大提高學(xué)習(xí)興趣。但是并不是說前端沒有技術(shù)含量,我們不僅需要學(xué)習(xí)前端基礎(chǔ),還需要學(xué)習(xí)vue.js、react.js、react-native和Flutter等主流框架,并擴展three.js、typescript等等技術(shù),深挖、剖析框架原理。甚至了解后端的知識,在工作中才能減少溝通成本。
2、UI設(shè)計
現(xiàn)在的UI不僅要懂交互知識、平面設(shè)計,甚至還要會代碼、AE制作動效、以及插畫、手繪等等,UI設(shè)計也因此有了一個新名“全鏈路UI”。
四、UI和前端到底應(yīng)該怎么選?
從上面的分析我們可以得出,前端的工作比UI設(shè)計略高,但是企業(yè)的對于前端的學(xué)歷要求、工作經(jīng)驗的要求也比UI設(shè)計嚴格。我們不能一味的因為薪資待遇而去選擇方向,而是一個依據(jù)自己的興趣去選擇,讓興趣和夢想一起成長。
前端屬于技術(shù)崗位,技術(shù)隨著時間的改變也在不斷的進步、更新,而UI設(shè)計也需要根據(jù)市場的流行趨勢、設(shè)計要求的變化去學(xué)習(xí)最新的設(shè)計知識。不管選擇什么方向,都要持續(xù)的對這個方向保持熱愛,保持持續(xù)的學(xué)習(xí),才能有順應(yīng)市場需求有更好的發(fā)展。
Web前端可以做的工作,可以分為以下幾點:
1、Web前端是什么意思
Web前端是網(wǎng)站前臺部分,運行在PC端,移動端等瀏覽器上展現(xiàn)給用戶所瀏覽的網(wǎng)頁。
用我們的話來說,前端就是網(wǎng)頁給訪問網(wǎng)站的人看的內(nèi)容和頁面,Web前端開發(fā)意思就是這些內(nèi)容的制作,也就是代碼的實現(xiàn)。
WEB前端
簡而言之Web前端就是實現(xiàn)客戶端(手機和電腦)上看到的頁面和一些交互效果(比如點擊、查看詳情、查看更多)等,從事WEB網(wǎng)頁開發(fā)、HTML5頁面開發(fā)。
2、Web前端開發(fā)具體要做什么
前端開發(fā)最主要的是掌握三種基本能力,HTML、CSS,JavaScript。前端的開發(fā)中,在頁面的布局時, HTML將元素進行定義,CSS對展示的元素進行定位,再通過JavaScript實現(xiàn)相應(yīng)的效果和交互。
Web 前端開發(fā)三大技術(shù) html,css,js
還運用大量的 js 庫,可以將前端的交互效果做得更加炫酷,除了基本語言,還要掌握各種開發(fā)工具的應(yīng)用。Dreamweaver:,Sublime,HBuilder等都是比較熱門的工具。
前端開發(fā)需要掌握的能力很多,知識范圍很廣,要付出的代價很多。不過,前端的前途也是相當(dāng)光明的,前端現(xiàn)在正在走向工程化發(fā)展,無論權(quán)是大小公司企業(yè),對前端開發(fā)的需求都是越來越大了,也越來越專業(yè)了。
3、朗沃教育Web前端課程做什么
Web 前端除了最基本的 html,css,js 還有大量的技術(shù)內(nèi)容,也會運用到一定的框架,而朗沃教育的 WEB 前端開發(fā)一般會學(xué)到這些內(nèi)容。
HTML/CSS 基礎(chǔ)和高級
JavaScript 基礎(chǔ)語法和高級應(yīng)用
Node 服務(wù)端開發(fā)
Web前端框架開發(fā)(React 技術(shù)棧,Vue 技術(shù)棧)
移動端開發(fā)(React Native,跨端開發(fā)框架之微信小程序開發(fā),F(xiàn)lutter,PWA 等)
前端運維(Docker 與 Linux 基本操作等)
詳細課程請瀏覽朗沃教育Web前端課程。
WEB前端是什么?零基礎(chǔ)可以學(xué)嗎?初期階段只是了解一些Web前端基礎(chǔ)內(nèi)容,后面會涉及到一些Web前端交互的內(nèi)容,再涉及到服務(wù)器的一些知識,最后再學(xué)習(xí)Web前端的三大框架,再加上一些前端項目。
All for one, one for all.
人人為我,我為人人。—— [法] Dumas pére大仲馬
Other men live to eat, while I eat to live.
別人為食而生存,我為生存而食。—— Socrates 蘇格拉底
Easy come, easy go.
易得者亦易失。 —— Hazlitt赫斯特
Love rules his kingdom without a sword.
愛,統(tǒng)治了他的王國,不用一枝利劍。—— Herbert 赫伯特
We soon believe what we desire.
我們欲望中的東西,我們很快就信以為真。—— Chaucer喬叟
The darkest hour is that before the dawn.
黎明前的時分是最黑暗的。—— Fuller 富勒
The longest day has an end.
最難過的日子也有盡頭。—— Howell 賀韋爾
Living without an aim is like sailing without a compass.
生活而無目標,猶如航海之無指南針。—— J. Ruskin 魯斯金
A bird in the hand is worth two in the bush.
手中的一只鳥勝于林中的兩只鳥。—— Heywood 希伍德
One swallow does not make a summer.
一燕不成夏。—— Taverner 泰維納
A man may lead a horse to the water, but he cannot make it drink.
一個人可以把馬帶到河邊,但他不能令它飲水。 —— Heywood 希伍德
One cannot eat one’s cake and have it.
一個人不能把他的糕餅吃掉之后還留在手上。 —— Davies 戴維斯
Time is money.
時間就是金錢。—— Benjamin Franklin富蘭克林
Time and tide wait for no man.
時間不等人。—— Scott 斯科特
There is no rose without a thorn.
沒有玫瑰花是不長刺的。—— Ray 雷
Lookers-on see most of the game.
旁觀者清。—— Smedley 斯密萊
Beggars cannot be choosers.
行乞者不得有選擇。—— Heywood 希伍德
First catch your hare.
首先必須捕獲兔子,然后才能宰之。—— Thackeray 薩克雷
Victory won’t come to me unless I go to it.
勝利是不會向我走來的,我必須自己走向勝利。—— M. Moore 穆爾
A great man is always willing to be little.
偉大的人物總是愿意當(dāng)小人物的。—— R. W. Emerson 愛默生
Cowards die many times before their deaths.
懦夫在未死之前,已身歷多次死亡的恐怖了。 —— Julius Caesar 凱撒
Anything one man can imagine, other men can make real.
但凡人能想象到的事物,必定有人能將它實現(xiàn)。 —— Jules Verne 凡爾納
Early to bed and early to rise, makes a man healthy, wealthy, and wise.
早睡早起使人健康、富裕又聰明。—— Benjamin Franklin 富蘭克林
Life is just a series of trying to make up your mind.
生活只是由一系列下決心的努力所構(gòu)成。—— T. Fuller 富勒
Goals determine what you are going to be.
目標決定你將成為為什么樣的人。—— Julius Erving歐文
All human wisdom is summed up in two words ?C wait and hope.
人類所有的智慧可以歸結(jié)為兩個詞 — 等待和希望。—— Alexandre Dumas Pére大仲馬(法國作家)
It is not enough to be industrious, so are the ants. What are you industrious for?
光勤勞是不夠的,螞蟻也是勤勞的。要看你為什么而勤勞。—— H. D. Thoreau梭羅
You have to believe in yourself. That’s the secret of success.
人必須相信自己,這是成功的秘訣。—— Charles Chaplin卓別林
Nothing is more precious than independence and freedom.
沒有什么比獨立自由更可寶貴的了。—— [越南] Ho Chi Minh胡志明
I like the dreams of the future better than the history of the past.
我不緬懷過去的歷史,而致力于未來的夢想。—— T. Jefferson 杰弗遜(美國第3任總統(tǒng))
Money is round. It rolls away.
圓圓錢幣,滾走容易。—— S. Aleichen 阿雷欽
We are here to add what we can to life, not to get what we can from it.
我們要盡可能為生活增加一些東西,而不是從中索取什么。—— William Osler 奧斯勒
Life itself, without the assistance of colleges and universities, is becoming an advanced institution of learning.
沒有學(xué)院和大學(xué)的幫助,人生本身也正在變成一所高等學(xué)府。 —— Thomas Alva Edison 愛迪生
Work while you work;
Play while you play;
This is the way;
To be cheerful and gay.
工作時工作,
玩樂是玩樂,
依此方法做,
輕松與歡樂。—— A. D. Stoddart 斯道達特
Do not, for one repulse, give up the purpose that you resolved to effect. (William Shakespeare, British dramatist)
不要只因一次失敗,就放棄你原來決心想達到的目的。(英國劇作家 莎士比亞.W.)
Don't part with your illusions. When they are gone you may still exist, but you have ceased to live. (Mark Twain, American writer)
不要放棄你的幻想。當(dāng)幻想沒有了以后,你還可以生存,但是你雖生猶死。((美國作家 馬克·吐溫)
I want to bring out the secrets of nature and apply them for the happiness of man. I don't know of any better service to offer for the short time we are in the world. (Thomas Edison, American inventor)
我想揭示大自然的秘密,用來造福人類。我認為,在我們的短暫一生中,最好的貢獻莫過于此了。 (美國發(fā)明家 愛迪生. T.)
Ideal is the beacon. Without ideal, there is no secure direction; without direction, there is no life.( Leo Tolstoy, Russian writer)
理想是指路明燈。沒有理想,就沒有堅定的方向;沒有方向,就沒有生活。(俄國作家 托爾斯泰. L.)
If winter comes, can spring be far behind ?( P. B. Shelley, British poet )
冬天來了,春天還會遠嗎?( 英國詩人, 雪萊. P. B.)
If you doubt yourself, then indeed you stand on shaky ground. (Ibsen, Norwegian dramatist )
如果你懷疑自己,那么你的立足點確實不穩(wěn)固了。 (挪威劇作家 易卜生)
If you would go up high, then use your own legs ! Do not let yourselves carried aloft; do not seat yourselves on other people's backs and heads. (F. W. Nietzsche, German Philosopher)
如果你想走到高處,就要使用自己的兩條腿!不要讓別人把你抬到高處;不要坐在別人的背上和頭上。(德國哲學(xué)家 尼采. F. W.)
It is at our mother's knee that we acquire our noblest and truest and highest, but there is seldom any money in them. ( Mark Twain, American writer )
就是在我們母親的膝上,我們獲得了我們的最高尚、最真誠和最遠大的理想,但是里面很少有任何金錢。(美國作家 馬克·吐溫)
Living without an aim is like sailing without a compass. (Alexander Dumas, Davy de La Pailleterie, French Writer)
生活沒有目標就像航海沒有指南針。 (法國作家 大仲馬. A.)
The ideals which have lighted my way, and time after time have given me new courage to face life cheerfully 19 have been kindness, beauty and truth.(Albert Einstein, American scientist)
有些理想曾為我們引過道路,并不斷給我新的勇氣以欣然面對人生,那些理想就是--真、善、美。 (美國科學(xué)家 愛因斯坦. A.)
The important thing in life is to have a great aim, and the determination to attain it. (Johan Wolfgang von Goethe, German Poet and dramatist)
人生重要的事情就是確定一個偉大的目標,并決心實現(xiàn)它。(德國詩人、戲劇家 歌德. J.
The man with a new idea is a crank until the idea succeeds. (Mark Twain, American writer)
具有新想法的人在其想法實現(xiàn)之前是個怪人。 (美國作家 馬克·吐溫)
The only limit to our realization of tomorrow will be our doubts of today. (Franklin Roosevelt, American president)
實現(xiàn)明天理想的唯一障礙是今天的疑慮。(美國總統(tǒng) 羅斯福. F.)
When an end is lawful and obligatory, the indispensable means to is are also lawful and obligatory. (Abraham Lincoln, American statesman)
如果一個目的是正當(dāng)而必須做的,則達到這個目的的必要手段也是正當(dāng)而必須采取的。(美國政治家 林肯. A.)
行動是通往知識的唯一道路 。 (英國劇作家 肖伯納. G.)
A free man obtains knowledge from many sources 1 besides books . (Thomas Jefferson , American president)
一個自由的人除了從書本上獲取知識外,還可以從許多別的來源獲得知識。(美國總統(tǒng) 杰斐遜 . T.)
A great part to the information I have was acquired by looking up something and finding something else on the way. (Adams Franklin , American humorist )
我的大部分知識都是這樣獲得的:在尋找某個資料時意外的發(fā)現(xiàn)了另上的資料。(美國幽默作家 富蘭克林. A.)
If a man empties his purse into his head , no man can take it away from him , an investment in knowledge always pays the best interest . (Benjamin Franklin , American president )
傾已所有追求知識,沒有人能奪走它;向知識投資,收益最佳。(美國總統(tǒng) 富蘭克林. B.)
Imagination is more important than knowledge .(Albert Einstein , American scientist )
想象力比知識更為重要。 (美國科學(xué)家 愛因斯坦. A. )
Knowledge is power . (Francis Bacon , British philosopher )
知識就是力量。 (英國哲學(xué)家 培根. F.)
The empty vessels make the greatest sound . (William Shakespeare , British dramatist )
滿瓶不響,半瓶咣當(dāng)。 (英國劇作家 莎士比亞. W.)
1
夏天的飛鳥,飛到我的窗前唱歌,又飛去了。
秋天的黃葉,它們沒有什么可唱,只嘆息一聲,飛落在那里。
stray birds of summer come to my window to sing and fly away.
and yellow leaves of autumn, which have no songs, flutter and fall
there with a sign.
2
世界上的一隊小小的漂泊者呀,請留下你們的足印在我的文字里。
o troupe of little vagrants of the world, leave your footprints in my words.
3
世界對著它的愛人,把它浩翰的面具揭下了。
它變小了,小如一首歌,小如一回永恒的接吻。
the world puts off its mask of vastness to its lover.
it becomes small as one song, as one kiss of the eternal.
4
是大地的淚點,使她的微笑保持著青春不謝。
it is the tears of the earth that keep here smiles in bloom.
5
無垠的沙漠熱烈追求一葉綠草的愛,她搖搖頭笑著飛開了。
the mighty desert is burning for the love of a bladeof grass who
shakes her head and laughs and flies away.
6
如果你因失去了太陽而流淚,那么你也將失去群星了。
if you shed tears when you miss the sun, you also miss the stars.
7
跳舞著的流水呀,在你途中的泥沙,要求你的歌聲,你的流動呢。你肯挾
瘸足的泥沙而俱下么?
the sands in your way beg for your song and your movement, dancing
water. will you carry the burden of their lameness?
8
她的熱切的臉,如夜雨似的,攪擾著我的夢魂。
her wishful face haunts my dreams like the rain at night.
9
有一次,我們夢見大家都是不相識的。
我們醒了,卻知道我們原是相親相愛的。
once we dreamt that we were strangers.
we wake up to find that we were dear to each other.
10
憂思在我的心里平靜下去,正如暮色降臨在寂靜的山林中。
sorrow is hushed into peace in my heart like the evening among
the silent trees.
Adversity reveals genius; fortune conceals it. (Horace, ancient Roman poet)
苦難顯才華,好運隱天資。(古羅馬詩人 賀拉斯)
Almost any situation---good or bad ---is affected by the attitude we bring to. (Lucius Annaus Seneca, Ancient Roman philosopher)
差不多任何一種處境——無論是好是壞——都受到我們對待處境的態(tài)度的影響。(古羅馬哲學(xué)家 西尼加 L A)
Although the world is full of suffering, it is full also of the overcoming of it. (Hellen Keller, American writer)
雖然世界多苦難,但是苦難總是能戰(zhàn)勝的(美國作家 海倫·凱勒)
As fruit needs not only sunshine but cold nights and chilling showers to ripen it, so character needs not only joy but trial and difficulty to mellow it. (Hugh Black, American writer)
水果不僅需要陽光,也需要涼夜。寒冷的雨水能使其成熟。人的性格陶冶不僅需要歡樂,也需要考驗和困難。(美國作家 布萊克 H)
Everything can be taken from a man but one thing; the freedom to choose his attitude in any given set of circumstances. (Leonhard Frand , German novelist)
我可以拿走人的任何東西,但有一樣?xùn)|西不行,這就是在特定環(huán)境下選擇自己的生活態(tài)度的自由。(德國小說家 弗蘭克 L)
Every tragedy makes heroes of common people. (Normna Stephens, American writer)
每場悲劇都會在平凡的人中造就出英雄來。(美國作家 斯蒂芬斯 N)
He who allows himself to be insulted, deserves to be. (F.C.Comford, British writer)
自己甘愿受辱的人,受污辱也活該。(英國作家 科福德 F C)
I find life an exciting business and most exciting when it is lived for others. (Helen Keller,Ameican writer)
我發(fā)現(xiàn)生活是令人激動的事情,尤其是為別人活著時。(美國作家 海倫·凱勒)
I wept when I was born, and every day shows why.(Jack London, American novelist)
我一生下來就開始哭泣,而每一天都表明我哭泣的原因。(美國小說家 杰克·倫敦)
If you want to live your whole life free from pain
如果你想一生擺脫苦難
You must become either a god or else a coupes
你就得是神或者是死尸
Consider other men's troubles
想想他人的不幸
That will comfort yours
你就能坦然面對人生
Menander, Ancient Athenian playwriter
古雅典劇作家 米南德
網(wǎng)站題目:flutter統(tǒng)計,flutter統(tǒng)計圖
網(wǎng)站地址:http://chinadenli.net/article4/dseihie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、微信小程序、移動網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、自適應(yīng)網(wǎng)站、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)