团队的项目已经进行了一段时间了,任务也基本分配好了。我在项目开发中的任务是业务逻辑部分。这几天都在研究iOS的网络编程。以前自己喜欢直接用第三方的框架例如AFNetworking和SDWebImage。不过这次打算深入一点自己实现网络的访问和下载图片。弄了一下NSURLConnection,感觉基本的网络访问都OK,就是异步下载的时候要注意添加进运行循环中。后来发现一个更加强大的网络访问类组NSURLSession网络会话,与NSURLSessionConfiguration搭配使用比NSURLConnection好太多了。
NSURLSessionConfiguration貌似完美取代了NSURLRequest,可以配置的内容很强大。根据配置好了的会话可以分派出不同的任务,例如数据任务,上传任务,下载任务。更可怕的是下载可以直接给写磁盘了,再也不用什么文件管理打开句柄那些操作了。我想要实现图片缓存就比较简单了吧,网络请求前都到缓存路径找,没有再重新发起网络请求。
感觉开发iOS已经越来越简单了。只要不需要app版本最低支持iOS6.0,几乎开发起来容易很多很多。当然我说的容易是相对的,如果要写出健壮的代码,复用的代码,可扩展的代码还是要非常非常高的水平才行。
关于高水平,其实我想说的就是程序员的成长之路,由于这些便捷,使得我们即使处于非常初级的阶段也能胜任基本开发。而公司都是会有研发团队,那些所谓的高级程序员,他们会为初级程序员封装好一些库一些模块,然后初级程序员直接用就好了。前段时间在微博上看见一篇V2EX的文章,关于招聘到一个四年工作经验的程序员连基础网络知识也不熟,后来说是外包团队出来的。
现实就是这样,当外界不在给压力你后,你会慢慢在舒适中沉沦。乱世出英雄出大师,盛世几乎就没什么大师级人物了。说大师级人物有点超出我的范围了,我们在舒适中需要自我驱动去提高自己。什么十年工作经验,你是用一年的经验工作了十年,还是工作了十年每年都在进步提高。靠外界环境改变自己的人还是比较多,依靠内心驱动的少之又少。我也非常尴尬,不过我总算还有意识到这件事情,所以写篇文章提醒下自己。
在这里我想举一个例子,就是动画大师宫崎骏老先生。因为前些时候在网易公开课看了“宫崎骏-创作《起风了》的1000个日夜” 。老头子七十多岁人了,还说退休烦死了,要做点什么。选一个战争题材的故事背景,做自己从未做过的没有把握的创作。为什么没把握?因为故事是关于二战的,主角是日本零式战斗机的开发者堀越二郎。我猜,如果创作无法圆场,那么老先生名声肯定大损,还会招来谩骂。纪录片中也多次提到了这部创作的难度是如何把堀越二郎的对设计飞机的热爱抽离战争但又不改变战争的事实。每一个镜头关于人物表情、对白设计和主角对设计飞机的想象时,老先生口中都是说“好麻烦啊。”。尽管老先生多次表示好麻烦,不过确实好麻烦,然而却不停的工作直到符合自己的设想为止。那些手描稿真的扔了不少,三年的日日夜夜就是这样在麻烦中创作的。迎着困难而上对老先生来说可能已经是习惯了吧。
向这些迎着麻烦而上的人致敬,内心驱动的人是终生学习的人。不管在那一行,我们都可以有所创作。不要被陈旧的规条束博自己的双脚,也不要被舒适的环境宠坏自己。