在研究了adr開發的MVC模式之后,我覺得M和C沒什么問題,挺好,但是這個V,我非常不滿意.
眾所周知,手機上不可能存放大量的數據,一個APP大多對應一個網絡數據庫,所以多數時候進行的是從數據庫上獲取數據M,經過處理后C,然后在界面上進行展示V.
這跟PHP寫網頁有啥區別啊?
在手機上放控件,就像網頁元素中的標簽+CSS,里面的數據,就是從數據庫中取出來的.但是不管是PHP,還是ASP,都有一種非常好的方法來存儲這些數據庫中獲取的數據,然后遍歷篩選后直接填入各式各樣的標簽之中.
我們寫網頁,可以很方便的用HTML+CSS+JS弄前端,然后置入從后臺獲取的數據,我覺得這個模式是非常好的.
但我們寫APP,發現完全不同了.
有人可能會說APP是程序,和網頁有天壤之別,不要混為一談.恩,這倒是,APP難度跟桌面應用開發難度相比, 簡直是幼兒園難度對標高等代數了.
我研究過手淘天貓,聯通移動的客戶端,我覺得跟網頁版沒任何差別,甚至是模仿網頁版的UI設計.
這跟程序有個毛線的關系,就是披著APP的殼的網站.
所以不要跟我裝B,你提到MVC,你就跟網頁脫不了干系,畢竟MVC就是寫網站的時候出現的一種思想.
不過在android這個MVC中的V,有幾點是不吐不快的.
放著成熟的HTML和CSS標準不用不借鑒,用最原始的XML標簽來建構.有人說HTML本質也是XML標簽,恩,這很對,但是你見過HTML里面的XML和樣式全部混在一起,沒任何可讀性嗎?既生成,且描述,即元素和樣式全擠在一起,這算什么鬼?所以這是一個讓我瞧不起的敗筆,你既然要講分離,你就要好好的分離.
另外,android提供了五花八門的所謂布局模式,絕對相對約束線性,似乎是想讓人膜拜谷哥工程師的技術實力,其實這都是狗屁.
所謂手機屏幕,對標的就是網頁容器,你見過網頁里面有這些亂七八糟的布局花樣嗎,一個CSS就能讓你實現任何你想要的效果,谷哥弄這么多亂七八糟的布局,還美名其曰為了適應各種手機的屏幕,真是讓我笑掉大牙,你見過不能適應各種顯示器分辨率的網頁嗎,你用手機瀏覽器上過網站嗎,那自適應效果比你不知道高到哪里去了,而且開發還簡單.
我就舉一個雙方都有的控件例子.比如button,都有width這個屬性,CSS里面設置50%,就能在所有尺寸手機中自適應.文本框,margin,padding,都能有百分比設置,但android就不行了,他是什么warp和match,非常惡心的感覺.
講真,要想自適應,最好的辦法就是百分比屬性,任何絕對的像素值都是不行的, CSS非常完美的實現了這一點,但android中所謂的DP,我根本不敢用,因為不具備任何的自適應特性.
最讓人惡心的是,最近安卓推廣約束性布局模式,就是說你們以前學的什么線性相對都會統統過時,有些小白就喜歡的不得了,其實對于真正的見多識廣的開發者來說, 這種換湯不換藥的小更改,耍小聰明,實則是增加開發成本,增加學習難度,不治本.真正要想治本,你就放棄這種亂七八糟自己都不相信自己的所謂布局模式,向成熟先進的HTML+CSS這種UI構建思想學習.
小結一下:谷哥沒有一個成熟的頁面展示思想,所以造成如今的亂七八糟的布局模式,另外在布局模式里面,元素類型和顯示樣式全擠在一起,一點都不分離,能讓人起雞皮疙瘩.開發起來效率極為低下.
第二個不滿之處,適配器
眾所周知, MVC開發之中,C是重點,是大頭,是難點,代碼量也最多.但android如今給我的感覺,就特么的就光想著怎么寫遠程數據怎么適配到各種亂七八糟的布局,怎么傳給屏幕上的控件了.
我們舉個例子,傳統S/C開發中,我們要獲取本月的訂單列表,可以向S端請求,請求到后,設置到C端控件中,即可展示了.
但是android開發中,你獲取的原始數據,你還不能急著去設置到終端,終端也不接受,你首先得把這些數據緩存起來,然后去寫一個適配器,連接數據緩存和布局,連接后,你還要控制第一個訂單子項的view,還要手動緩存這個view,當然你手機性能強也可以不緩存.
而這適配器的開發是完全要用戶手動的,谷哥不提供任何幫助,全特么的交給開發者了.
話說我有數據來了,你的OS就不能想個好點的方式趕緊接收了吧?
那人家寫桌面應用也有滾動框,上拉下拉,網頁開發也有大量數據需要上拉下拉,別人為毛不需要緩存呢?
因為谷哥不操心,本該由它自己實現的功能,全特么交給用戶來實現,導致所謂的APP開發就是日夜不停地寫適配器.
或許有人會說,全讓OS做了,那寫APP就太簡單了,完全沒什么快感了.
確實,一般的APP,就是增強版的網頁端,肯定沒什么意思了.
但是我們不能以此為借口,繼續做這種無用功的開發.
安卓,不僅開源的版本亂七八糟,極度碎片化,而且,它提供的開發包,也是亂七八糟,不成體系的,昨天天出一個說代表以后的先進開發方向,今天天馬上又出一個否定昨天的,明天又會有,這,實在是谷哥工程師的無能!!!