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

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

筆記

2021-11-16 15:59 作者:スレーブ_スレイヤー  | 我要投稿

記憶力不是很好,特別是對于一些用不上的知識。但好像人有一個(gè)遺忘曲線,所以利用B站服務(wù)器做一個(gè)記錄和整理(云服務(wù)器很貴的,而且老有些無聊的人喜歡爆破SSH和CMS密碼)。

  1. Flow

    我沒用過RxJava,以前都是手動(dòng)實(shí)現(xiàn)的用于UI更新的觀察者模式和生命周期管理,對于“事件訂閱”也沒什么概念,類似的需求都是直接開線程然后用Handle?Message那一套做UI更新......后來才知道Jetpack,然后知道有ViewModel和LiveData,然后稍微用過一下。

    因?yàn)橹坝腥税袴low和LiveData做了比較,就先入為主的認(rèn)為這兩個(gè)東西等價(jià)了,這是錯(cuò)的。

    還沒完全摸清楚Flow的門道,但對于Flow的定位差不多有一些了解了:

    Flow和LiveData一樣,是一個(gè)可觀察的數(shù)據(jù)容器。同時(shí),F(xiàn)low可以在不知道具體數(shù)據(jù)的前提下對數(shù)據(jù)進(jìn)行處理,而LiveData不行。

    另外,F(xiàn)low其實(shí)牽扯到了如何去獲取數(shù)據(jù),雖然它不關(guān)心數(shù)據(jù)是怎么來的(從數(shù)據(jù)庫或網(wǎng)絡(luò),或者SP),但Flow承擔(dān)了生產(chǎn)數(shù)據(jù)的任務(wù),并不是單純的數(shù)據(jù)的容器。

    所以對于Flow的使用場景:我發(fā)現(xiàn)B站視頻播放頁面的點(diǎn)贊數(shù)是會實(shí)時(shí)改變的,盲猜背后是定時(shí)從服務(wù)器拿到新的點(diǎn)贊數(shù)。這種時(shí)候Flow就比LiveData合適,同樣是可觀察的數(shù)據(jù)容器,但Flow可以在觀察者(消費(fèi)者)獲取(收集)數(shù)據(jù)時(shí)自己去生產(chǎn)數(shù)據(jù),比如上面的例子,用Flow實(shí)現(xiàn)就是:

private val likeCount= flow<Int> { ? ? ? ? ?while (true){ ? ? ? ? ? ? emit(getLikeCount()) ? ? ? ? ? ? delay(1000) ? ? ? ? } ? ? }

當(dāng)別的類要用到likeCount更新UI的時(shí)候,只需要觀察(收集)likeCount就行了。likeCount就會每隔一秒就去獲取一次最新點(diǎn)贊數(shù),不需要再在別的地方開線程更新它的值。

這個(gè)likeCount的值是沒辦法手動(dòng)改變的,所以Flow適合的場景是,數(shù)據(jù)會自動(dòng)產(chǎn)生并更新的情況。有些時(shí)候數(shù)據(jù)是由用戶產(chǎn)生,而且是由用戶的行為更新的,比如文件管理器,當(dāng)前目錄的文件,是用戶點(diǎn)擊某個(gè)文件夾數(shù)據(jù)才會變......這種時(shí)候就沒必要用Flow,直接LiveData或者M(jìn)utableStateFlow。

對于官方說的數(shù)據(jù)流,還有“生產(chǎn)者”?“中間商” “消費(fèi)者”之類的概念,我還是有點(diǎn)暈,所以就按自己的理解先用著。另外還有Flow基于協(xié)程帶來的一些,諸如可以避免內(nèi)存泄漏(不知道當(dāng)一個(gè)Activity被銷毀,而它開的線程還在從服務(wù)器獲取數(shù)據(jù)的情況,算不算內(nèi)存泄漏)之類的好處,就不談了。

總之,F(xiàn)low就是一個(gè)可以自己決定如何產(chǎn)生數(shù)據(jù)的,可觀察的數(shù)據(jù)容器。

目的還是服務(wù)于MVVM模式,讓UI壓根不需要關(guān)心數(shù)據(jù)從哪來,怎么更新,而只關(guān)心怎么展示數(shù)據(jù)。

2.Compose雜項(xiàng)

我還是太年輕了。Compose的水不是一般的深,根本就沒有表面上那么簡單,那么輕量級。

