Web開發轉向移動開發 我是這樣做到的
我的職業開發生涯是作為一個Web開發人員開始的,使用的是PHP。不久后,我切換到.NET生態系統,使用C#和ASP .NET MVC框架 來繼續搞web開發。我一直以來創建的都是Web應用程序,直到最近……
幾個月前,我開始用Android和iOS來開發移動應用程序,然后多虧Xamarin,我依然可以使用C#。我之所以寫這篇文章是想分享一下我做了這個改變之后的感受。
為什么下這個決定
你可能會問,為什么我會決定從Web開發轉向移動開發。因為我想要做一些新的東西以學習新的技能,雖然在web編程上我仍然有很多需要學習的地方。
我認為,移動app有一個前途光明的未來,雖然已經有很多app存在于網上的商店里。但是,新的移動設備來了,如智能手表,它們是開發人員嶄新的機遇。這是一個學習如何為移動設備創建應用程序的很好契機。
更何況我目前就職的公司恰好有這個機會能夠使用我最喜歡的語言(C#)來開發新的Android和iOS應用程序,那么為什么不利用這個機會呢。
新的編程模式
我知道編程的方式是會變的,這從我以前經歷過的一個叫做Windows Phone的項目,一同參與開發移動應用程序時就已經得知。但我還沒有準備好要做什么,并且也不認為我能做好準備。
不像網站中的應用程序有特定的生命周期,你不能只是用響應來回復請求。幾乎所有我從構建Web應用程序中學到的東西都不能幫助我——范式是全新的。
在這個領域中,異步編程是強制性的,因為如果一切都運行在用戶界面(UI)線程上的話,應用程序會停止。我一直都想提高自己在這方面的技能,而且也被我找到了一個實現這個目標的好方法。
分離關注點也不同,不再有Model View Controller(MVC),使用的是Model View ViewModel(MVVM)模式。即使我已經用過(在WPF和Windows Phone中),但并不是在同一水平,我仍然有很多東西需要學習。
當然,你還必須使用模擬器來測試應用程序,每次要測試的時候,你都必須建立并部署模擬器,你不能只是刷新頁面來看發生的變化。反饋環很長,大多數時候都需要幾分鐘才行,因此調試會很慢也會很重要。
走出安樂窩
我大概在兩個月前,開始工作于應用程序,并且現在仍然有很多東西需要學習。我需要處理兩個我完全不曾涉足的生態系統(Android和iOS), 兩 個我一無所知的框架(Xamarin和MvvmCross)和一些并不容易滿足的業務需求。不過,幸運的是,至少我知道如何使用C#。
現在的我每天都在奮斗,我有很多東西需要考慮,主要的就是一些與我新的開發環境相關的“怎么做?”的問題。還有很多“如果…怎么辦?”的問題:“如果網絡不可用,怎么辦”,“如果這個解決方案太慢,怎么辦?”,“如何為客戶提供最好的體驗?”……
有時候,我一整天都沒有辦法產出任何東西,說實話,那個時候我會覺得自己真沒用,是個欺世盜名之徒——既然我不能在工作上生產出任何有價值的東西,那么怎么能認為自己是一個專業的軟件開發人員呢?
嗯,我覺得這種感覺就像走出自己的安樂窩,正處于學習階段的一個峰谷中。
有峰谷的學習速率
不放棄
不過我不是唯一一個正在轉換的人,我不是一個人在戰斗。團隊中的所有人都不得不面對相同分量的學習,高級開發人員和初級開發人員皆是如此。
現在回過頭去看我這兩個月的歷程,我認識到,我還存在著各種不足,需要走的路還有很多,但我也學到了很多東西,比如說現在對于異步編程和那些MVVM模式的概念相對而言熟悉多了。
如果我想成為一個專業的移動開發人員,那么我依然需要繼續學習,繼續完成我的旅程,學習我缺乏的技能,產出符合客戶期望的價值。即使我的工作時不 時 地讓我苦不堪言,但是我不后悔,因為這是一個非常棒的學習機會。不管花多少時間我一定會成功。對了,以后我會分享一些Xamarin的技巧和竅門。
希望下次再見!