項目開發與維護的艱辛眾所周知,在複雜的需求和有限的時間內,我們希望集中更多精力在項目業務本身,而非受困於紛繁雜亂的文檔、難以溯源的崩潰、錯誤頻出的協作和無從下手的優化。
由此,為開發者「減負」的Alita應運而生。它是一套基於Umi的移動端框架,是面向場景化的開發提效方案。通過整合業務流程、簡化技術開發,使得開發者能夠更專注於業務能力的提升,並且榮獲開源中國「2019年度最受歡迎中國開源軟體」評比的前十名。
01前端開發常見的問題
隨著這幾年前端工程化的發展,更多更複雜的業務被交到前端開發工程師的手上。前端開發已不僅僅是編寫樣式和邏輯代碼,更多涉及到前端代碼的可靠性、可維護性、可擴展性、應用的性能和開發效率等各方面的思考。
暫且拋開工程化的技術不論,光從業務開發上,就常常會遇到以下幾類難題:
表單開發:表單控制項如何控制綁定關係正確,校驗麻煩如何避免?可視化圖表:市面上有多個不同的可視化方案,如何選擇?每個都有大量的文檔,從何處開始閱讀?上拉加載更多:列表頁面是最常見的需求,卻是最複雜的邏輯。如何避免重複編寫,提高控制項的使用效率和複雜邏輯的復用率?路由配置:路由配置如何編寫、如何嵌套,多人維護同一份配置文件,代碼衝突如何有效規避?整體布局:某些頁面需要底部導航,某些頁面需要頂部導航,該寫在哪、怎麼統一?
02我們想做什麼
隨著業界的不斷發展和新技術的不斷湧現,越來越多的開發者開始注重自身的開發體驗。帶著這樣的終極目標,Alita開始逐步探索低門檻、高性能、易拓展、高效率的開發與維護方案,通過可插拔的特性,提升開發者體驗,讓開發者更多地專注於項目本身。並且提供大量的快速業務支撐方案,釋放開發者在業務上的壓力。
Alita全業務流程解決方案
Alita不僅僅是一個框架,更是一種開發提效生態;它基於umi、實現黑盒運行、提供無感升級、契約編程、提供方案集成和強制規範。
Alita框架對接「資產市場」和「服務對接」,輸出「產品形態」和「應用類型」。
03我們如何做
基於組件化開發思想,眾所周知,將頁面拆成合適的組件,會使代碼更加可讀和可維護,也使得組件復用更加便利。由此,我們將項目分解成多個獨立的頁面,使得開發項目日常更容易維護,這消除了很多意料之外的頁面交互,大大的降低項目的複雜度。
很多現有的react方案雖然做到了這一點,但仍需通過配置文件,或者項目主入口文件,將應用串聯在一起。Alita則做的更好,它將配置的路由改成約定,採用文件及路由面向契約編程的方案,移除項目中的路由配置文件。
針對不同的業務場景,通過封裝一整套解決方案的方式來支撐,使得開發者用最少的精力和最小的學習成本編寫最簡單的代碼來實現最健壯的功能。
配置化:編寫頁面通用導航,原始實現需要編寫大約250行代碼,頁面配置化之後,只需一個配置,一行代碼即可實現。lowcode的模式,在垂直場景下能夠讓研發更高效。
契約化:不按項目約定的目錄組織代碼,將無法運行等。
規範化:內置eslint和prettier,自動修復空格和換行等小錯誤,強制編碼規範,不符合規範的編碼都會自動報錯。
04有什麼好處
通過統一技術框架,達到多個項目基礎技術棧的同步。
通過整合業務,實現多個產品中的優質功能能夠共享到其他的項目中。
簡而言之,Alita改變了原有對單個項目的獨立管理,更專注於對整個技術方案的共同維護,使得技術棧維度體現了相互互補、相互支撐。目標不僅僅是產品能力的相互支撐,還有不同項目成員的靈活交換支撐。它協同所有項目成員採用相同的技術方案,使每個頁面完全相互獨立,以此保證不同項目具備「有效調整實時支撐人數」的能力。根據項目的輕重緩急,大大的增加需求單的完成量。
通過多個項目的共同沉澱,導出前端開發的最佳實踐方案。還可以針對特定業務線,整理出更加合適的垂直領域的個性化項目構建體系。
05面向開發者友好
對於業務和功能的封裝,Alita都以「能不能只寫一行代碼就實現」的角度去設計和思考。針對當前業務上遇到的難題,拋棄「以後可能有的需求」的思想,進行針對性封裝,在實踐中遇難題解決難題,對組件進行擴展升級。同時Alita具備導出升級方案,在實際項目中擁有使用一行代碼解決業務需求的組件。
基於2019年大半年的項目沉澱,它已經完成了許多高級且有趣的組件庫。比如,
規範化整體布局:
alita-layout組件採用小程序布局的開發理念,即非開發人員能夠通過簡單的頁面組件配置完成整體頁面布局開發。
動態化表單:
alitajs/dform通過算法區分入參數據,提供了兩種使用方式。一種是用戶可以獨立的、單個使用子組件,通過不同的組件屬性和特性去完成表單的展現;另一種是通過json格式數據動態解析表單的結構組成,每一個元素的展現也是由動態渲染生成。
上拉加載更多:
alitajs/list-view基於@umijs/hooks,對「下拉加載」和「上拉刷新」的邏輯進行封裝,避免了多數開原始碼中可能存在業務邏輯和組件算法邏輯分離不充分,使得在寫列表頁的過程中,不需要再重複編寫任何相關邏輯代碼的問題。
另外還有許多高質量的方案,在這裡就不一一羅列了。相信在未來的實戰中,我們會解決更多開發的痛點和難點,導出更多高效的解決方案。
06Alita的推廣、提效數據
組件方案和交付場景方案優化:
通過各種解決方案的方案集成,著力於解決除需求流程和設計流程以外,70%開發者在開發過程中遇到的問題。
組件化方案:
通過優化設計到研發的工作流程和組件生產過程,減少開發人員40%的不必要的溝通、研發耗時。
編譯過程優化:
通過插件化第三方方案件和自定義方案的方式,輕量化代碼結構,減少編譯時的代碼量,從而減低編譯耗時提高開發、開發自測、打包等耗時。
07展望未來,做到更好
總結2019年的成果,2020年我們更加期待它的成長和表現!
Alita1.0完成了10項核心能力建設:
Alita2.0測試版本計劃已在3月中旬發布,包含了業務組件的封裝、內置數據流、H5通用化布局等具有特點的核心能力。
例如:業務組件的封裝,加強了用戶在開發過程中對於底層代碼的開發耗時;內置數據,提供了開發者快速使用mock數據的研發模式;H5通用化布局則讓alita能夠在pc端和移動端之間自動適配布局樣式等。
另外為了解決在未來統一前端方案之後如何跨平臺適配的問題,alita規划具備pc端和小程序的跨平臺適配能力。
除此以外,它還將在未來提供更多、更優、更易用的業務方案。
更多相關信息請關注:
開源庫https://github.com/alitajs/alita
官網https://alitajs.com