天天看點

5214頁PDF的進階架構師學習筆記,靈魂拷問背景

背景

在深度使用 Flutter 開發過程中,我們遇到了業務代碼耦合嚴重,代碼可維護性糟糕,如入泥濘。我們需要一個統一的應用架構來擺脫當下的開發困境,而這也是 Flutter 領域空缺的一塊處女地。

Fish Redux 是為解決上面問題上層應用架構,它是一個基于 Redux 資料管理的組裝式 flutter 應用架構, 特别适用于建構中大型的複雜應用。

它的最大特點是配置式組裝, 一方面将一個大的頁面,對視圖和資料層層拆解為互相獨立的 Component|Adapter,上層負責組裝,下層負責實作,另一方面将 Component|Adapter 拆分為 View,Reducer,Effect 等互相獨立的上下文無關函數。是以它會非常幹淨,易編寫、易維護、易協作。

Fish Redux 的靈感主要來自于 Redux、React、Elm、Dva 這樣的優秀架構,而 Fish Redux 站在巨人的肩膀上,将集中,分治,複用,隔離做的更進一步。

一面(104min)

  • 自我介紹。
  • 線程和程序的差別。
  • 線程安全。面試官追問是否了解volite關鍵字,小金忘了沒回答出來。面試官追問是否了解自旋鎖,樂觀鎖,悲觀鎖等,小金回答了解但是沒用過。
  • http是用什麼實作的。
  • TCP和UDP的差別。
  • TCP為什麼是可靠的。注意擁塞機制涉及的算法(慢開始,擁塞避難,快重傳,快恢複)。
  • Get請求和Post請求的差別。注意Get請求比Post請求效率高,Post請求需要伺服器傳回100再發送資料處理,Get請求直接是通過URL。面試官追問是否知道其他請求方式,Put,Delete,Head。
  • 項目中詢問一個 A Activity 跳到一個 B Activity中,生命周期的走動,點選Back傳回呢。如果一個 A Activity是透明的呢?如果 B Activity是一個Dialog呢?面試官追問橫豎屏切換生命周期走動,以及是否了解onConfigurationChanged。
  • HashMap的源碼,擴容的條件。
  • 算法兩道,一道是和并兩個有序連結清單,小金用的歸并排序合并過程的思路寫的(長時間用IDE,好多錯誤,但是面試官很有耐心幫我糾錯)。一道是思路,将一段文本中的單詞逆序輸出,主要考察資料結構的知識,用到了棧和隊列。
  • 詢問小金的基本情況,實習時間等。
  • 反問環節:其實沒問,面試官建議小金對常見的知識做深一步的了解,多看源碼,多用記事本寫代碼,多看看基本的資料結構和算法。
    5214頁PDF的進階架構師學習筆記,靈魂拷問背景

二面(57min)

  • 自我介紹。
  • Android靜态庫和動态庫的差別。
  • Android中Binder機制。
  • Android程序間的通信。
  • 說說自旋鎖,内部實作。
  • 問了線程同步,小金又說了sychroized,還是參考那篇部落格。
  • 是否了解Java的atomic,以及好多很底層的東西,記不清了,大部分都沒有回答出來。
  • 算法題:求解矩形起點到終點的最短路徑,隻能向右或者向下走,這是一道簡單的動态規劃題。
  • 詢問小金的基本情況,實習時間等。
  • 反問環節:詢問小金想要加入還需要提升那部分的知識,面試官建議多參加實際的項目。
    5214頁PDF的進階架構師學習筆記,靈魂拷問背景

三面(40min)

  • 自我介紹。
  • 項目中出現的難處以及解決。小金說的是使用addView達到彈出框的效果,但是耗時長。後來了解Fragment,使用Fragment代替addView。面試官追問能分析為什麼這麼慢嗎,小金就說了Android的Activity->PhoneWindow->DecorView->ContentView->WindowManager->RootViewImpl的繪制流程。面試官繼續追問ANR出現的類型,原因以及排查的方式。面試官繼續追問Fragment和Activity的差別以及Fragment的優點。
  • 說一下Android中多線程使用方式。面試官追問如何停止一個線程。
  • Handler的原理。Looper,MessageQueue,Message。面試官追問在一個Handler中給另一個Handler發送消息,小金其實沒太了解。
  • Java記憶體,回收的搜尋算法:引用計數和根搜尋算法。
  • 算法題:将一個32位的int型整數逆序,小金用的取整加取餘擷取每一位儲存在連結清單中,然後反轉連結清單。
  • 詢問小金的基本情況,實習時間,職業規劃等。
    5214頁PDF的進階架構師學習筆記,靈魂拷問背景

Hr面(20min)

  • 自我介紹。
  • 詢問小金的基本情況,實習時間,職業規劃等。
  • 給了口頭Offer。

總結:

各行各樣都會淘汰一些能力差的,不僅僅是IT這個行業,是以,不要被程式猿是吃青春飯等等這類話題所吓倒,也不要覺得,找到一份工作,就享受安逸的生活,你在安逸的同時,别人正在奮力的向前跑,這樣與别人的差距也就會越來越遙遠,加油,希望,我們每一個人,成為更好的自己。

  • 點選此處,與我們一起交流學習

檔案夾有以下學習筆記,自行下載下傳!

  • BAT大廠面試題、獨家面試工具包,
  • 資料免費領取,包括 資料結構、Kotlin、計算機網絡、Framework源碼、資料結構與算法、小程式、NDK、Flutter,
    5214頁PDF的進階架構師學習筆記,靈魂拷問背景

    括 資料結構、Kotlin、計算機網絡、Framework源碼、資料結構與算法、小程式、NDK、Flutter,

    [外鍊圖檔轉存中…(img-PoPaGvKU-1623138452187)]

    5214頁PDF的進階架構師學習筆記,靈魂拷問背景