1. 程式人生 > >有一種藍叫 APEC 藍

有一種藍叫 APEC 藍

       有如是解釋 APEC 者——Air Pollution Eventually Controlled。

       有說此次是繼零八後的又一次萬國來朝。絲路大略明確了,西域必通。站在歷史的遠處回眸,這是繼零八年後又一次全球歷史的轉捩點。

       昨天週六,學長拉著全司的人一起跑步,天天守著森林公園兒也不轉兩圈兒實在是說不過去。已是立冬,而園內踏秋採風者依舊絡繹不絕。我們一路跑一路拍。一次家門口兒處的旅遊。

       前端開發做得很被動,技術沒有挑頭兒的人就是這樣。從前端、後端服務、後端資料、後端運維這整條線上,基本上現在除了後端資料我還沒有碰,其它的都是我來處理的。資料部分,對於我,早晚的事兒。不著手,不放心。

       Web 前端還是太輕,使得能力受限。輕,也就做不到理想的 MV 剝離。比如貌似強大的 ng-repeat。Angular 算是很重的 Web 工具了,但面對一個從來就絲毫不考慮技術可行性的產品設想,我就自然希望手裡的工具是重到像 .net framework 或者 java 這種,尤其像我這種早就被重型裝備慣出來的工程思維。你無法向對工程成本價效比沒有概念的人解釋不定行垂直居中是件很困難的事兒,就只好調過頭來苛求還有沒有更重的 Web 工具可以用。

       討論這樣的一個產品設計,不定項,模板,一左一右,兩兩並列,多行輸出。用 ng-repeat,好,那麼問題來了,如何控制位置,有 ng-class-odd/even,我用 table 佈局呢?你要問為何要用 table 佈局,那我要反問你為何用 float 佈局了。

       所以只好用 directive 打包處理,這就退回到 jQuery 思維了,典型的 MV 不分。你要說分,也是分了,但和 HTML 權責不明瞭。你會用 C# 寫 XAML 嗎?

       如果非要用 ng-repeat + table 呢?有辦法,加工資料,對行做 ng-repeat。這就引出來 WPF 中我熟悉的一個概念,ViewModel,檢視模型,是建立在資料模型和檢視之間的一層。WPF 很重的,重到 ViewModel 有強大的實體存在,強大到笨重……Web 裡,一切都要自己來。當然,如果連 jQuery 思維都擺脫不了的話就免談什麼 MVC 了。

       非同步思維已經習慣了,是好事。非同步思維和函式式思想,都是應有的。

       公共域需要注意放在 scope 下的一個對像裡面不是直接掛在 scope 下,這就是值的深複製和引用的淺複製的區別了。明顯,公共域需要的是引用的淺複製。Angular 的 MV 裡,V 弱,VM 沒有,但 M 是真的強。這是 Angular 的 MVC 中最徹底的部分了。

       這 element.on 不支援 selector,符合 MV 權責分離的理念。但你也可以退回到 javascript 的 addEventListener 去遍歷 DOM 樹。這是手段的倒退,更是思想的倒退,最終是文明的倒退,“大開歷史倒車”……話說我還真用了。很無奈。行此無奈之舉,或是手段不夠精進,或是思想不夠高深。

       我寫著,通著話,那頭寶寶“扒拉扒拉”著 2048,就在我即將收筆時,那頭也玩兒盡了這一局,六萬多分,4096,我是不及了。