很荣幸参加QCon全球软件开发大会,这里特别感谢我们部门的总经理,也是《互联网广告算法和系统实践》此书的作者王勇睿。因为他我才有这次参会机会参加这次软件开发大会。接下来,我将从以下几点来撰写这篇文章:
QCon是由InfoQ主办的全球顶级技术盛会,每年在伦敦、北京、东京、纽约、圣保罗、上海、旧金山召开。自2017年3月份首次举办以来,已有超过万名高级技术人员参加过QCon大会。QCon内容源于实践并面向社区,演讲嘉宾依据热点话题,面向5年以上工作经验的技术团队负责人、架构师、工程总监、高级开发人员分享技术创新和最佳实践。北京QCon2017是在国家会议中心举办,时间为:2017年4月16日—18日。
由于时间原因,我是最后一天去的QCon。早上8:30起床,然后坐地铁到了国家会议中心。然后开始了参会学习。以下是参会内容:
演讲人是Kingsum,来自阿里,是阿里巴巴基建服务首席专家。主要介绍的是软件性能分析:过去,现在和未来。可能是自己英文差的原因,他演讲的过程中经常出现各种英文,所以有的时候没有听太懂。(学习英文很重要)他介绍了一个好的程序,但是有一下几点会影响或者制约其功能:
演讲人是于旸(TK老师),他是腾讯玄武实验室总监。主要介绍了:
1 2 3 4 5 6 7 8 9 10 11 | public bool isEqual(String s1,String s2) { if (s1.length != s2.length) { return false; } for(int i=0;i<s1.length;i++) { if (s1[i] != s2[i]) { return false; } } return true; } |
这里在对比s1[i]与s2[i]不相等的时候(类代码,也许不能运行),攻击者可能会在for循环做事情,比如黑客通过某种攻击让代码返回true,那么就算是两个不相等的字符串也会返回true,但是这里面有一点我们会忽略,那就是时间维度。一般来说,如果对比两个字符串最慢只需要1s,但是被黑客攻击的代码由于需要进行破解攻击,所以消耗的时间也会长一点,所以如果我们的代码在实现的过程中考虑到时间,那么代码就会更健壮,不容易攻破。TK老师也说明了这一点:时间是很容易被忽略的维度。
演讲人是蔡超,Amzaon(中国)技术团队的首席架构师。主要介绍了以下几点:
我们遇到问题的时候,想到的不是用如何牛逼的方法去解决,而是从问题的本身去开始研究,从最简单的技术开始,一定要找到最简单、最有效、最实用的方法去解决。在我们学习或者读书的时候,我们应该在学习的时候先问一下自己:我学的东西要解决的问题是什么? 当我们学习完之后,要想想学过之后是否解决了我们遇到的问题。总之这场分享听下来之后,给我的感觉就是一定要发现事物的本质,用最简单、最有效、最实用的方法去解决问题,而不是多绕弯路。
演讲人是徐大芮(子之),淘宝无线技术专家。内容主要是如何基于移动,应用去做快速开发。主要是为了应对手淘的快速开发,比如马老板说淘宝首页来个发红包,那么就需要及时迅速的去完成这个需求。而他们开发团队仅仅用了几个小时就将此需求上线。在应对业务发展快、流量集中、交互复杂的情况下(过山车),如何快速开发完成并成功上线是一个很值得研究的问题。所以他们就通过模板配置、插件组装的方式来让研发提速。比如说淘宝的一个页面:他们做了一套模板,然后去承载这个页面,然后通过配置数据,从而完成了快速开发迭代。在开发的过程中如果可以使用现有模板,那么久直接装载即可。在开发过程中,模板会有不同的版本,有自己的独立版本控制,而业务实例每个版本都有独立关联的一个模板ID和版本。然后还开发了各种组件,榜单、投票、评论等等,通过数据配置就能完成快速开发。另外还有淘宝不定期推出的活动动画,淘宝这边使用AE做成动画,然后用JSON承载,然后通过移动端的ViewController上面的一层Layer或者Player来展示,期间允许对JSON进行二次定制开发。这里还有一个很有趣的事情,有位观众提了一个问题:苹果不允许JSBridge,那马如何实现不发版的情况下实现更新呢?演讲人的回答是不知道。但是他说不太确定苹果是不允许拉文件更新,还是允许类似RN方式的开发。如果只是不允许拉文件的话,那么可以考虑使用RN的方式来搞。
演讲人是来自LinkedIn的软件开发工程师胡克秋。主要介绍了如何快速发版。介绍了LinkedIn发版,说是一周发一次,我看了一下领英iOS更新记录,没有那么频繁,也许是能够支持一周发一次吧。他们移动开发是专门的一个移动平台组,里面没有任何的产品、UI什么的。当其他有需求的时候,就会把人派到指定的部门开发。从当初的30个移动工程师到现在的超过300个移动工程师,从原来的的超过一个月交付一次App到现在的3x3快速开发。所谓3x3快速开发,就是:一天发布3次。代码提交到发布<3个小时后来经了解他们的1天发布三次其实是每天发布3个可用的版本,这些版本能够随时拿过来使用。他们的iOS客户端完全采用Swift开发。因此在经历Swift2.2—Swift3.0升级的过程中,8个人在开发项目室从上午9:00到晚上10:00做升级。总共用了一个礼拜的时间才将Swift2.2升级到了Swift3.0。关于代码提交,他们只有一个分支,然后在开发过程中,他们有个小要求:就是在有限制的时间内做代码提交,如果超过了这个deadline,那么久不能提交代码。这样保证了代码在某个时间点的稳定性。关于测试,他们还有个DogFood,也就是所有公司员工必须去使用他们的最新版本,然后他们会收集Crash信息,然后进行修复。还顺便介绍了几个开源的框架:
以下是对我学到的东西进行的一些简单总结:
1.如有侵权,请告知作者删除。scottzg@126.com
来源: http://www.cnblogs.com/zhanggui/p/6744941.html