最新消息:

实习总结

随笔 大步 802浏览 0评论

从去年8月15号开始实习,到今年4月15离职交接,刚好差不多是8个月的时间。

 

先说下自己实习的工作:为公司做android app客户端,一个人独立完全开发。

因为公司是导师与人一起合作开的,刚好公司又缺android app,所以让我去公司做app 开发。我也是第一次做商业的app,平时学习也就是谢谢天气或者记事本之类的demo玩玩。在我来公司之前,app的所有界面基本设计好了。我个人觉得这款UI设计地并不怎么好,感觉就像是android 2.3时候的风格,设计上也不是很合android设计的规范。因为公司的美工也没有做过app的ui设计,很多交互的页面都没有,而且也没有在所有效果图上标明距离等信息,更坑的是在一个多月后美工就离职了。我只能将就着做。

 

单独做app开发,并不会太麻烦,而真正麻烦的是与后台接口的开发人员沟通。因为我来公司的时候,接口还没有开发,我只能先做ui布局和控件等。而后台的开发也是个实习生,所以在之前也是没有写过接口的。而且开发也没有所谓的需求文档,只是让我我把把网页版的功能照搬到app中。大概花了三个月才完成,中间又有几次修修改改。每次写个功能就需要测试app, 发现问题,然后判断是前端还是后端的原因,这个过程很花时间。而且有时候,后台中表示同一个意思的某个参数在不同的接口之间名字变来变去等等。整个过程比直接调用现成的已经开发好的api费时很多。因为你要时刻判断到底是后端的bug还是前端的bug。而调用如新浪微博等api,基本完全不用担心后端是否有问题,所以写起来会快的多。

 

app中还用到第三方登录等功能,需要调用,然后你又会发现:

sina的sdk demo在AS下无法编译,最后发现是新浪的sdk开发人员偷懒,直接将jpg的图片改个后缀名作为png图片

qq的sdk没有实现web授权功能,而文档中却并没有写明。

 

在开发过程中,后台接口的增多,文档并没有及时更新,导致后来api文档没有太多的参考意义,只能直接去问后台。索性后来懒得问,直接让发后台的源代码来看。

 

在开发的过程中,也发现了小公司的问题:

1.没有完整的内网测试条件,也就是说,内网测试环境和外网是有区别的。甚至很多时候,app在内网运行没问题,一到外网,接口就出问你,导致app无法正常运作。

2.开发缺乏需求文档,这是在我写第二个app的时候遇到的问题。这个app只花了6天(不算周末)。但是因为不断改需求,而导致延期了差不多1一个多月。

3.对于提出的问题,并没有一个有效的反馈机制来管理。导致一个问题提出来,结果说要考虑,然后可能就是四五天都没有任何反馈了。

4.没有专业的测试,只是发给公司的销售等使用一段事件,遇到bug再反馈给我,还有就是发布后,用户的上传日志反馈的。实际上,有不少bug是测不出的,比如有的品牌手机的兼容问题等。

5.开发文档同步问题。后台写的开发文档和我手头的接口文档不同步,有时候后台修改了文档,而没有即使发给我,导致我还是按就的接口开发。所以,后来用到看云来写文档,这样保证了协作和同步。

 

自己和后台的问题:

1.没有实际的商业项目经验,对于一些问题缺乏考虑。比如,一开始想到了升级,但是没有考虑过是否增加强制升级机制。还有就是在初期,在后台返回的code中没有提供一个显示任意提示信息的code值,从而导致在app安装后,后台无法控制app的某些行为。

2.后台接口的code代码,不怎么统一,有时一个code,在不同的接口有不同的含义。

3.app的开发,没有使用mvp等架构,导致代码复用性不是太好,单个文件里的代码有点多。后台我想改为mvp实现,但是发现,这其实就是将app重写了。后来公司让我学什么H5,IOS之类的,弄的我也没精力去重构了。

4.开发不规范。对于代码注释等, 我只是尽力,并没有按照android的开发规范来做。

 

 

公司学习到的技能:

额,怎么说呢,其实学到的东西不多,总的来说公司只是提供需求的,促使你去学的。公司让我学H5,IOS。而实际上,H5我在以前就学过,IOS又是OC,我学过C,所以掌握OC的语法并没有花太多时间。而公司里的那些有多年开发经验的人似乎认为我们实习的什么都不懂。 有个人甚至说,app开发这么久还有bug。我只是笑笑,并没有反驳。如果拿B/S和C/S比,C/S这种一旦发布出去,就基本算是脱离的对代码的控制,而B/S却完全在开发者控制之内,而且android手机太多,sdk版本太多,想要完全没bug,这很难。

 

公司之所以让我学H5,是想让我用H5开发app,这样实现多平台的兼容。我想说的是H5不难,稍显麻烦的是JS和android中api交互。当然了,如果使用Dcloud的这种已经将这一步封装好了,那么就很轻松了。美工都将效果图切好为h5了,剩下的就是ajax去后台取数据,然后用模版引擎来修改dom即可。这并没有什么太大的难度。  使用H5发开app,可能是以后的一种大的趋势了,毕竟跨平台,对那些web开发人员来说,上手基本不需要太大的学习成本。但是到底是像Dcloud的这种封装的更加多的,还是使用facebook的React Native开发,还真是说不太好。Dcloud的开发可能会更加省时间,但是React Native应该更灵活些。

 

IOS我只是学完了OC的语法,但是个人对OC的语法感到比较恶心。因为写个函数还要写老长,没swift那个简洁。所以,我现在打算转向用swift来开发ios。好吧,辞职后,手头就没有mac来学ios了,再考虑是不是在虚拟机里装个黑苹果。

 

至于其他的,还真没感觉学到什么,更多的是提供了需求,让后自己google和看书。所以,这也是我提出辞职的主要理由。实习本来就是学习技术的,如果学不到技术,还是趁早辞职,回去自己看书自己学。

 

 

最后6个月的打算(毕业论文肯定是要写的):

1.把j2se和java web的相关知识在自己回顾下。

2.把android的自己掌握不牢的知识点在巩固下,然后就是多看看android 源代码,掌握其中的一些实现细节等。顺带整理下自己的笔记。

3.用Django写个支持Markdown的博客程序。对wordpress无语了,而那些将日志写到github上的我也不怎么喜欢,我还是喜欢放数据库中。

4. 看完《Unix网络编程》两本。

 

给各位将要实习建议:

实习的首要目标是学习技术,如果这一点都达不到,那就不要去实习了。

 

转载请注明:大步's Blog » 实习总结

SiteMap