你瞅著來氣不?作為一名安卓技術總監我每天只會瞎BB,不幹活兒

你瞅著來氣不?作為一名安卓技術總監我每天只會瞎BB,不幹活兒

當年多少次做夢都在想以後能不能做到那樣的一個程度,可不可以自己不用幹活在旁邊指揮指揮就好,輕輕鬆鬆就拿錢,而且是超高那種。後來發現完全是兩碼事,如果我們不能在短時間內做調整,我敢保證累不死人。多人的開發班子,多條業務線,反正別人做不了的你都得上,關鍵是還有人給你挖坑。

你不做沒人做,你不抗沒人抗

。以下是個人的一些“套路”,團隊人數不一樣,公司性質不一樣,都可能不一樣。套路是這麼個套路,僅供參考。

培訓

有的時候放權,結果卻讓人吐血。如果事事都得自己來那麼會很累,但是若不自己來心裡總覺得不踏實。這個時候我們最好選擇培養一到兩個人,具體視團隊成員而定。給他們洗腦打雞血,把目前所有的經驗和知識分享給他們,最好是要讓他們能夠超過我,能夠取代我甚至可以讓我滾蛋。

為什麼不是所有人,就像西遊記裡面師徒四人一樣,很多人都是沙和尚,別跟我講什麼價值觀什麼使命感什麼以後,我就喜歡按時上班按時下班按時拿工資,福利可以分我其他什麼都別跟我扯。

對於這種你要花很多的時間,他們都有這自己的“經驗和習慣”,說什麼都是一副“莫挨老子”的氣勢,短時間內根本沒辦法“洗腦”成功,但是團隊裡面少了他們也不行。所以專案不是很急的時候,面試一年的經驗和三年的經驗對於我來說沒什麼兩樣,需要看你的學習方式和態度,你對知識的追求,因為剛開始我也不需要你幹什麼。

為了提高效率和穩定團隊成員,還需要抽出20%的工作時間來作培訓和交流,作為碼農你給我講制度,講懲罰,講一大堆都代替不了我們一行行去寫程式碼,最直接的方法就是讓他們做的更快更好,若是能比IOS開發週期短,程式更穩定,他們會非常高興,當然這些需要知識和經驗的積累。這些時間我們一般會做三件事情:任務完成情況,技術實現方案討論,學習與講座。

你瞅著來氣不?作為一名安卓技術總監我每天只會瞎BB,不幹活兒

開發

只要是作為團隊成員那麼你就不應該離開程式碼和文件編寫,而只做架構圖或者乾脆讓別人來代替,且不說別人怎麼看你,就單單拿系統來說,後面需要救火的時候別人下班走了,請問你怎麼救。而作為系統的負責人,必須親手領導參與建造,才能有足夠的能力去擔起這個責任。所以剛開始你必須有一半的時間來參與開發工作,所以上班的第一件事應該是把手機放進抽屜做到物理隔絕,然後開啟IDE開始擼碼。當然沒必要什麼都寫:

1。設計搭建架構

這個是最重要的一步,而且很繁瑣,不畫設計圖上來就寫程式碼的技術員,越到後面越慘,而且慘得不行,當然如果你很喜歡縫縫補補,喜歡天天加班倒沒什麼,我就不信那麼多東西你能全記在腦袋裡,奇了怪。對於其他成員來說,架構在分工合作,提高質量,提高開發速度和舒緩開發者心情上面起了決定性的作用。

可以多關注程式碼架構,很多人喜歡關注執行時架構,當然執行時架構是不可少的。程式碼架構是更加穩定的設計方案,一旦發生一些小的需求變化,執行架構肯定會有變化,但是大的方向往往不會變化頻繁,因此我們可以根據大的方向來組織程式碼,劃分模組。所以這個不能亂,一旦亂了不管你怎麼調整還是會問題百出。

2。難點關鍵開發

對於部分難以實現的程式碼我們還是得自己來,在一些中小型企業,如果這些讓別人來做,到頭來還是給自己找麻煩。質量底下的程式碼會造成故障和Bug,後面一旦出現問題也會消耗更多的時間成本,本來人手又緊後面還要到處救火,會導致天天加班而出不來專案。還有部分成員往往沒那個能力,你讓他去實現可能導致功能雖說實現了,但是可控性並不高,一旦需求稍有變動會出現各種問題,出問題沒什麼,關鍵是他根本不知道怎麼解決。在大公司,團隊成員普遍素質比較高,這種現象倒是鮮少出現,但是核心程式碼我們最好還是自己操刀。

