从2010年3月份出来工作到2015年初,做过的大大小小的 .NET Web 项目如下:

(1)售楼系统产品    「Role: Team Member」

(2)中弘合同管理系统    「Role: Team Member」

(3)Gammon Portal 金门建筑内部门户    「Role: Team Leader」

(4)Hopewell Portal 合和实业内部门户    「Role: Team Leader」

(5)ICAC-IMS 资产管理系统    「Role: Team Member」

(6)公司内容展示网站    「Role: Stand-alone Developer」

(7)广州地铁协同办公平台    「Role: Team Member」

(8)广州地铁子公司中咨门户    「Role: Stand-alone Developer」

(9)湛江市人民政府网站    「Role: Team Member」

(10)广之旅在线系统    「Role: Team Member」

当然,之前读大学也做过不少“项目”,这些“项目”对比起工作的实际项目来说,更像是一些没有多少商业价值的“玩具”,这里就不值得一提了。然而他还是有点用的,在学生时代,通过去学习去实践去总结经验,不断巩固了自己 Web 开发的基础,从而从学生人群中脱颖而出。

从2014年下半年开始关注 iOS 技术,遇到过从 .NET Web 到 iOS 过渡期的问题:

值得每位面临同样处境的朋友发自内心去思考去寻找答案,而我提交的答卷如下:

(1)作为一个从事 .NET Web 工作多年的老手来说,为什么要选择从事 iOS 当新手呢,iOS 有哪些优点和价值吸引你?

  • 商业市场价值:使用过 iPhone 和 iPad,从外观到用户体验,Apple 追求极致美,用心去做好产品,值得我们学习。虽然乔帮主已西归,但库克商业化头脑领导的时代注定 Apple 还能持续风光好多年。移动互联网的发展还在持续,移动端的便捷性给人们生活带来更多方便。

  • 规范化:App Store 统一的官方市场,严格规范化的审核制度让 App 质量得以保证,间接对我们提出更高要求,让我们用心做好每一款产品。

  • 个人价值:选择了从事 iOS 工作,并不意味着「鱼与熊掌不可兼得」就此抛弃多年的 Web,相反的,他们之间是相辅相成,PC 与移动端的结合。所谓技多不压身,多学习一门技术,多一条出路。

  • 个人技能:每年的 WWDC 介绍 Apple 开发技能的新东西,能让我们不断学习充电。Apple 的官方开发文档都是英文,GitHub 里 Open Source 的项目极大部分也是英文,能让我们学习提高英文水平。GitHub(Git 源码管理)和 stackoverflow(IT 知识问答)这样的国际化平台,让我们与全世界开发人员联系在一起,互相学习交流,提高了我们的知识和眼界。

    追求:「跟优秀的人在一起,成为更优秀的人」

  • 个人未来发展:当拥有多年的 iOS 和 .NET Web 工作经验后,考虑往系统架构师、技术经理方向发展。也许将来有机会出来开工作室或者创业时,这些经验能在技术的层面上提供不少帮助。

(2)多年的 .NET Web 开发经验,有哪些是对 iOS 开发有帮助的?

  • 面向对象的编程思想:「封装、继承、多态」,编写代码更加规范化,可维护性更高

  • 设计模式:比如「MVC模式」、「观察者模式」「单例模式」、「工厂模式」等等

  • 算法和数据结构:比如「冒泡排序」、「二叉树」、「递归查询」、「哈希表」、「堆栈」等等

  • 多线程与锁:「多线程」与「NSThread」、「线程池」与「NSOperation」、「异步调用」与「GCD」

  • 数据库存取:「SQL」与「SQLite」、「Entity Framework」与「CoreData」、「EnterpriseLibrary」与「FMDB」

  • 网络交互:HTTP 请求响应流程、XML 和 JSON 数据格式解析、Web API 设计规范

  • 布局约束:CSS+DIV 知识,涉及相对定位和绝对定位、层级关系、内外边距和边框的盒子模式

  • UIWebView:JS、jQuery、CSS+DIV、HTML5

  • Delegate 和 Block:委托代理、JS 的闭包

以上经验只是思路或者知识点类同,在 iOS 中具体的实现是大不相同的,iOS 中还有很多知识点是 .NET Web 开发中没接触过的,未知的知识领域还有很多很多。Work hard, add oil.「More coding, more thinking. Stay hungry, stay foolish.」

