广工计算机学院实习报告-校外模版
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实习
姓名
陈 xxx
学号
310900xxxxx
成绩
(1)了解科技型 IT 企业的组织架构和运营模式;学习体会 IT 企业规范化、专业化、标准化、 规模化的软件开发/系统集成项目开发流程;了解软件项目规划的工作内容、采用的工具软件、 人员组成、软件项目开发过程的组织、软件开发标准。 实习 (2)学习体会典型 IT 项目开发团队的角色构成及团队角色协同工作技巧;感受 IT 企业对员 工知识结构、技术技能、综合素质的要求,体验企业的文化氛围;加速由学生向员工的身份 内容 转变,增强同学的就业能力和信心。 (3)学习体验课堂理论知识在实际工程项目中的应用,积累项目实战经验; (4)了解数据库建模的方法、采用的工具、数据规格说明书的编写。
交学院存档。
出现相互占有的死循环状态,即 A 的一个属性强指针指向 B,B 的另一个属性强指针指向 A,
导致内存泄漏。不过在导师的指导下我逐渐的学会了如何管理内存。这也是这次实习中很大
Fra Baidu bibliotek
的一笔收获。
由于我们的项目是基于手机互联网的,因此,网络处理是我们项目里面很重要的一环。 和常规的程序代码不一样,由于网络的延时性,用于网络的处理的代码有一个很大的特点是 异步性和并行性。如果按照常规顺序执行的程序的思路去进行网络编程的话,及其容易造成 数据丢失和不同步。我也因此犯了不少错误。在我们的项目中,我们的网络处理模块用的是 iOS SDk 自带的 CFnetwork 框架。当需要使用网络的时候,有两种方式可以实现网络请求。一 种是使用网络代理,将请求发出去后,通过设置回调函数的代理(delegate),接收并处理网 络上返回的数据。另一种方式是使用程序块(block),将回调的程序块作为参数,传递给网 络请求的构造函数。由于我们项目需要兼容 iOS4,因此我们采用的是第一种方案。对于图片, 视频等二进制文件数据,需要监听 receive 事件,把每次的数据都叠加到原有数据的后面, 完成的时候触发 finish 事件,通过编码转换还原为图片和视频。而对于文字,最后的阶段需 要转码成 json 字符串,并通过 SBJSON 库,将字符串转换成 NSDictionary 和 NSArray,而后 进行后续的处理。通过这个网络请求的任务,我弄懂了手机终端和电脑服务器后台交换数据
最初一个星期的任务比较简单,主要是让我们阅读关于该项目的一些文档,了解项目的 整体情况,同时熟悉 iOS 的开发环境。在这个星期内,导师为我们简单介绍了软件开发的流 习 程,主要包括需求分析,UI 交互设计,美术设计,文档编写,服务器端开发,手机客户端开 发,测试,发布几个阶段。需求分析阶段主要确定软件要实现什么功能,有什么功能特性, 的 是否可行,单位成本是否符合经济效益等。UI 交互设计阶段主要设计软件与人如何交互,比 如,按钮放哪里,按钮按下去以后触发什么样的功能,如果引导用户由零开始学会该应用的 操作等,导师介绍,在国内一些大型 IT 企业,他们的交互设计人员通常要分析每一个按钮被 认 点击过多少遍,以得出按钮的布局是否合理,部分公司还会有专门的设备来检测眼球的聚焦 点,以引导用户正确的使用软件。美术设计阶段主要将 UI 设计阶段设计的 UI 草图美化,做 识 出软件的效果图。同时,制作软件中用到的各种按钮、贴图。此时,软件的非程序部分的设 、 计基本完成,项目正式交由程序员实现。文档主要是用来定义软件的数据字典、接口等信息。 体 方便软件的管理和维护。服务器端开发阶段,主要开发软件的网络端,由于其并发性和网络 性,在这个阶段需要考虑的最大因素是如何减轻服务器压力,如何以最小的硬件消耗处理最 多的用户请求,如何保证并发事件的数据一致性等。导师介绍说,我们这个项目中为了减少 会 图片加载带来的服务器压力,图片服务器和处理服务器是分离的,当用户获取一个请求的时 候,如果是资源类的请求,将直接从资源服务器获取资料,而不会对数据类的请求带来任何 与 影响。手机客户端开发,主要考虑的是如何充分地利用有限的手机硬件资源,这也是我接下 来的实习任务,在这就不详细介绍了。测试阶段,测试人员将使用黑盒测试,反复进行大数 收 据临界数据进行测试,确定软件能正常运行。一旦发现 BUG,将通过公司内部的 BUG 管理系统 反馈给程序员,由程序员重新修改该模块。在第一周中,我学到了很多课本上没有的知识, 加深了对软件工程的理解。逐步从一个学生向一个软件工程师转变。 获
习
小任务的考核通过后,导师开始给我灌输项目管理的思想。首要任务是学习如何使用 SVN,
对于我这个项目新生来说,SVN 又是一个很新奇的东西。在学校的时候一直弄不懂当几个人一
齐做同一个项目的时候,他们是如何维护代码的。当两个人同时取出同一个文件进行修改的 的
时候,他们是如何做到互不干扰的?为什么不会出现 A 君写的代码覆盖了 B 君的代码。在公
在第二个星期,开始给我布置一些小任务。导师让我做一个输入文本框,并点击保存的 一个小模块。跟学校里有老师教导着学习一门语言不一样。在公司里,虽然也有导师带着。 但导师的主要任务只是引导,而不是教懂。我初次体会到了自学能力的重要性。由于 iOS 项 目中用的 Object-C 这门语言我之前还没接触过,接到这个小任务后,我开始了艰难的自学生 涯。百度、谷歌等一切可用的资源都用上了,可是找回来的资料不是用了老版本的 X-CODE 界
司里,我总算弄懂了。解决办法就是使用 SVN。当 A 君修改了代码后,提交他的版本的代码。 认 此时,如果 B 君也提交代码的话,SVN 会提示他的代码过期,要求更新代码。当 B 君更新代码
时,如果出现冲突,B 君就需要在他本地的电脑上修复好冲突的地方,SVN 才允许 B 君代码提
识 交,如果没出现冲突,AB 君的代码将会直接合并。在这种机制下,SVN 就能很好的解决了代 码冲突的问题。另一项目管理的内容是,如何保证公司里面的人正在修改的功能是唯一的,
功能,以便绕过复杂的计数机制。ARC 的原理是,存在弱指针(weak)和强指针(strong),当
一个指针属于弱指针时,他表示对该内存块的一个引用,当该内存块需要回收时,他的存在
不影响回收。而当一个指针属于强指针时,他表示对该内存块的一个占有,一旦有占有的情
况发生,该内存块就不会被回收。在这种机制下,一定程度上方便了内存管理。但有时也会
实习报告
学生学院 _
计算机学院_
专业班级 _2009 级计算机科学与技术 5 班_
学 号 _____ 310900xxxx _____ _
学生姓名 _________陈 xxx__ ____
实习单位 __星网联动科技有限公司__ _
2013 年 3 月
实习报告
专业 计算机科学与技术
班级
2009 级 x 班
里面没有自动化的内存回收机制,在进行内存管理的时候更需要耐性。在 objective-c 里面 收
有一个指针计数器的机制,每一次进行 alloc、retain 操作时,指针计数器加 1,当进行 release
操作时,指针计数器减 1,当计数器为 0 的时候,才会回收该内存区域。虽然原理不复杂,但 获 对于我这个新手来说,还是有点无从下手的感觉。后来,在导师的提示下,他让我开启了 ARC
不会与其他人修改相同的内容。在我实习的这家公司里面,他们采取的解决方案是任务机制。 、 由项目经理和测试人员在办公系统内发布开发或修复任务,当程序员开始着手一个任务时,
他需要接下这个任务,下载相应的接口文档,此时,办公系统就会显示该任务已被人接收。 体 直到该程序员完成任务,办公系统将统计任务完成时间,并算入项目考核之中。如此,项目
在实习中,我逐渐感到了自己在学习中的不足。我明白了一个道理,纸上得来终觉浅, 识 绝知此事要躬行。在这次实习中,收获的东西其实远远不止这些,如弄懂了什么叫程序块,
什么叫文档储存区、缓存储存区、临时文件储存区,弄懂了动画的实现原理,弄懂了怎样做 、 手势跟踪,手势识别。在实习中不断取得进步,是我这次实习中最大的体会和收获。
体
会
与
收
获
实
习
指
导
小
组
意
实习单位公章
见 2013 年 月 日
成绩 评定
指
导
学
教 师
院
意
意
见
签名:
见
2013 年 月 日
签名 2013 年 月 日
备 注
说明:1. 成绩评定按优、良、中、及格、不及格五级评分,成绩记“不及格”算未通过, 必须重新补做。
2. 实习指导小组由实习单位指导人员与校内指导教师(含单位领导与学院领导)组成; 3.请实习学生作好学习记录并如实填写好此表,实习结束后将此表加盖实习单位公章后及时
管理的部分很好的解决了。
会
此后,我总算基本熟悉了在公司里面工作的流程,开始了标准的程序员生活,在这段时
间内,我学到了更多的东西。跟电脑相比,手机的可用物理内存要小得多,特别对于一些老
与 一代的手机,可用内存只有 128M-256M。因此,对于手机开发来说,内存管理永远是个说不完 的话题。在实习的过程中,由于新手上路,遇到了不少内存的问题。跟 java 相比,objective-c
的过程,进一步加深了对编程的理解,获益不浅。 在这次的实习中,我个人觉得,对我影响最大的不是学会了一门新的语言,也不是学会
了如何进行手机开发,而是学会了编程的真正技巧——如何正确的使用类。还记得当年最初 对 接触类的时候,老师说过,世界上任何东西都可以抽象成一个类,比如一个人是一个类,他
有手,有脚,而人这个类里面又可以派生出不同的子类,如男人,女人。而在面向对象的程 序设计中,也极度提倡把代码对象话,当成一个个对象对待。不过,那时候的我一直不懂如 实 何去抽象出一个类。在实习中,导师告诉我,所谓的类,就是你把它单独拿出来,放到别的 项目上去跑,它照样能跑得动,这就是一个成功的类,不依赖于除父类外的任何其他类。在 习 我以前的观点中,只有像按钮控件、输入控件才是一个类。在这个项目中,我颠覆了以前错 误的局限的想法。我懂了一个请求可以写成一个类,传入网址,请求方式,结果处理程序块, 的 就可以自动执行,而可以忽略中间复杂的接收数据过程。我也懂了一个操作记录系统可以写 成一个类,只需要简单的调用记录接口和读取接口就能直接使用,而不用考虑中间复杂的数 据库操作过程。类,就是只需要输入各种指令,而不需要考虑过程,直接获得结果,可以无 认 限简化流程的超级工具。
方式
理论与实操
起止 时间
2013 年 3 月-4 月
实际工作量 80 学时
今年 2 月份中旬,我来到了深圳市星网联动科技有限公司进行毕业实习。
星网联动科技有限公司位于省深圳市福田区,是一间初创型的互联网公司,目前主要从 事手机网络游戏和手机应用的开发与运营。 对
我实习的内容是一个手机应用 iOS 版的开发。初到公司,公司给我们这些实习生每几个 人为一组分配了一个导师。 实
面完全不一样,就是不完整,只有代码片段,对于我这个新生来说还是看不懂。最后,还是 导师启迪了我。他让我上苹果开发者的官网,按照里面的新手向导先操作一遍,写一个 hello world 程序。果然,官网的教程还是很详细的,有一步步的详细的步骤,不过是英文版的。这 时候,我充分的明白了为什么当年老师一再强调我们专业一定要把英语学好。诚然,很多国 际上比较新的技术性论文,都是用英文编写的,这也包括 iOS SDK 的文档。花了一个下午, 对 一步步完成了第一个 hello world 程序,总算明白了什么叫界面文件(xib),什么叫头文件 (.h),什么叫代码文件(.m),什么叫事件委托,什么叫事件代理。也弄懂了一个 iOS 程序从 实 创建项目到真正可以到模拟器里跑,要经过哪些步骤。说句实在的,心里还是美滋滋的。于 是,着手开始完成导师布置的小任务。