汐辰  +

阿里实习总结

来阿里实习也有一个半月了,来这边实习做的项目大多是移动端的,所以对于之前几乎纯搞PC端的我来说,在移动端的实践算是这次实习里边最大的收获了。当然长到的见识也不全是正面,比如出于历史原因,碰到一些老代码也是让人感到非常不爽的。这块的话就把好的与不好的都吐槽一下吧。

移动端实践

接到的项目是手机淘宝服务中心,要快速地进入良好的开发状态,首先得很好地掌握调试技巧,然而对于移动端之前一直不熟,所以一来就先学了一些开发工具,比如livepool,anyproxy等,利用Http代理达到真机调试的目的。何况有Chrome Emulation助威,移动开发也就没什么可怕的了。一直以为远离了IE6,7这两个噩梦,开发之路会一帆分顺爽歪歪了,万万没想到半路杀出小米和三星这两朵奇葩,一直在路上挖坑,导致踩到不少大粪,大家都是Webkit,咋就你们比较特殊呢!于是似曾相识的感觉又回来了,戴上帽子,拿着铁锹继续填坑。这个填坑的过程很蛋疼,根本不知这坑埋在哪,Emulation也没法调,只能凭着第六感去猜,拿着真机一步步debugger下来,于是整一个迭代下来在块花费的精力是远多于开发时间的。不过归根结底,还是由于自己在移动端开发经验的不足导致中间没有绕过坑,相信在不断填坑的过程中,会积累越来越多的奇淫技巧。

然后再来吐槽一下项目的架构,手机淘宝服务中心主要还是用的Kissy,开发模式也相对传统,由于前后端没有很好地解耦,所以还是采用的前端写demo,后端套页面的开发模式。先说说Kissy吧,我之前没用过Kissy,对它自然不熟,接触之后,发现有不少优点,但也有很多缺点吧,比如它的Loader和组件化机制还是相当不错的,但是它里边的很多API又让人用着非常不爽,远远没有underscore,jquery这类库来得健全。后来又去看了一下Kissy的组件库,倒是异常地丰富,不过由于是做移动端,所以用到的也很少啦,大部分都是根据需求自己再写一套,个人认为Kissy在移动端的优势并不大,还不如弄个avalon或者vuejs这类的MVVM框架做一个single application,反正内置在手机淘宝里边,不需要SEO优化,开发效率没得说,前后端耦合也得到了解决,再也不需要后端来套页面,并且节省沟通成本,前端与后端全部走ajax。好吧,想法很美好,也许现实很骨感,仅是个人之见。

关于PC的那几个老东西

当然实习的过程中也不只是局限于手淘服务中心,期间也接到两个PC项目,出于历史原因,接到的那两个项目都算历史比较悠久的,于是拿到之后,其中的恶臭也就散发得越加浓烈。用gbk的编码就不说了(因为找到了支持它的插件~~)。大概由于这么多年来,维护代码的人换了一批又一批,每个人编码风格不一,代码必然越来越乱,最后导致的结果就是现在要在它的基础上改写一个功能还没重新写一个来得速度快,不过这在大公司也是不可避免的,走到哪都一样,维护老代码做得好与坏全看个人的责任心,没什么责任心的人自然就越发倾向于敷衍了事,代码质量得不到保证,这些老东西也就只会越来越乱,越来越糟。好吧,只是说说自己的观点,因为似乎我在这方面没什么发言权,之前在百度,本身的代码也被师傅和祖师傅批斗过不止一次。

不过对于接到的这两个老东西,我觉得今后要良好地存在下去,可能重构是免不了的。不仅耦合相当严重,用的Kissy的版本也不尽相同,看了下Kissy的版本升级,很多API是有变动的,所以要统一版本也还是有风险。并且同样是对SEO没有什么要求的CRM系统,如果以后要重构,改用单页MVVM架构反倒也更合适,模板层由前端全权接管,联调的时间都可以省去了。

扯扯在阿里的生活

阿里西溪园区很大,植被覆盖率也很高,跟个大学似的,去那边上班有种去上学的感觉,但是我去实习的时候是冬天,所以看上去会比较萧条,不过春夏应该会很美吧,期待ing~在这边生活了一段时间,给我最大的亮点就是,小伙伴们吃饭都很准时,在北京过了一段不规律的生活之后,还真有点不习惯呢,啊哈哈哈。关于吃的话,有3个大食堂,并且还有内驻的星巴克,已经算是很大的福利了,不过想想好像99%都是在2号食堂的度过的,╮(╯▽╰)╭,大家都忙,有再好的东西也难有时间消遣啊。不过话说回来,相比前东家,消失的午后免费水果和现磨咖啡让我很不习惯,而且园区里的水果店超贵,这个不应该啊,只能说到这个份上了,哈哈。关于玩,园区倒是有一个不错的健身房,不过由于冬天加上学校离这边有点远这段时间久很少光顾,只是和同事打过几场乒乓,望在正式入职以后能养成一个好的运动习惯吧,不能浪费。其他也没什么了,园区的大楼都是清一色的单调,对了,要吐槽一下楼里边员工的工位,奥,可能算内部机密,说太多没准会被拖出去批斗开除。恩,这块就说这么多吧。

Anyway,相信一切都是最好的安排!

Blog

Opinion

Extract

Fork me on GitHub