一流無線客戶端是怎樣煉成的

2021-06-27 05:28:18 字數 2328 閱讀 4676

還是自己去年寫的一篇老文章,今天又拿出來看了一下,感覺最近一年在技術方面所做的沉澱,的確都是圍繞著這些維度在展開,所以,後面自己的沉澱總結,也打算以這個作為骨架了:

經常會遇到一些同學,說無線客戶端開發沒啥的,就那些事兒,調調api、搭搭介面、搞搞快取,半年就熟手了。這時我會問他,那你能告訴我怎樣才能開發乙個一流的客戶端呢?也有一些涉足無線開發不久的同學,也會來問我這個問題,怎樣做才能開發出一流的客戶端。其實這是乙個很複雜的問題,我也給不出標準的答案,但是這又切切實實是我們需要達到的目標,所以,我們必須要把這個複雜的問題細化開,讓每乙個有志於開發一流無線客戶端的同學或者團隊,能夠看到一些達到目標的階梯,因此,我們就有了這個「塔基」專案的想法,希望通過已有的經驗積累和後續的努力,讓這個巨集偉的目標變成一步一步可具體實施的步驟。塔基,寓意為「基有多深,塔就能多高」。

從技術的角度出發,我們把塔基專案分解為8個部分,期望從8個不同的維度,來細化開發一流客戶端所必須的技術內功:

1.     **規範:

怎樣寫**?這個問題不需要我們來回答,對於每乙個開發工程師,都有自己的答案,但是,對於乙個團隊,乙個產品專案組,有沒有乙個共同的答案呢?**是一座建築最基礎的磚石,如果這些磚石都形狀各異,就算每一塊都堅固不摧,搭起的建築也是岌岌可危。所以,**規範不止是讓**美觀一致,更重要的也是有序的協調所有人的**,解決契合的問題。

需要乙份簡鍊的基礎**規範,作為每個人必須遵守的原則(長了不好執行),包括工程的結構、**的組織、命名等等。另外,還需要針對不同的主題,提供一些最佳實踐,比如如何處理記憶體警告,如何預防迴圈引用等。這些很多都是大家平時的經驗之談,需要持續的積累。

2.     設計要領:

如何做設計?設計可大可小,大到整體框架,也可以小到乙個簡單的設計模式,思路方法眾多,但是一些基本的原則,是可以有章可循的。比如如何降低模組間的耦合性,為什麼主張介面依賴而不是呼叫依賴,單例模式有什麼好處,適合用在哪些場景。同時,針對記憶體管理、併發管理、儲存管理等專題可以提供一些總結沉澱、原則和最佳實踐。當然,也可以有一些針對弱網路環境下的設計要領、介面調優、效能優化等專題內容。

3.     工具集合:

裝備是重要的!利用工具,可以大大提高我們的開發效率和質量。工具在整個產品過程中,都可以起到很大的作用,包括**的分析和管理,對產品質量的各個維度測試評估,輔助除錯,複雜環境的模擬等等。工具,並不是一定要自己來造,在業界已經有很多有用的工具和系統,我們所需要的,是將它們按用途收集整理出來。另外,對於一些特定場景和用途的工具,也許需要我們自己來開發,比如,現在我們就已經積累了一些很好的基於日誌的分析線上crash問題的工具。

4.     測試評估:

質量不能憑感覺。怎樣的應用才能認為是好的?我們的客戶端算不算是業界的一流?我們和真正的一流客戶端到底有多大差距,哪些地方還有比較大的提公升空間?這些都依賴我們的測試和評估能力。讓每個人都知道如何去評估乙個客戶端的好壞,如何從不同的維度去衡量,並且建立各個維度的標準指標,這樣,才能讓我們對我們的應用有底氣的去客觀評價,知道「天高地厚」,明白自己該努力的方向。要做到這樣,同樣需要有足夠的工具來幫助我們進行測試和評估,包括在穩定性、效能、記憶體消耗、儲存消耗、流量、電量、相容性、後台生命力等等方面。

5.     容錯降級:

同樣,不管發生了什麼樣的錯誤,都應該保障你的應用能夠「有底線」的處理。什麼是底線?不crash,不阻塞主要功能,不引起介面錯亂……,這就需要不管出現任何錯誤的情況下,都能有相應的降級方案。

6.     發布公升級:

如何送達使用者?由於客戶端公升級週期的特性,應用的發布和公升級也是乙個複雜的過程,如何管理眾多的渠道包,如何進行灰度發布,如何進行強制公升級,如何維護發布賬戶,如何進行動態部署和更新,等等問題,都是要確保讓正確的版本及時的送到相應的使用者手上。

7.     統計監控:

上線不是最後一步。你的應用在使用者手中到底使用狀況如何?哪些功能最受歡迎,哪些頁面通常都是使用者使用的終點,哪些模組最容易crash,等等這些統計資訊,你都需要去掌握,這樣才能持續的進行優化和改進。

還有如何主動的收集使用者反饋,如何建立線上除錯的機制等,都是對持續的改進應用非常有幫助的。

8.     安全風控:

安全無小事兒。但是在無線開荒拓界的這個特殊階段裡,大多的客戶端產品都將重心放在業務的建立和產品功能上,很少會考慮到客戶端本身的安全問題。然而,由於客戶端產品的特殊性,更新週期漫長,對於已發布出去的產品很難再掌控,所以,一旦後期安全問題爆發,往往後果嚴重,並且需要漫長的時間進行修復,在這期間仍然只能任人擺布(除非自己把應用下線),讓產品背上沉重的歷史包袱。所以,安全風控的意識,一定要從一開始就建立起來,從**的規範,到資料的保密、通訊的保護、放篡改等等。

說了這麼多,感覺是搭了乙個很漂亮的「花架子」,還沒看到什麼「乾貨」哦。好吧,我想說,我們今天就是想來搭架子的,有了架子,就容易找東西了。架子上的寶貝,就靠你我大家,接下來一起來攜手貢獻了。我有架子,你有寶貝嗎?

無線智慧型插座的Android手機客戶端軟體介面開發

該無線智慧型插座的android手機客戶端軟體利用android studio開發工具進行實戰開發,其開發詳細的實現過程如下。首先如下圖所示,找到manifests檔案下的androidmanifest.xml,滑鼠雙擊開啟 滑鼠雙擊開啟之後,如下圖所示,配置完的所有相應的引數 接下來就是如下圖所示...

客戶端是如何驗證https證書的

最近要做晉公升考官,得問點原理的東西,想問下https這種網路相關的問題,突然發現自己之前看的快忘光了,這裡記錄一下,以防止自己都不懂的尷尬 機構頒發的數字證書內容主要有兩個 數字簽名和伺服器公鑰 這裡的伺服器公鑰是什麼呢,比如我註冊了乙個www.abc.com 這個網域名稱,我想別人用https也...

乙隻健壯的爬蟲是怎樣煉成的

python新人,爬蟲玩的多了,漸漸的也有了自己的一些感悟,這裡不談具體操作,就寫了幾條自己的總結,每一條背後都是失敗的經驗教訓,當你把爬蟲 放心 的執行一晚上後,一大早起來發現程式早就異常死掉了,很多都沒爬到時,你就知道下面這些建議的意義了。1.爬蟲必須增加容錯處理,不能因為乙個錯誤就終止整個程式...