3。各種救火

架構部分程式碼往往是最容易出現問題的程式碼,隨著需求的不斷改變有時需要調整,嚴重的還可能會出現Bug,有時還需要防止成員copy你的程式碼另起爐灶,當你改程式碼的時候要改多個地方也比較麻煩。團隊其他成員寫的程式碼也時常出現Bug,往往他自己不能解決這個時候你就得幫忙。當然找問題的過程本身也可以提高技術水平,關鍵是要讓自己和團隊的成員學會使用各種診斷工具,學習思考和分析問題。

你瞅著來氣不?作為一名安卓技術總監我每天只會瞎BB,不幹活兒

管理和學習

1。程式碼稽核

需要讓團隊認識到程式碼審查是為了提高整個團隊的能力,而不是針對個體設定的檢查“關卡”。另外,程式碼審查本身可以提高開發者的能力,讓其從自身犯過的錯誤中學習,從他人的思路中學習。如果開發者對這個流程有牴觸或者反感,這個目的就達不到。

在程式碼審查中如果發現問題,對於被發現者,不主張使用這個方式予以懲罰。軟體開發中bug在所 難免,過度苛求本身有悖常理。更糟的是,如果造成參與者怕承擔責任,影響積極性,程式碼審查就沒有任何的價值和意義。

2。進度稽核和任務分配

任務分配是個大問題,而且又是一個權勢的工作,成員面對一個任務時,往往不能正確、合理地安排時間。如果出不來,會給你若干理由,比如很忙,造成任務延期或者加班,最後造成整個專案的延期。怎麼避免這種情況不能讓班子成員各搞各的,我們自己得有一套任務分解,任務描述和時間分配原則,風險管理和計劃餘地,首先是自己能夠把事情做好,然後可以把他分享給團隊成員。

3。面試和各種會議

準備一份有區分度的筆試題目,不靠譜的人多了去,自稱多少多少年經驗。但你要他寫個倒計時往往都寫不出來,這麼個題目我們送走了很多人。老闆不是花錢請我來和他們聊天的,所以我通常會問四個方面的內容,原始碼、設計模式、最佳化、NDK。對於應屆畢業生,我往往倒不是特別關注技術,也不需要他目前能實現各種功能,很多東西我可以自己來可以寫好讓你調。所以我比較關心學習態度、上進心、聽安排、別惹事,這方面HR往往比我們看得準。

部分會議我們可以抵制,能不去就不去。尤其是部門溝通會能躲就躲,那是扯淡者的天堂,測試、產品、設計比程式設計師能扯的多了去。如果還有一個功能等著你去寫,你會很蛋疼。這個時候你可以派一個人去一下就好,回來讓他告訴你發生了什麼。

4。學習

學習一停我們基本就死了,把手機放抽屜也是為了讓我們在閒下來的時間可以去學。而我一般選擇多寫文章,多參加技術沙龍多與別人交流,選擇週末多看看別人的框架原始碼等等,反正我的狀態大家基本瞭解,週六日晚都在給大家做直播分享。只有這樣自己才能得到提升,專案才能做到可控,只有這樣才能去影響團隊成員而不是靠說,當然該說的還是要說。

儘管我們現在還沒有做到那樣的一個程度,但學會像一個技術總監一樣去思考問題,積極樂觀的心態非常重要,學習、思考、努力、利他,day day up!

你瞅著來氣不?作為一名安卓技術總監我每天只會瞎BB,不幹活兒

路線和方法

在結尾處我希望分享一些Android開發的學習路線及學習筆記給大家,這也是我這麼些年工作中不斷試錯覆盤得來的心得總結,面向有想法向Android中高階進階的同學,有興趣的同學,可以再花2分鐘的時間往下看看。

架構師築基必備技能

目前Android APP開發主流語言就是Java語言,Java語言最大的特性就是提高了軟體的互動可能性,可以說安卓手機幾乎所有應用程式都是利用Java語言來進行編寫的。

知識要點:

1、深入理解Java泛型

2、註解深入淺出

3、併發程式設計

4、資料傳輸與序列化

5、Java虛擬機器原理

6、高效IO

設計思想解讀開源框架

