一切的重構都是有原因的,或許為了更快速度、更好體驗、更快捷開發等,於是就有了自己的開發目標,簡單看看未重構前UI("中國移動式"風格)。




上一篇文章說明調查了這么多類似框架,對比了他們的特點,而比對自身UI,也是存在可優化的地方,於是有了下面幾點目標(僅僅UI框架方面,不涉及原生部分)。
(1)規范開發
1.SVN版本控制。之前的UI框架部分是沒有進行svn版本控制的,於是會導致個問題——有些文件在多次修改后,連當初的開發者都不知道是不是最新的,存在爭議。而加上svn,使得代碼更加規范,有利於版本發布(打tag)。
2.職責確認。框架不是一個完成的,需多人協同,所以確立代碼模塊職責歸屬很重要,屬於誰的就誰改。
(2)依賴庫升級
1.zepto
最新版1.2.5的fixed了挺多問題,更換之后效果會好很多。
在這里不得不說一個zepto的庫的問題,就是觸摸模塊(zepto的基礎庫是沒有這個模塊的,要自己額外加)。
zepto使用touchstart、touchmove、touchend模擬出tap、longTap等事件,目的為解決click事件的300ms延時,但有個很大的問題是tap事件會“穿透”,“穿透”又會導致一系列問題。我認為最好的辦法是使用一個fastclick的庫,用回click事件(但是重構的框架不能更換,原因是這個框架已經是第二個版本了,開發者對tap事件使用已成習慣,變革帶來的代價太大了)。
PS:穿透:當兩個層重疊在一起時,使用Zepto的tap事件時,點擊上面的一層時會觸發下面一層的事件。
2.iscroll
原本是想升級到iscroll5,但iscroll5的用法改動太大,沒有延續性,並且嘗試多次效果不佳,於是次依賴庫就不升級了,還是iscroll4。
3.cordova
cordova的版本不是由我決定的,是由原生開發人員決定的。
4.require
這個作為模塊文件加載的利器,是單頁模式的好工具。
功能:
1.加載js文件
2.提供加載完回調
3.不重復加載
(3)單頁模式
在上一篇文章說過了單頁模式的優缺點,決定增加單頁模式。可能會有人說,現在的業務邏輯和功能那么復雜,用單頁模式將不負重堪(因為所有東西都在一個頁面上,處於內存的對象將越來越多)。
可是我想說的是,現在功能都是碎片化的(大應用),都可以分為多個組合模塊的,每個模塊都不會多大,每個模塊為一個單頁,將單頁和多頁進行混用,這樣模塊間互不相干,混合模式有不錯的效果!特別如果是輕應用(遠程頁面,僅web頁面),單頁有個非常好效果。
而我也用手機測試過,一個單頁應用,每次切換會產生大概1MB無法回收的內存,根據現在手機硬件條件(動不動幾G的內存),這個消耗我覺得還是可以容忍的。
(4)控件優化
1.刪除舊UI中,難用、易錯的控件。
PS:不刪掉,就會有人用,一用就會有問題反饋,到頭又要運維。
2.優化、增加好用的控件
- popup (from jingle框架)
- 側邊欄組件
- Tab組件
- 滑動列表
(5)bug修復
PS:什么框架都無法避免的東西。
總結
這一篇文章也是說明重構的一些目標。當然在最初的開發不一定能將所有開發需求都弄清,不過大目標卻必須明確,既然目標有了,那么下一篇講述開發的一些事。
本文為原創文章,轉載請保留原出處,方便溯源,如有錯誤地方,謝謝指正。
本文地址:http://www.cnblogs.com/lovesong/p/4296781.html