day 21-22 面試題:ButterKnife面試題,git面試題

1. 爲什麼要用ButterKnife
2. ButterKnife原理

1. 爲什麼要用ButterKnife

  1. 使用註解代替findViewById和事件綁定,簡化代碼,節省開發時間
  2. 能夠方便的處理Adapter中的ViewHolder綁定的問題
  3. 使用過程中不會影響app的運行效率和性能(編譯時註解)
  4. 代碼更清晰,可讀性更強

2. ButterKnife原理

實現原理

ButterKnife的原理就是利用註解和註解處理器針對每個Activity生成一個相對應的類,將原本需要手動編寫的findViewById的view綁定代碼和點擊事件監聽及資源id的綁定邏輯,利用註解處理器自動生成代碼。

ButterKnife的實現步驟:

  1. 定義註解
  2. 編寫註解處理器(Java項目)
    1. 掃描所有的ButterKnife註解
    2. 根據文件將註解分開
    3. 生成輔助類文件,調用findViewById方法,綁定View
  3. 在app中使用註解,並綁定當前的Activity即可使用

3. git

此文非git的面試題,主要寫一下TortoiseGit的操作。具體的Git分支管理策略普通開發人員用不到,此處不表。

git基本命令

3.1 集中式vs分佈式

  1. 集中式版本控制系統

    版本庫是集中存放在中央服務器的,幹活的時候都是用的自己的電腦,所以要先從中央服務器獲取最新版本,然後幹活,代碼寫完之後再將相應代碼提交到中央服務器。必須聯網才能夠clone和push。

  2. 分佈式版本控制系統

    個人電腦也可以有一個完整的版本庫,每個人在各自的電腦上編寫代碼,提交到本地的版本庫,然後同步到服務器,其他用戶也是一樣,在本地工作,不斷給服務器交換最新修改。

3.2 TortoiseGit的安裝

命令行之前寫過一次,本次不寫,只寫圖形化的一些操作。

  1. 首先準備兩個安裝包,git的安裝程序和TortoiseGit的安裝程序
    install.png

  2. 先安裝git的安裝程序,一路下一步即可,安裝完成後,所有程序中能看到Git文件夾,右鍵能看到Git_bash_here的菜單
    Git_bash.png

  3. 安裝TortoiseGit,一路下一步即可,安裝完成後,右鍵能看到如下的菜單
    TortoiseGit.png

  4. TortoiseGit設置用戶名和郵箱

    右鍵->TortoiseGit->Settings->Git,右側就能看到User Info,填寫下用戶名和郵箱即可。
    Settings.png

3.3 TortoiseGit的使用

Git和SVN功能類似,clone,push,pull等功能基本沒有區別,Git的強大之處主要在於分支的操作
開發者在本地建立自己的分支,編寫提交代碼,在未push到遠端時都不會影響項目代碼,而本地也可以維護一個分支,有自己的提交記錄,開發完成後再合併到主分支,push到遠端即可

  1. Git clone

    右鍵->TortoiseGit->Git clone,填入服務器地址即可拉取遠端代碼

    clone.png

  2. 新建分支(本地)

    右鍵->TortoiseGit->Create Branch

    CreateBranch.png

    輸入新分支名字,確定即可創建新的分支

    CreateBranch1.png

  3. 本地開發,提交到本地

    右鍵->Git Commit(後會跟當前分支名)

  4. 切換分支

    右鍵->TortoiseGit->Switch/Checkout

    SwitchBranch.png

    選中本地的主分支,然後確定即可切換到主分支

    SwitchBranch1.png

  5. 合併分支

    右鍵->TortoiseGit->Merge

    merge.png

    選擇需要合併到主分支上的分支名稱,確定

    merge1.png

  6. push

    將本地合併完的內容push到遠端對應的分支

    右鍵->TortoiseGit->push

push.png

push上去之後,showLog即可看到對應的日誌,從分支的提交記錄能看到先提交到NewBranch然後和Master合併的

push1.png

  1. show Log

    右鍵->TortoiseGit->show Log,這樣就能看到當前分支的提交記錄

  2. 刪除分支
    前半部分和切換分支一樣

    右鍵->TortoiseGit->Switch/Checkout

    分支名字後面,點擊打開分支引用,在分支上右鍵,即可重命名和刪除分支

deleteBranch.png

  1. 更新版本庫

    從安全的角度說,提倡Fetch然後Merge

    pull(拉取):從遠程拉取最新代碼併合併到本地庫

    Fetch(獲取):從遠程拉取最新代碼到本地,並不會Merge

  2. 比較文件差異

    選中文件,右鍵TortoiseGit->diff,可以看到當前這個文件本次修改了哪些內容。

  3. Git衝突解決

    衝突是避免不了的

    做到以下幾步能避免大部分Git衝突

    1. 明確的代碼提交規範
    2. 及時獲取新版本代碼
    3. 修改後及時提交

    Git衝突:

    1. 兩個人同時修改同一個文件名,其中一個人提交後,另一個獲取後再使用(商定好文件名)
    2. 內容衝突,拉取邏輯後,解決衝突後再提交
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章