那些年做过的 .NET Web 项目和 iOS 之路的一些思考的更多相关文章

  1. MyEclipse Web项目部署失败:Deployment failure on Tomcat 7.x.Could not copy all resources to XXX.

    在做第一个MyEclipse web项目时,总是部署失败: Deployment failure on Tomcat 7.x.Could not copy all resources to XXX.I ...

  2. 项目自动化建构工具gradle 入门5——在intellij中做一个gradle的web工程

    之前的几个小节,都是纯手工建文件夹,纯手工拷贝war包,或者纯手工解压个zip看看结果,,,,这还是我写了玩的helloWorld.若是玩大工程.几十个人的团队协同开发时,这么玩,,,,暴躁的程序员估 ...

  3. 做web项目时对代码改动后浏览器端不生效的应对方法(持续更新)

    做web项目时,常常会遇到改动了代码,但浏览器端没有生效,原因是多种多样的,我会依据我遇到的情况逐步更新解决的方法 1.执行的时候採用debug模式,普通情况下使用项目部署button右边那个butt ...

  4. 做web项目时对代码修改后浏览器端不生效的应对方法(持续更新)

    做web项目时,经常会遇到修改了代码,但浏览器端没有生效,原因是多种多样的,我会根据我遇到的情况逐步更新解决办法 1.运行的时候采用debug模式,一般情况下使用项目部署按钮右边那个按钮下的tomca ...

  5. 三、自动化测试平台搭建-django-如何用mysql数据库做web项目

    从这节开始到后面说的大概内容如下: 这里说的是Django做一个web项目的大概框架,从下篇具体说Django中的模型(查询..),视图(请求,响应,cookie,session..),模板(验证码, ...

  6. java做web项目比较多

    WEB就是轻量级:如果要炫,FLEX或即将普及的html5.0都能做到像C/S那样. java做web项目比较多:如果是桌面程序,还是走C/S比较成熟. 如果是B/S架构的,后台还是JAVA,前台可以 ...

  7. 做一个完整的Java Web项目需要掌握的技能[转]

    转自:http://blog.csdn.net/JasonLiuLJX/article/details/51494048 最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目 ...

  8. 抒发一下这些天用django做web项目的一些体会

    最近接触了一段时间的python,觉得python写脚本还是挺方便的,做一个简单的桌面应用也很nice,但是随着深入,对python做功能复杂的web项目我彻底死心了​,每个环节都是一堆的坑,部署阶段 ...

  9. 做一个完整的Java Web项目需要掌握的技能

    最近自己做了几个JavaWeb项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Java Web项 ...

随机推荐

  1. [C++] 井字棋游戏源码

    TicTac.h #define EX 1 //该点左鼠标 #define OH 2 //该点右鼠标 class CMyApp : public CWinApp { public: virtual B ...

  2. [C++] C\C++ printf 输出格式

    1.转换说明符      %a(%A)     浮点数.十六进制数字和p-(P-)记数法(C99)      %c         字符      %d         有符号十进制整数      % ...

  3. 三国杀3v3心法——总述篇

    昔日,独孤求败前辈精研剑法,将其中奥妙化为独孤九剑,破尽天下武功.其中开篇总诀式提纲挈领,从宏观的层面阐述剑道,是领悟后面八式的基石,而之后各式则深入微观,可各破一类具体的武功.笔者亦曾苦心研究三国杀 ...

  4. PHP中VC6、VC9、TS、NTS版本的区别与用法详解

    Thread safe(线程安全)是运行在Apache上以模块的PHP上,如果你以CGI的模式运行PHP,请选择非线程安全模式(non-thread safe). 1. VC6与VC9的区别: VC6 ...

  5. GCD使用dispatch_semaphore_t创建多线程网络同步请求

    一.简介: dispatch_semaphore_t:表示信号,生成信号的方法是 dispatch_semaphore_t semaphore= dispatch_semaphore_create(0 ...

  6. fir.im Weekly - 工欲善其事,必先利其器

    这周为大家搜罗了一些优秀的 GitHub 资源.APP开发工具.产品UI设计资源等等,同时也有一些程序员个人成长的Tips,"软硬件兼备"也许事半功倍不只是梦! Open-Sour ...

  7. iOS开发-友盟分享使用(2)

    1.友盟SDK提供功能:分享喜欢的东西到新浪微博.qq空间.为微信朋友圈等等等等社交圈. 2.友盟分享前期准备 (1)注册账号 去官网 (2)创建应用获取appkey 类似5556a53667e*** ...

  8. GO語言基礎教程:Hello world!

    首先簡單地說一下GO語言的環境安裝,從 http://golang.org/dl/ 針對自己的操作系統選擇合適的安裝包,然後下載安裝即可,下載的時候注意別選錯了的操作系統,例如go1.3.1.darw ...

  9. LPC43xx SGPIO Pattern Match Mode

    模式匹配 所有位串均具有模式匹配功能. 该功能可用于检测启动代码等.要使用该功能,则必须用需匹配的模式来对REG_SS 编程 (请注意, POS 达到零时 REG_SS 不会与 REG  交换!) M ...

  10. 什么是automatic variable?

    看代码符号$?搞不清楚是什么?   看代码. $share = Get-WmiObject -Class Win32_Share -ComputerName $Server.name -Credent ...