隨著網際網路企業的不斷髮展,產品專案中的模組越來越多,使用者體驗要求也越來越高,想實現小步快跑、快速迭代的目的越來越難,外掛化技術應用而生。如果沒有外掛化技術,美團、淘寶這些集成了大量“app”的應用,可能會有幾個g那麼大。

所以,當今的Android移動開發,不會熱修復、外掛化、元件化,80%以上的面試都過不了。

知識要點:

1、熱修復設計2、外掛化框架設計3、元件化框架設計4、圖片載入框架5、網路訪問框架設計6、RXJava響應式程式設計框架設計

360°全方位效能調優

在不同層次的開發工程師手裡,因為技術水平的參差不齊,即使很多手機在跑分軟體效能非常高,開啟應用依然存在卡頓現象。

另外,隨著產品內容迭代,功能越來越複雜,UI頁面也越來越豐富,也成為流暢執行的一種阻礙。綜上所述,對APP進行效能最佳化已成為開發者該有的一種綜合素質,也是開發者能夠完成高質量應用程式作品的保證。

1、設計思想與程式碼質量最佳化

2、程式效能最佳化

啟動速度與執行效率最佳化佈局檢測與最佳化記憶體最佳化耗電最佳化網路傳輸與資料儲存最佳化APK大小最佳化

3、開發效率最佳化

分散式版本控制系統Git自動化構建系統Gradle

4、專案實戰

啟動速度流暢度抖音在APK包大小資源最佳化的實踐優酷響應式佈局技術全解析網路最佳化手機淘寶雙十一效能最佳化專案揭秘高德APP全鏈路原始碼依賴分析徹底幹掉OOM的實戰經驗分享微信Android終端記憶體最佳化實踐

Android框架體系架構

Android框架體系架構(高階UI+FrameWork原始碼) 這塊知識是現今使用者最多的,我們稱之Android2013~2016年的技術。

Android開發者也往往因為網上Copy程式碼習慣了而導致對這塊經常“使用”的程式碼熟悉而又陌生:熟悉的是幾乎天天在和它們打交道, 天天在複製這些程式碼 ;陌生的是雖然天天和這些程式碼打交道,但是並沒有深入研究過這些程式碼的原理,程式碼深處的內涵。

本篇知識要點:

1、高階UI晉升2、Android核心元件3、大型專案必備IPC4、資料持久與序列化5、Framework核心解析

NDK模組開發(音影片系列)

NDK(Native Development Kit縮寫)一種基於原生程式介面的軟體開發工具包,可以讓您在 Android 應用中利用 C 和 C++ 程式碼的工具。透過此工具開發的程式直接在本地執行,而不是虛擬機器。

在Android中,NDK是一系列工具的集合,主要用於擴充套件Android SDK。NDK提供了一系列的工具可以幫助開發者快速的開發C或C++的動態庫,並能自動將so和Java應用一起打包成apk。

本篇知識要點:

1、NDK開發之C/C++入門2、JNI模組開發3、Linux程式設計4、底層圖片處理5、音影片開發6、機器學習

Flutter學習進階

2020 年無疑是 Flutter 技術如火如荼發展的一年。

每一個移動開發者都在為 Flutter 帶來的“快速開發、富有表現力和靈活的 UI、原生效能”的特色和理念而痴狂,從超級 App 到獨立應用,從純 Flutter 到混合棧,開發者們在不同的場景下樂此不疲的探索和應用著 Flutter 技術,也在面臨著各種各樣不同的挑戰。

本篇知識要點:

1、Flutter跨平臺開發概述2、Windows中Flutter開發環境搭建3、編寫你的第一個Flutter APP4、Flutter Dart語言系統入門

……

微信小程式開發

微信小程式作為現在比較火的程式設計開發應用場景之一,深受市場的青睞,這讓不少開發者眼饞不已。但是對於初學者來說,就完全摸不著頭腦了,不知道微信小程式開發製作需要學習那些知識,有需要的朋友可以參考本篇。

本篇知識要點:

1、小程式概述及入門2、小程式UI開發3、API操作4、購物商場專案實戰

Android相關原始碼解讀

只要是程式設計師,不管是Java還是Android,如果不去閱讀原始碼,只看API文件,那就只是停留於皮毛,這對我們知識體系的建立和完備以及實戰技術的提升都是不利的。

由以上完整學習筆記pdf如有需要,請體諒下師兄我歸納不易,點贊+評論 支援下我,然後點選這裡免費自取!