半年的iOS代码生活
半年的iOS代码生活
在高考大军中拼杀过,也在大学校园中荒芜过,曾经低迷消沉,也常满怀壮志…… 但是最多的还是被称为小伙子以及自称为iOS工程师!博主就是这种喜闻乐见的这类人,实习一年后在2015年的毕业季顺利拿到了自己向往的一家创业公司的offer,也许相比很多毕业季的同学职场上顺利许多,但当深夜来临,显示器熄灭后望着荧幕出神的时候,毕业季我错过了很多也许一辈子都不会再相见的同学们的合影。半年里真正领略到了企业项目的开发的艰辛,以及团队协作的魅力,有太多太多的要说,终将其汇成一句话:哥加班半年后终于回来了!
图1
半年时间,反正撸啊撸段位已经是万劫不复了,iOS9一发布加班的觉悟早有了,潜伏的XCodeGhost也被拎出来了,各种被脱裤的同行大佬们也是尿了一地,哥也被吓了一哆嗦,赶忙修改了1024的账号密码…… 2015年就是伴随这些琐事发展着,但是博主作为一个初入职场半年的工作总结当然不会是简单地流水账。
我知道你们都惦记着什么是1024,1024就是,呵呵,就是一款妈妈都说好玩的游戏啊~。
学习
干挨踢的学会学习远比你死背一个功能的代码来的有用。
在iOS学习中去尝试体会Cocoa模式,多留意Cocoa中的框架的类,他们的命名都有规范,相似抽象的对象会有相似的方法或者写法,比如:Mutable
的类可能都有addXX
、appendXX
方法,Set
、Array
类型的类可能都会有enumerateXX
的遍历方法……,又比如一个类的功能如果注重过程的话,苹果会选择使用delegate
的方式,注重结果的话则会使用block
,学会总结比较、触类旁通、举一反三!
如果你能做到对Cocoa模式很熟悉的话,那么最新的3DTouch功能直接看类的头文件就会用了。
并且,第三方优秀的、热门的库都会遵循这一套编写规范,所以使用起来或者修改起来也才能够游刃有余!除了ReactiveCocoa之流除外。。
学习时候看一本书远没有敲一个项目来的有效果。
看书的时候总是会犯一个毛病,就是一看就懂,一写就懵。所以学习技术,我更推荐的是实践检真知!敲出来的代码才是学习到的,因为你在电脑前,你遇到不懂的你可以立刻Google,看到感兴趣的新类可以直接option
+左键
查看文档或者command
+左键
直接摆出头文件一览无遗!
当然WWDC别忘了看看,这是iOS最前沿的技术教学,即使听不懂也没关系,把音频外放,同事问你:哇,你听得懂呀。你微微一笑答道:听不懂。留下认真聆听却似享受的一道背影给同事,那可是满满的逼格。。呵呵,其实不然,视频中有大量PPT,有关键字,拿出来Google一番,再敲打一番,肯定你心中会觉得不虚此举哈,这样也锻炼了英文水平,这样的一波绝逼不亏呀。
说到英文,这个是技术进阶的基础,不要畏惧,刚开始看一篇英文文档可能花费你一天的时间,但是这才是第一手资料!国内译者的水平毕竟参差不齐,谬误在所难免,而且二手的资料,对于充满处女情结的你能接受么?能忍么?所以百度还是用来搜搜绯闻、床照之流就好,技术索引真不是它的强项,搜出来的东西都是deprecated
的,实在浪费感情。
NSHipster、Objc.io ……都是不错的去处,大量的紧巴巴的干货,他们都有中文版,但是最新的资料的中文版还是会相对滞后。
再一个就是大婶们的博客,一天不读都浑身难受!
之前拜阅唐巧Boy的新书的时候,有一个博客列表非常不错,强势插入我的Feedly列表,我自己也有一些关注的大婶也加入了列表当中,这里给出分享OPML拿去玩。
沙龙、研讨什么的可以适当参加,看看荧幕外的世界,不要老说没有搞iOS的姑娘。
团队
讲一个故事:从前有个产品经理,他修改了3次需求,第二天他死了。
博主只想说的是,若不是博主心慈,我想我公司的产品经理已经死完后投胎又死一百次了。
我们都知道项目完成的水平直接由团队中是否有高效的协作而决定,也许有很多程序员长期的孤高冷艳惯了,他们说自己不需要团队!自己一个人就可以搞定一切,自己是UI、UE、产品、编码、测试甚至后端一条龙拿下,但是你将没有女朋友!!!
团队协作远比个人的英雄主义更有魅力,个人认为!
当下的快速迭代的大环境下,企业级开发下英雄主义是不太可取也不太可行的,所以融入团队,学会交流是工作顺利进展的保证;
当然团队协作中是否高效是否愉快就需要交流技巧了,每个人都有自恋的情节,即使是自己的工作技能也是如此,所以世界上存在着各种鄙视链
图2
举一个简单地例子吧
公司常见撕逼的三个部门:研发部、产品部、市场部
研发的看不起产品、市场,觉得他们都不懂技术,只是天马行空,遇到Bug还大惊小怪……
产品的觉得自己的设计是天才的设定,参考了社会伦理学,色彩心理学,严格的人体工学设计……反驳自己的都是傻逼……
市场的觉得自己深入客户,自己才是最了解这个产品市场的,所产品应该按自己的市场为导向,颜色不对,字体客户肯定不喜欢,改改改……
在排除消极因素,投机倒把的极个别人存在,团队中的成员还是希望共同的目标能够完美的实现的,也就是说其实我们的“争吵”也是为了更好的产品,但是“争吵”的度确实很难把握,难免就因为工作却伤了私下的感情,这也是离职中众多原因之一,频繁的离职却会使得你的职业生涯成长增加时间成本,所以更好的工作方式是“学会交流”。
“学会交流”不单单是工作中用到,这也是我们的一生的学问!
例如有时候,产品部门不是很负责任的频繁变更需求,这可苦了研发的成员,你便可以玩笑似的给他讲一个故事:从前有个产品经理,他修改了3次需求……,我想这样的诙谐即会是的工作氛围愉悦许多也可能让产品的同事知道自己不负责任行为的影响。
但是需求变更,这个是研发一直要面对课题,所以你必须学会“预置性开发”,预置性包括使用一些优秀的设计模式的使用降低模块间的耦合,增加系统维护的灵活性,也可以有类似Placeholder
的编码技巧,来随时应对不期而遇的需求变更,具体的做法,这也许需要另开一篇博文来讲述。
健康
如果还没有升职加薪,当上总经理,出任CTO,迎娶白富美,走向人生巅峰。却出师未捷身先死,这个都不太好玩,身边的同事以及博主自己都有或多或少的职业病产生了,博主躬亲力行地验证了一个道理:樯橹灰飞烟灭!别说撸代码还真的很带感,根本停不下来,所以最后颈椎,肩膀就是各种不适。说多都是泪,不过后来博主秉承了国人”先污染后治理”的方针,总算把身子调过来了,秘笈如下:
练此功,不强制自宫
好吧,这才是第一条,”不可久坐”x循环3次!!很重要,久坐流入脑子的血液会增加,从而造成下肢浮肿。由于久坐只限于局部肌肉活动,缺乏全身较大肌群动作,时间一长,久不动作的肌肉会逐步萎缩,机能衰退,还会使心、肺的后备能力降低,不能适应肌肉活动对血液循环和氧气供应的要求,一动就会心跳气急。肌肉长期不活动,热量消耗少,会加重脂肪和糖的代谢障碍,导致身体过分肥胖、动脉硬化及糖尿病。而且久坐一般皮肤质量较差,长时间静坐,受压血液流通不畅,易引起臂部瘙痒和隐痛,伏案工作者更甚,长期下去易导致颈椎炎,肩周炎,腰椎突出,脊柱变弯……我编不下去了,就问你怕不怕!!!所以多起身活动往非技术部走走,不然就会生病的哟(认不出雌性生物了)。
坐姿
图2
- 尝试全键盘操作,多记记几个快捷键世界就安静了,反正博主的magic mouse干电池已扣,什么你的是最新款的鼠标没干电池?那为了你的健康着想拿给博主用吧,可减少手腕以及肩膀劳损的风险。这里分享一个Mac屏幕效率工具SizeUp 可减少鼠标的使用!
- 运动运动运动!不要在被人黑了,老是被黑码农,油头垢面,肾虚患者……有意思么?我们是改变世界的工程师!不要再穿拖鞋上班了!!大家薪水都不低,穿得体面点吧。你可以和博主一样帅的。
- 努力陪伴回你身边一直陪伴着你的人,那使你的精神最远是最佳的状态!什么?那就多打打电话给你妈妈吧,那是最美的人。
追求
不要担心30岁要转行,不要认为30K就是终点,不要一天工作30个小时。保持初心。
O ever youthful,O ever weeping.
后记
博主新开了一个博客系统,托管在了Github.io上,喜闻乐见的Jekll加借鉴~~(抄袭)~~的精美主题构建而成,反正样子应该还看得过去,如果有朋友有兴趣想了解iOS程序员为何日撸万行代码?数百奇巧淫技如何施展?无数干货为何频频送出?究竟编译器背后又隐藏着什么?这一切的背后是技术与生活的碰撞还是高效与投机的权衡?我真TM编不下去了,欢迎前往 [任意门]围观。
严肃地,如果你刚开始学习iOS开发或许可以从博主这里得到一些半干货。
生活愉快!
半年的iOS代码生活的更多相关文章
- 如何把iOS代码编译为Android应用
新闻 <iPhone 6/6 Plus中国销量曝光:单月销量650万>:据iSuppli Corp.中国研究总监王阳爆料,iPhone 6和iPhone 6 Plus在国内受欢迎的情况大大 ...
- iOS代码签名理解
前言 做了几年iOS app coder了,对于证书的生成.使用流程烂熟于心,然而对于这套机制的原理却一直不甚理解.近来由于工作需要仔细研究了一下,特将自己的学习经验记录于此,以供大家学习指正. 问题 ...
- iOS代码加密常用加密方式
iOS代码加密常用加密方式 iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密.AES加密.BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文 MD5 iO ...
- Xcode之外的文档浏览工具--Dash (在iOS代码库中浏览本帖)
链接地址:http://www.cocoachina.com/bbs/read.php?tid=273479 Xcode之外的文档浏览工具--Dash (在iOS代码库中浏览本帖) ...
- oschina iOS代码库
iOS代码库 34Activity 54下拉刷新(pull-to-refresh) 143菜单 (Menu) 20位置信息(GPS/Location) 24iOS 表单 74提醒 (Notificat ...
- 马赛克算法及iOS代码实现
之前做了一下相关涂鸦的东西,发现图片处理挺好玩的,就先讲讲马赛克的实现吧. 放大马赛克图片可以看到,可以看到一个个单色的小正方形.所以马赛克其实也就是把某一点的色值填充了它一定范围内的一个正方形,这样 ...
- 如何把设计图自动转换为iOS代码? 在线等,挺急的!
这是一篇可能略显枯燥的技术深度讨论与实践文章.如何把设计图自动转换为对应的iOS代码?作为一个 iOS开发爱好者,这是我很感兴趣的一个话题.最近也确实有了些许灵感,也确实取得了一点小成果,和大家分享一 ...
- 一篇文章看懂iOS代码块Block
block.png iOS代码块Block 概述 代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性,Block是一种特殊的数据类型,其可以正常定义变量.作为参数.作为返 ...
- (转)ios 代码规范
转自http://blog.csdn.net/pjk1129/article/details/45146955 引子 在看下面之前,大家自我检测一下自己写的代码是否规范,代码风格是否过于迥异阅读困难? ...
随机推荐
- 年末福利,C/S应用升级更新完整解决方案放送
程序员,工作累寿命短,大家应该学会分享,别浪费有限的生命与健康做重复的事情. C/S方式实现的应用有个升级更新功能是必需的,以前整过一个但是没考虑多套C/S应用的情况,那个时候公司只有一套系统,现在又 ...
- .net二纬码标签打印
在企业开发中经常用到二纬码标签,本文详细介绍.net环境下整个二纬码解决方案. 开发环境 vs2008 DevExpress8.3 ThoughtWorks.QRCode (二纬码生成组件,高版 ...
- Jenkins执行selenium报错unknown error: cannot find Chrome binary
问题描述:在Pycharm中执行selenium测试用例,可以正常运行, 集成在Jenkins中,构建时,发现构建成功,但是查看Console Output,报错:unknown error: can ...
- Spring全局异常处理
最近学习Spring时,认识到Spring异常处理的强大.之前处理工程异常,代码中最常见的就是try-catch-finally,有时一个try,多个catch,覆盖了核心业务逻辑: 1 try{ 2 ...
- Asp.NetCore MVC Web 应用
Asp.NetCore MVC 与 普通的MVC 基本一致, 只是代码结构稍有改动 一.创建项目 1. 2. 3. 项目结构 二. 构建数据模型 1. Startup类中配置EF Core MySql ...
- 关于fastjson的一个坑:输出json时,bean对象属性首字母默认被小写
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴. 主要特点: 快速FAST: 比其它任何基于Java的解析器和生成器更快,包括jackson 强大:支 ...
- 在TFS 2013的迭代视图中修改工作项数目限制
当TFS迭代中的工作项数目超过500时,在TFS的网页(Web Access)显示中就会出现红色警告提示"积压工作(backlog)中的项数超出配置的限制500.当前总数为529-.&quo ...
- TSQL--NULL值和三值逻辑
在SQL SERVER 中逻辑表达式存在三种值:TRUE+FALSE+UNKNOWN.UNKNOW可以理解为不确定,既不是TRUE又不是FALSE的表达式,主要由与NULL相关的逻辑判断引起,值为NU ...
- ASP.NET MVC5实现伪静态
目录 1.什么是伪静态?为什么要实现伪静态? 2.实现APS.NET MVC伪静态的方式有哪些? 3.那么如何实现使用ASP.NET MVC5的伪静态呢? (1)在路由注册中启用特性路由 (2)为需要 ...
- [C#学习笔记]C#中的decimal类型——《CLR via C#》
System.Decimal是非常特殊的类型.在CLR中,Decimal类型不是基元类型.这就意味着CLR没有知道如何处理Decimal的IL指令. 在文档中查看Decimal类型,可以看到它提供了一 ...