什麼是 alita js 社區

這個文章是昨天發在知乎上的,應朋友的意思,讓我在掘金上發一下。前端

從 alitajs 社區創建開始,一直會被問到 什麼是 alitajs 社區,它主要是作什麼的?ios

其實這個社區最先的時候只有我和 何樂 同窗兩我的。git

那時候,咱們在處理 Ant Design Pro@4  相關的問題,由於 Pro@4 須要使用 TypeScript 重寫,而我是在今年年初纔開始正式學習使用的 TypeScript ,因此有不少 TypeScript 相關的問題須要請教何樂。程序員

因而開始了,我和他較爲頻繁的技術交流。github

多是溝通的多了,咱們的想法也都比較多,他對雲存儲雲開發興趣濃厚,我對前端場景化封裝和開發工具編寫較爲感興趣,或許是相互以爲對方的研究方向,在本身將來的學習工做中,均可能會有接觸的可能,因而,咱們開始了相互吹捧相互鼓勵的交流,考慮到如今在許多部門內部,都有着作全員提效的 KPI 指標。因而拍腦殼,雲開發還沒到,先搞提效。web

由於咱們兩個都是 antd  和 umi 的狂熱粉絲,想着否則搞一個 umi 社團,後來討論,antd 和 umi 掛的名頭,都是螞蟻金服,咱們並無這個資格,否則咱們就本身搞一個唄。npm

因而在2019年4月1號的時候,創建了 alitajs 社區。前端框架

如今好了,社區有了,可是怎麼發展呢?咱們兩個都沒有經驗,我想總要有一個什麼東西可以吸引到其餘人的吧。antd

最終通過討論,結合了 umi 和 pro 項目在 issues 的常見問題,作了一個 umi 的腳手架封裝庫,alita 。架構

它剛開始只是做爲一個 umi 的配置簡化的腳手架,後來通過吸取社區的需求,發現,antd 團隊在移動端 h5 這一塊的響應需求較少,可是,使用 umi 作移動端開發的朋友卻不少。內置了這階段幫社區朋友開發的一些 umi 插件,達到了,在配置文件中設置 appType:'h5'  就能着手移動端頁面開發的效果。

當時,umi 對內提供 bigfish ,對外開源 umi 。我和許多朋友同樣,都十分的好奇,bigfish 到底和 umi 有什麼差異。其實官方在社區中已經給出了答案,bigfish 只是 umi 結合了內部流程和方案,而對內提供服務的一個 umi 插件集。那時候,我也在想,bigfish 何時會開源。 其實總有一種想法,藏起來不對外的,必定是個好東西。

開發完成以後,我想着,umi 在 螞蟻金服內部有幾千個項目檢驗,那我是否是應該實際項目中跑一跑 alita 。因而在一次,月報中,毛遂自薦了,alita 框架,大致的抄了 umi 的技術架構,而後結合使用 umi 的好處,和 alita 的好處一塊兒,一股腦的推給了領導。領導最終贊成了,在咱們的一個新項目中試用。和 RN 技術作了對比。多是 RN 的開發體驗太差了,顯得 alita 開發體驗良好。

項目上線以後,和領導討論了,使用 RN 開發的人員,能夠無縫的轉換到 alita 上,由於在配置和環境上作了大量的簡化,而在語法上是一致的用法。在只作減法,不作加法的技術更新的誘惑下,在咱們整個部門內落地了 alita。

後來,是有一個項目,須要打包成手機 apk ,要作混合應用。領導來問我,能不能作,alita 有沒有能力接。我就說有。心想着 cordova 可以把一個普通的 web 項目打包成 apk ,那確定能夠把 umi 的產物也打包了。

因而開發了 umi-plugin-cordova ,事實上並非這麼簡單。但最終在ios開發的幫助下,解決了一些問題以後。發現它居然莫名的好用。cordova 開發,居然也能夠熱加載了。

寫完cordova插件,我纔想明白了,bigfish 可能更多的是一種相似的場景化需求,他依託於阿里內部大量的服務支撐,作的更多的是對內部方案的調用和響應。因此其實不是給不給的問題,而是給了能不能用的問題。可是在社區中,是否是也有相似的場景化需求,或者第三方服務提供商的用戶,他們是否也存在共同的需求?

通過幾個項目的落地,領導以爲,後續部門內新增的項目,所有使用 alita 。(以上提到不少次領導,其實除了拍馬屁以外,我是想表達,其實領導喜歡,真的會更快的推動技術方案的落地)而後我就混跡在多個項目之間,把他們幾個項目的公共需求,結合到一塊兒,可以經過框架支撐的就經過框架支撐,不能的,就經過公共組件支撐。也是由於這個過程,我就在想,咱們內相同技術棧的就有這麼多的重複工做,那在社區上的不是更多嗎?

因而就開始在社區上推廣,加了三石 、王幸康 、 hang1017 和 陳杰 ,寫了rc-charts 和一些組件的封裝。

那時候DiamondYuan  開發了umi 的vscode插件 ,而我恰好想和五靈alibaba/kiwi把 alibaba/kiwi 的方案落地到 umi 中(雖然這個事情暫時被耽擱了),因此請教了 DiamondYuan。

後來,由於作 umi 的 keep alive 方案,加了 fi3ework 。

由於文檔方案 milady  加了 鬼厲 。

由於 alita 框架定位和 antd-icon  的一些問題,邀請了包子熊 。

後來,又由於 keep alive 方案,認識了 陳俊宇 ,(他的 React 中的狀態自動保存(KeepAlive) ,相信有些朋友都看過了)咱們在 umi 中有兩個方案嘗試:umi-plugin-cache-route 和 umi-plugin-keep-alive 。

期間還有其餘的一些朋友,據說了 alita ,也加入了咱們。雖然,有些朋友由於業務上的繁忙,沒有時間投入開源項目中;也有一些朋友,機智的將本身業務中的需求,提出來,讓社區裏的朋友幫忙實現,徹底享受着社區帶來的福利。其實,這些行爲都是 alitajs 社區提倡的。在平時交流中,分享一些技術和業務,老是可以給你們提供一些幫助。

回過頭來講,雖然咱們在公司企業的項目中不必定會選用本身的開發的方案,可是,在 alitajs 社區,咱們都會互相鼓勵造輪子,由於開源最大的樂趣就是開源。

經歷了9個月的發展,若是再有人問我,什麼是 alitajs 社區?

它是一羣抱着相互賦能相互提效想法的小夥伴聚在一塊兒作着一些簡單開源項目的團隊。

它是作什麼的?

alitajs 社區專一於業務開發,讓你無需關注底層技術實現。

恰好昨天有一個朋友在羣裏問:沉浸在業務中的程序員要怎麼突破迷茫期和瓶頸期?

我想加入 alitajs 社區,必定會對你有所幫助的。

umi 是螞蟻金服的底層前端框架,它好用好用好用,強烈推薦,而後若是大家用了pro@2+,大家就已經在用了umi。請給 umi 一個 star 吧! github.com/umijs/umi

相關文章
相關標籤/搜索