我作为一名使用PHP的Web开发人员开始了我的职业开发生涯。不久之后,我切换到.NET生态系统并继续使用C#和ASP.NETMVC框架进行Web开发。直到最近,我一直在创建Web应用程序……几个月前,我开始使用Android和iOS开发移动应用程序,感谢Xamarin,我仍然可以使用C#。我写这篇文章的原因是为了分享我进行此更改后的感受。为什么我会做出这个决定你可能会问,为什么我决定从Web开发转向移动开发。因为我想做一些新的东西来学习新的技能,虽然我在网络编程方面还有很多东西要学。在我看来,移动应用程序有着光明的未来,尽管在线商店中已经有很多应用程序。但随着智能手表等新型移动设备的出现,它们为开发人员带来了全新的机遇。这是学习如何为移动设备创建应用程序的绝佳机会。更不用说我目前工作的公司恰好有机会用我最喜欢的语言(C#)开发新的Android和iOS应用程序,所以为什么不利用它呢。新的编程模型我知道编程的方式将会改变。我从之前经历过的一个叫WindowsPhone的项目就知道了这一点,在参与移动应用开发的时候就知道了。但我还没有准备好做什么,而且我认为我不会。与具有特定生命周期的网站中的应用程序不同,您不能只用响应来回复请求。我从构建Web应用程序中学到的几乎所有东西都对我没有帮助——范例是全新的。在这个领域,异步编程是强制性的,因为如果一切都在用户界面(UI)线程上运行,应用程序就会停止。我一直想提高我在这方面的技能,而且我找到了一个很好的方法来做到这一点。关注点分离也不同,不再有模型视图控制器(MVC),而是使用模型视图视图模型(MVVM)模式。尽管我已经使用过它(在WPF和WindowsPhone中),但它不在同一级别,我还有很多东西要学。当然,你也必须使用模拟器来测试应用程序,你每次要测试都必须构建和部署模拟器,你不能只刷新页面就可以看到变化。反馈循环很长,大部分时间需要几分钟,因此调试可能很慢但意义重大。在我的舒适区之外,大约两个月前我开始开发该应用程序,但仍有很多东西要学习。我不得不面对两个生态系统(Android和iOS),两个我一无所知的框架(Xamarin和MvvmCross)以及一些不容易满足的业务需求。不过幸运的是,至少我知道如何使用C#。我现在每天都在挣扎,我有很多事情要考虑,主要是“如何?”与我的新开发环境相关的问题。还有很多“如果呢?”问题:“如果网络不可用怎么办”,“如果这个解决方案太慢怎么办?”,“我怎样才能为客户提供最好的体验?”......有时候我无法为客户提供任何东西一整天,老实说,那时候我觉得自己很没用,很骗子——因为我在工作中不能产生任何有价值的东西,为什么?您可以认为自己是专业的软件开发人员吗?好吧,我认为这感觉就像走出您的舒适区并进入学习的山谷。学习率的高峰和低谷不会放弃,但我不是唯一做出转变的人,我并不孤单。团队中的每个人都必须处理相同数量的学习,包括高级和初级开发人员。现在回顾自己两个月的历程,发现自己还有很多不足,还有很多要走,但是也学到了很多,比如对于异步编程,还有那些MVVM模式的概念比较熟悉。如果我想成为一名专业的移动开发者,那么我仍然需要继续学习,继续完成我的旅程,学习我缺乏的技能,并产生满足客户期望的价值。尽管我的工作有时让我很痛苦,但我并不后悔,因为这是一个很好的学习机会。不管花多长时间,我都会成功。顺便说一句,我以后会分享一些Xamarin的技巧和窍门。希望下次再见!