但Compose還是比View體系效率(開發(fā)效率和運(yùn)行效率)更高,而且更符合直覺。我初學(xué)安卓的時(shí)候就覺得setText只要調(diào)用一次,TextView里面的文字就應(yīng)該隨著變量改變,每次都要設(shè)置就很奇怪。所以Compose比View更適合沒寫過xml的初學(xué)者。

效率更高,更容易入門,缺的就只有生態(tài)。Compose應(yīng)該會在未來成為主流,值得賭一手。

話是這么說,但很多東西還沒完全弄明白,先留空。

-1.你有必要成為專家

最初學(xué)的安卓,然后學(xué)了一段時(shí)間的游戲開發(fā),又學(xué)了點(diǎn)逆向,黑客技術(shù),還有后端。

基本都是蜻蜓點(diǎn)水。是一拍腦袋做的決定。

當(dāng)時(shí)是看了點(diǎn)SQL注入的教程,就拿B站用戶信息的界面試了下,當(dāng)然是沒用的。我知道肯定不行,但我想知道為什么不行,于是就看了更多的SQL注入的教程,依舊沒得到答案。

直到我需要做后端,用了Springboot和Mybatis,才知道有個(gè)東西叫“預(yù)編譯”。

說實(shí)話,SQL注入這種東西基本已經(jīng)死透了,但是你去搜黑客教程,依舊是SQL注入起手。

這件事告訴我們什么道理呢?

1.在逆向以前首先要懂正向。

首先發(fā)現(xiàn)SQL注入的人肯定是個(gè)做后端的,在知道后端怎么運(yùn)作的基礎(chǔ)上,才有可能發(fā)現(xiàn)SQL注入。

后端都不懂就擱那注入,盲人摸象了屬于是。

2.真理要靠自己去尋找

為什么現(xiàn)在的網(wǎng)站注不進(jìn)去,如果我沒學(xué)后端估計(jì)到現(xiàn)在還是懵的。所以指望從別人口中得到答案,基本是妄想。


以前覺得我只能去做逆向了,其實(shí)挺搞笑的。

事情沒有那么復(fù)雜,我要做的事只有一件:

在某個(gè)領(lǐng)域成為專家。

這次是真的悟了,發(fā)自內(nèi)心的。其實(shí)“高考”完以后,我就已經(jīng)沒有任何目標(biāo)了,就這樣一直渾渾噩噩混日子,偶爾努力一下,很快又會懷疑努力的盡頭到底有什么。

沒有必要思考那么多其實(shí)。什么學(xué)歷,風(fēng)口都是假的,首先是要成為專家,在這個(gè)基礎(chǔ)上一切都會變得簡單。

我有點(diǎn)過于輕視在職程序員了,覺得自己差的只是一個(gè)985的學(xué)歷,以及面試的那些八股文,還有諸如熱修復(fù),組件化,依賴注入之類自己用的少的東西。

實(shí)際上不管用不用得上,能夠做到的人才配被稱作專家。畢竟即使強(qiáng)如Faker,在不打游戲的人眼里也就是一個(gè)愣頭青,和同樣20多歲的青銅病友并沒有什么區(qū)別。

就是說,我并不能觀測到別人腦袋里到底有多少知識,即使一個(gè)同領(lǐng)域的專家站在我面前我也不會覺得它有任何與眾不同。

成為專家以后的我,并不會在頭上頂著一個(gè)專家的稱號,我在別人眼里還是和以前一樣。

這應(yīng)該就是:“智者向內(nèi)尋求力量吧?!?/p>

原本及其簡單,原本應(yīng)該明白的事,卻在看過太多冠冕堂皇的東西以后忘記了。

沒什么好說的了。成為專家吧。









筆記的評論 (共 條)

分享到微博請遵守國家法律
芷江| 通许县| 龙岩市| 昆山市| 汕头市| 杭州市| 厦门市| 祁连县| 常宁市| 鹤岗市| 洞头县| 壶关县| 秀山| 屯昌县| 丰县| 广南县| 大悟县| 辽源市| 雷山县| 东海县| 舒城县| 馆陶县| 曲周县| 故城县| 岳池县| 英德市| 柞水县| 安新县| 洞口县| 阳朔县| 勃利县| 惠州市| 姚安县| 阜新| 阿克| 德昌县| 喀喇沁旗| 麦盖提县| 绥德县| 牡丹江市| 盘山县|