我是如何從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的技巧和竅門。
希望下次再見!
譯文連結:http://www.codeceo.com/article/from-web-to-mobile-dev.html
英文原文:From web to mobile development
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- 移動前端開發和 Web 前端開發的區別是什麼?前端Web
- 被‘辭職’後,我是如何從安卓開發轉型大資料開發的安卓大資料
- 移動web開發總結Web
- 從Facebook看移動開發的發展移動開發
- 移動開發之我見移動開發
- 移動web——移動web開發簡介,WebStorgae簡介Web
- 我的移動開發春季歷程移動開發
- 我們的移動混合開發之旅
- 移動web開發小貼示Web
- web移動開發總結(六)Web移動開發
- 移動web開發之touch事件Web事件
- 我是如何從通訊轉到Java軟體開發工程師的?Java工程師
- 移動前端開發和Web前端開發的不同點介紹前端Web
- 來黑馬程式設計師從零學前端與移動開發----移動web開發----伸縮佈局程式設計師前端移動開發Web
- 移動端 Web 開發踩坑之旅Web
- 10個Web移動開發JavaScript框架Web移動開發JavaScript框架
- 移動web開發之視口viewportWebView
- HTML5移動Web開發指南HTMLWeb
- 移動Web前端開發資源整合Web前端
- 我是如何從技術轉向產品的
- 移動web開發之移動端真機測試Web
- 移動 Web 開發的10個最佳 JavaScript 框架WebJavaScript框架
- 我真的從測試轉成了開發......
- 我是如何學習軟體開發的
- 移動web開發之畫素和DPRWeb
- 好程式設計師web前端分享移動前端開發和web前端開發的區別程式設計師Web前端
- 移動裝置的Web應用程式開發----(事件和輸入) (轉)Web事件
- 什麼是Web開發?如何成為一個Python Web開發人員?WebPython
- 【移動端開發】移動端開發基礎問題
- 開發者工具:我是如何從0到1來進行APP開發的?APP
- 手摸手帶你學移動端WEB開發Web
- 移動web開發除錯工具AlloyLever介紹Web除錯
- 移動web開發之螢幕三要素Web
- 移動APP開發框架盤點2:Web移動前端框架大全APP框架Web前端
- 移動開發即服務,騰訊雲移動開發平臺打造開發新模式移動開發模式
- 移動開發的優勢移動開發
- web?混合?原生?移動開發的三種模式選擇Web移動開發模式
- 10個優秀的移動Web應用開發框架Web框架