• 生活小常识
  • 生活技能学习
  • 安全知识
  • 理财知识
  • 礼仪知识
  • 节日知识
  • 旅游知识
  • 健康知识
  • 当前位置: 工作范文网 > 生活 > 理财知识 > 正文

    黄樱桔专业实习报告

    时间:2020-10-17 09:10:46 来源:工作范文网 本文已影响 工作范文网手机站

    阳光学院

    2013级专业实习报告

    系 别: 计算机工程系

    专 业: 计算机科学与技术专业

    班 级: 2013 级2班

    姓 名: 黄樱桔

    学 号: 241392217

    指导老师: 郭晓慧

    实习单位: 厦门软云科技有限公司

    实习起讫时间 2016 年7月18日至2016年 8 月21日(共 5 周)

    PAGE

    PAGE 7

    专业实习

    一.美好的开始

    我自大二起便对web开发产生了浓厚的兴趣,然后便一直在进行相关的学习。由于学校没有开相关课程,所有的学习和实践都只能源于自己思考和书本知识,故而难免在经验上有相当大的欠缺。我越来越清醒地认识到web开发是一项技术工作,更是一门对经验依赖性很强工作,由于到了大三下,也是人生中的最后一个暑假了,也意味着暑假必须找实习了。

    一次偶然的机会下我了解到厦门杏林湾的一家小型公司正在做外包。而且他们招的实习生进去之后可以直接接触项目。这对我来说真是大大的惊喜,于是我赶紧准备下自己的简历。由于他们本来就招实习生,所以我很快就面试成功了。

    实习的第一天要求熟悉公司的开发环境,以及代码风格。

    公司的开发环境是windows+apache+mysql,开发工具是PHPstorm+navicat。开发框架用的是公司自己封装的think?PHP框架的后台管理系统。

    原本以为如今公司开发都会在linux系统下,这才清楚开发环境全凭个人喜好以及熟悉程度。其实同样是做架构,同样是写代码,环境不重要。只是因为最后的服务器是linux系统,为了避免上线以后出问题,所以对常见的linux的特点要求熟悉。

    Apache并不要求掌握多少,因为服务器维护有专职人员做,而且做的更专业更好,我们只是简单能使用就好。

    phpstorm是一套很强大的IDE,有各种版本适合各种语言开发,如静态页、js、php等。其附带的功能强大而又方便,是大中型项目的开发利器。因为在大中型项目开发时,项目内部结构错乱复杂,各个文件之间存在个各种各样的依赖关系,这时候一个好的IDE可以省下很多使用notepad开发时的劳力。

    Navicat是一套数据库管理工具,用它来连接mysql比命令行操作更方便,比phpmyadmin更快捷,因为C/S的系统有更快的响应速度以及处理速度。

    代码风格是影响团队开发的一个很重要因素,这一点在我们后面进行开发的时候给我带来相当深刻的感触。

    从简单的代码缩进、留白,到更深入的数据处理方式,处理环节,每个人都有自己的理解和想法,因为每个人都有自己的经验。

    代码格式还好说,在公司见识到了很方便的代码美化工具,可以方便的转化为自己赏心悦目的格式。但是数据的处理方式、流程、环节,却是项目整合的关键。比如关键字过滤的处理,重复处理会影响效率,比如某显示值的变换,万万不能重复处理。所以在一开始就必须规定好入口参数、出口参数的格式,并且将数据处理流程规定好!即有一套精确的数据流图!

    二.关于数据库架构——理论和实践

    该单位做的一些中小型项目是由一个经验丰富的架构师、还有几个专职人员带领我们几个实习生一起做。在数据库架构的问题上我第一次感受到经验和书本的矛盾关系。

    在看到该项目的数据库架构时,我不禁觉得其有问题。按着书上关于数据库范式的讲解,

    毫无疑问该网站的数据库存在数据冗余等诸多问题,难道这个架构师和这些工程师们不懂数据库范式?事实证明我猜对了一半,当我满怀疑惑提出数据库的问题后,才发现有一个工程师真的不清楚数据库范式是什么,甚至连这个概念都没听过。另外一个工程师带着我分析这

    个网站的用途和需求,并讲解了这样设计的优点和缺点,以及按着规范的范式要求去设计的优点个缺点。最终我了解到,数据库范式是一个规范,它在理想程度上解决了数据冗余,删除出错等诸多问题,但是当我们完全按着数据库范式去设计的时候就发现并没有想象中的好。因为有一些冗余或删除出错很可能一年才遇到一次,而且在人为提醒的状况下完全可以避免,但是为了避免冗余所耗费的劳力,所付出的代价却是相当巨大的。

    三.关于注释

    开发的时候被一再强调注释的重要性。并且就连注释的格式都规范的死死的。这就是团队开发。每一个文件都必须有文件注释,每一个函数都必须有功能注释以及参数注释,甚至就连每一个变量都必须有注释,必须清清楚楚标明用途,哪怕它的标识符很清楚表示它只是个password。

    如今的开发语言都有其相应的自动生成API帮助文档的小软件,每一个软件都规定了注释的规范,以方便生成帮助文档,好在这些文档规范大致相同。刚开始很惊讶,因为注释的内容居然能占一半,甚至更多,这在以前都未曾遇到。

    四.如何解决问题

    官网开发到一半遇到两个问题:一个是视频播放上传,再有一个就是自动绘制图表。?视频上传在土豆,优酷上屡见不鲜,可是真正到了自己开发的时候才发现并不像想象的那么容易。我只要一想到上传时网络状况、断点续传、视频格式这些技术问题,头就大了。自动图表就更不必说,根本不知道从哪里下手,更不能接受的是架构师经理和两个工程师居然也没遇到过类似问题。

    当时我觉得这件事或许解决不了,因为项目已经分好时间,工期只有这么多,即便能解决怕也是要超工期。最后向上级反映一下改一下需求然后可能就不了了之了。事实证明了我的想法很愚蠢,因为经理根本就没向上反映,只是相当淡定地给了一句话:上网找找方法,肯定能实现。没想到真让经理说中了。

    最后大家齐心合力,首先把问题分析,难关一个一个克服,经历了整夜守着谷歌翻译看帮助文档,经历了整夜手工输入连接下载flash接口,经理了整夜调试修改别人的代码。经历了一个又一个不眠之夜,工作居然提前完成了!

    事后一次聚餐的时候大家说根本没想到这个可能实现,经理说:“类似的状况我之前就遇到很多回了。最开始也是想着该需求,后来才认识到,公司招人来是解决问题的,工作就要尽责!有需求就必须满足!即便满足不了也得尽全力去做。最重要的是:事情都是人做的,别人能做,自己为什么不能,即便不能自创,抄也可以抄来”。

    四.我的收获:

    1.关于公司的开发环境和代码规范

    公司的环境和规范,都是长期以来根据实践经验慢慢总结出来的,很适合当前规模项目的开发,因此必须及时熟悉。这就如生产力和生产关系之间的联系,毫无疑问当前的生产关系是适应生产力的。

    规范包括代码规范和架构规范,它制定了数据处理流程的规范,以及考虑因素。然而不同的项目对应不同的需求,应当考虑的因素也是不同的。比如一个普通公司的内网只允许内部员工访,这样的话对安全系数的要求就不高,但大流量大负载的状况就得多加考虑!换过来如果是一个机关部门的网站,问显然不会有大流量大负载的情况出现,因此在这上面便可以少考虑,而安全系数就是不得不考虑的致命因素!

    2.关于理论和实践

    最开始的数据库问题让我明白了书上的理论在面对实现中的硬伤时表现得是那么苍白,那更多的只是理论上的完美,而实际工作中是不存在完美的!

    后来的代码实现工作让我认识到,即便是理论上掌握了,实践的话却不一定成功。且不说无数次调试后才能保证语句的正确,单单是逻辑错误出现的频率就几乎让人崩溃。原本在脑海中那么清晰地思路,到实现的时候才发现居然有那么多问题没想到!

    公司实习这段时间我清楚了什么叫:纸上得来终觉浅,绝知此事要躬行!

    3.注释——责任心的体现

    在公司开发,最开始被迫写N多注释,到后期整合项目的时候才发现多亏有这些注释。它们使得我们可以很方便地回想起自己当时的想法,更使得我们可以毫无障碍地读懂别人的代码,以后即便是换了一批人员进行二次开发或者维护都会很方便。

    注释,既是对自己作品的信心,也是对自己作品的负责!

    4.公司招人是需要解决问题

    项目遇到的两个问题最终被解决,我清楚地知道问题解决的每一个过程。从最开始的毫无头绪,到后来的稍有眉目,再到后来思路清晰,然后一步一步实现!经理那句话给我印象很深刻:公司招人是要来解决问题的!我想我以后都不会轻易说不行了。

    5.实习感受

    通过本次实习,我基本了解了公司的开发流程,以及一些开发时的注意事项,同时也使自己的代码水平上升了一个层次。然而更多的收获在于了解到工作是什么样的状态,工作中的问题以及遇到问题怎么做。经过这次实习,工作于我不再是想象中的那个空洞的名词,我深深地感受到它的存在!深深地体会到它和学校的区别!

    有关的专题