本文由做者 KunMinX 原創,與 7 萬進階讀者共同向上生長 🔥git
很高興和你們見面!github
上週五我在掘金髮表了 《真香警告:即便不用餓了麼訂餐,也請務必收藏好該庫!》,文中主角 Linkage-RecyclerView 本來只是爲 《RxJava魔法師》 這個項目的需求而存在的,沒想到在各路讀者的積極參與下,讓一個原本默默無聞的項目,在內容發佈的第三天,登錄 GitHub 今日趨勢 Java 專區榜單前三,並在 5 天內作到 GitHub star 從 0 飆至 666。(不要慌,項目連接文末已給出)架構
在此我首先特別感謝熱心讀者的見證和參與。掘金社區、WanAndroid 讀者對源碼的認真閱讀和交流,讓我備受感動。post
開源這個項目的初衷有兩個,一個是方便讀者藉助該項目深刻理解,當咱們爲項目選擇架構時,選材的依據是什麼。ui
就我當前的認知來看,項目開發,無非就是顧及 「配置解耦」
和 「職責分離」
這兩件事。編碼
對於通用必用的控件庫和組件庫,咱們能夠將其抽取成模塊,作成可供多個項目依賴的第三方庫。設計
第三方庫的目標是讓使用者無需瞭解內部邏輯、經過外部簡單的配置便可輕鬆上手,於是第三方庫適合使用 MVP 架構,來實現 「配置解耦」。code
對於多人蔘與的主幹工程,咱們須要確保 UI 和 業務之間能夠分工給不一樣的人協做,這就要求架構必須具有 「關注點分離(SoC)」 或 「職責分離(SoD)」 的特性。cdn
於是咱們能夠在主幹工程中採用目前主流的關注點分離架構 JetPack MVVM,或者由我自主設計並在公司項目重構中採用的職責分離的 VIABUS Architecture。blog
開源這個項目的另外一個原因是:
有些事我都已忘記,
但我如今還記得,
在一個晚上,
同事阿左問我,今天怎麼不開心。
...
我說在個人想象中,有一個開源庫,
不同凡響最時尚,接入確定棒,
整個 GitHub 找遍全部的 Repo,都沒有。
他說未來會找到的,
時間,時間,會給我答案。。
哈哈,開玩笑的。緣於,公司某個項目中的另外一個需求:爲多級聯動表單動態綁定數據。
用過 Spinner 的讀者都知道,原生的 Spinner 在 onSelectItem 回調中存在延遲的 bug,雖然延遲只有 100ms,但對於哼哧哼哧地裝載、綁定、協調錶單數據的多級聯動表單來講,實在是致命的錯誤。
於是在那天晚上加班改需求的時候,我很是盼望着找到一款當下就可使用的 PopupWindow + RecyclerView 實現的第三方 Spinner 開源庫。
然而,現實卻和我開了個大玩笑,我尋遍了 GitHub 倉庫,嘗試了若干個項目,都是隨便糊弄兩下、高度耦合的我的練手項目,這對於急着改需求的我來講,無異於火上澆油。
因爲狀況緊急,我選擇求助於同在加班的阿左,沒想到,阿左竟然在項目閒時本身封裝了一個 Spinner 庫。
雖然一眼望去,Adapter 三方邏輯的解耦程度還有待提升,但這個庫既然能獨立存在、經過幾行代碼便可調用,對於彼時的我來講,就已是最豐盛、最美的食物。
因而我堅決果斷地將該庫用在了項目上,在幾經嘗試後,表單初始化數據終於如願地正常加載。
最後總結一下你們都關心的,如何讓本身的做品能被更多地訪問、讓 GitHub Star 數一路爬升:
———— 向用戶提供價值。
什麼是價值?人們對一件事物有需求,這件事於是有了價值。
人們有什麼需求?人們面臨着什麼困境?這是每一個想要服務於大衆的人都要首先考慮明白的。
換言之,咱們所作的每一件事,都務必精準地化解目標用戶的痛點,惟有如此,纔有機會在紛雜的信息中脫穎而出,讓做品受到用戶的青睞和珍視。
每一個人服務的領域不一樣、目標用戶也不一樣,於是用戶痛點須要本身在平常生活中投入大量精力去思考和領悟,這也是爲何文章我一週最多隻更新一篇的緣由。
在 Linkage-RecyclerView 開源的短短几天裏,我累計提交了 49 次代碼、多達 9k 行的代碼變更。
用戶不是傻子,代碼是好是壞,一眼就能看出來。惟有一絲不苟地對待工程設計和編碼,纔有機會讓用戶感到肯定和安心。
想讓精心打磨的做品讓更多的用戶接觸到,就要敢於在社交場合展現本身的價值。產品最終都是服務於人,務必多與用戶溝通,讓產品和我的品牌往更好的方向發展。
固然,口說無憑,如下貼上 別處看不到的、且你們喜聞樂見的 羣聊學(chui)習(shui)交流截圖:
考慮到我在技術社區發文,應以技術分享和經驗交流爲主。想一睹羣聊現場的朋友,請移一步到個人同名公衆號原文閱讀。
GitHub 項目連接:github.com/KunMinX/Lin…
看不過癮?這裏只爲你 而準備了一份 簡潔有力的 《重學安卓》認知地圖 😉