第一篇:PHP开发工程师-实习报告
毕业实习报告专用纸
PHP开发工程师实习报告
一、实习目的和意义
我自大二起便对PHP Web开发产生了浓厚的兴趣,然后便一直在进行相关的学习。由于学校没有开设相关课程,所有的学习和实践都只能源于自己思考和书本知识,故而难免在经验上有相当大的欠缺。我越来越清醒地认识到Web开发是一项技术工作,更是一门对经验依赖性很强工作,于是我便决定开始自己的实习。
为了进一步了解PHP Web开发的相关知识,掌握PHP Web开发的基本技术,丰富PHP Web开发的实战经验,巩固SQL的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率,我开始了此次实习。通过实习,巩固大学所学专业的基本知识,提高分析、判断和处理实际问题的能力,锻炼自己的实际动手能力,增强自己的团队协作意识,了解软件开发的思考角度和主要流程。为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。
二、实习岗位简介
岗位名称:PHP开发工程师
主要工作:本次实习我的主要工作与其他同事合作使用PHP语言在EcShop开源商城项目上二次开发出一个B2C商城。
三、实习内容和过程
入职第一天要求熟悉公司的开发环境,以及代码风格。
公司的开发环境是WAMP平台,即Windows、Apache、MySQL、PHP环境,开发工具是PHPEclipse和Navicat。
原本以为如今公司开发都会在Linux系统下,这才清楚开发环境全凭个人喜好以及熟悉程度。其实同样是做架构,同样是写代码,环境不重要。只是因为最后的服务器是Linux系统,为了避免上线以后出问题,所以对常见的Linux的特点要求熟悉。
Apache并不要求掌握多少,因为服务器维护有专职人员做,而且做的更专
毕业实习报告专用纸
业更好,我们只是简单的能使用就好。
Eclipse是一套很强大的IDE,有各种版本适合各种语言开发,如Java、PHP等。其附带的功能强大而又方便,是大中型项目的开发利器。因为在大中型项目开发时,项目内部结构错乱复杂,各个文件之间存在个各种各样的依赖关系,这时候一个好的IDE可以省下很多使用Notepad开发时的劳力。
Navicat是一套数据库管理工具,用它来连接MySQL比命令行操作更方便,比phpMyAdmin更快捷,因为C/S的系统有更快的响应速度以及处理速度。
代码风格是影响团队开发的一个很重要因素,这一点在我们后面进行开发的时候给我带来相当深刻的感触。从简单的代码缩进、留白,到更深入的数据处理方式,处理环节,每个人都有自己的理解和想法,因为每个人都有自己的经验。
代码格式还好说,在公司见识到了很方便的代码美化工具,可以方便的转化为自己赏心悦目的格式。但是数据的处理方式、流程、环节,却是项目整合的关键。比如关键字过滤的处理,重复处理会影响效率,比如某个显示值的变换,万万不能重复处理。所以在一开始就必须规定好入口参数、出口参数的格式,并且将数据处理流程规定好!即有一套精确的数据流图!
关于数据库架构——理论和实践
该商城是由一个经验丰富的项目经历、还有几个专职人员带领我们几个实习生一起做。在数据库架构的问题上我第一次感受到经验和书本的矛盾关系。
在看到该商城的数据库架构时,我不禁觉得其有问题。按着书上关于数据库范式的讲解,毫无疑问该网站的数据库存在数据冗余等诸多问题,难道这个项目经理和这些工程师们不懂数据库范式?事实证明我猜对了一半,当我满怀疑惑提出数据库的问题后,才发现有一个工程师真的不清楚数据库范式是什么,甚至连这个概念都没听过。另外一个工程师带着我分析这个网站的用途和需求,并讲解了这样设计的优点和缺点,以及按着规范的范式要求去设计的优点和缺点。最终我了解到,数据库范式是一个规范,它在理想程度上解决了数据冗余,删除出错等诸多问题,但是当我们完全按着数据库范式去设计的时候就发现并没有想象中的好。因为有一些冗余或删除出错很可能一年才遇到一次,而且在人为提醒的状况下完全可以避免,但是为了避免冗余所耗费的劳力,所付出的代价却是相当巨大的。
毕业实习报告专用纸
关于注释
开发的时候被一再强调注释的重要性。并且就连注释的格式都规范的死死的。这就是团队开发。每一个文件都必须有文件注释,每一个函数都必须有功能注释以及参数注释,甚至就连每一个变量都必须有注释,必须清清楚楚标明用途,哪怕它的标识符很清楚表示它只是个password。
如今的开发语言都有其相应的自动生成API帮助文档的小软件,每一个软件都规定了注释的规范,以方便生成帮助文档,好在这些文档规范大致相同。刚开始很惊讶,因为注释的内容居然能占一半,甚至更多,这在以前都未曾遇到。
如何解决问题
商城开发到一半遇到两个问题:一个是视频播放上传,再有一个就是自动绘制图表。
视频上传在土豆、优酷上屡见不鲜,可是真正到了自己开发的时候才发现并不像想象的那么容易。我只要一想到上传时网络状况、断点续传、视频格式这些技术问题,头就大了。自动图表就更不必说,根本不知道从哪里下手,更不能接受的是项目经理和两个工程师居然也没遇到过类似问题。
当时我觉得这件事或许解决不了,因为项目已经分好时间,工期只有这么多,即便能解决怕也是要超工期。最后向上级反映一下改一下需求然后可能就不了了之了。事实证明了我的想法很愚蠢,因为经理根本就没向上反映,只是相当淡定地给了一句话:上网找找方法,肯定能实现。没想到真让经理说中了。
最后大家齐心合力,首先把问题分析,难关一个一个克服,经历了整夜守着谷歌翻译看帮助文档,经历了整夜手工输入连接下载flash接口,经理了整夜调试修改别人的代码……经历了一个又一个不眠之夜,工作居然提前完成了!
事后一次聚餐的时候大家说根本没想到这个可能实现,经理说:“类似的状况我之前就遇到很多回了。最开始也是想着该需求,后来才认识到,公司招人来是解决问题的,工作就要尽责!有需求就必须满足!即便满足不了也得尽全力去做。最重要的是:事情都是人做的,别人能做,自己为什么不能,即便不能自创,抄也可以抄来”。
四、实习心得:
1.关于公司的开发环境和代码规范
毕业实习报告专用纸
公司的环境和规范,都是长期以来根据实践经验慢慢总结出来的,很适合当前规模项目的开发,因此必须及时熟悉。这就如生产力和生产关系之间的联系,毫无疑问当前的生产关系是适应生产力的。
规范包括代码规范和架构规范,它制定了数据处理流程的规范,以及考虑因素。然而不同的项目对应不同的需求,应当考虑的因素也是不同的。比如一个普通公司的内网只允许内部员工访,这样的话对安全系数的要求就不高,但大流量大负载的状况就得多加考虑!换过来如果是一个机关部门的网站,显然不会有大流量大负载的情况出现,因此在这上面便可以少考虑,而安全系数就是不得不考虑的致命因素!
2.关于理论和实践
最开始的数据库问题让我明白了书上的理论在面对实现中的硬伤时表现得是那么苍白,那更多的只是理论上的完美,而实际工作中是不存在完美的!
后来的代码实现工作让我认识到,即便是理论上掌握了,实践的话却不一定成功。且不说无数次调试后才能保证语句的正确,单单是逻辑错误出现的频率就几乎让人崩溃。原本在脑海中那么清晰地思路,到实现的时候才发现居然有那么多问题没想到!
公司实习这段时间我清楚了什么叫:纸上得来终觉浅,绝知此事要躬行!3.注释——责任心的体现
在公司开发,最开始被迫写N多注释,到后期整合项目的时候才发现多亏有这些注释。它们使得我们可以很方便地回想起自己当时的想法,更使得我们可以毫无障碍地读懂别人的代码,以后即便是换了一批人员进行二次开发或者维护都会很方便。
注释,既是对自己作品的信心,也是对自己作品的负责!4.公司招人是需要解决问题
商城遇到的两个问题最终被解决,我清楚地知道问题解决的每一个过程。从最开始的毫无头绪,到后来的稍有眉目,再到后来思路清晰,然后一步一步实现!经理那句话给我印象很深刻:公司招人是要来解决问题的!我想我以后都不会轻易说不行了。
毕业实习报告专用纸
五、实习感受
通过本次实习,我基本了解了公司的开发流程,以及一些开发时的注意事项,同时也使自己的代码水平上升了一个层次。然而更多的收获在于了解到工作是什么样的状态,工作中的问题以及遇到问题怎么做。经过这次实习,工作于我不再是想象中的那个空洞的名词,我深深地感受到它的存在!深深地体会到它和学校的区别!
第二篇:PHP开发工程师实习报告(原创0分)范文
PHP开发工程师实习报告
实习背景:
我自大二起便对web开发产生了浓厚的兴趣,然后便一直在进行相关的学习。由于学校没有开相关课程,所有的学习和实践都只能源于自己思考和书本知识,故而难免在经验上有相当大的欠缺。我越来越清醒地认识到web开发是一项技术工作,更是一门对经验依赖性很强工作,于是我便决定开始自己的实习。
偶然的机会下我了解到北京二零二零摄影工作室正在建自己的官网,由于是一个公司自己的官网,所以虽然项目不是很大大,但是需求很有普遍性。而且从前台页面设计到后台开发实现,再加上网站安全设计,很多以前接触到没接触到的都需要用到,于是便来此实习。
实习内容:
1.入职第一天
入职第一天要求熟悉公司的开发环境,以及代码风格。
公司的开发环境是windoes+apache+mysql,开发工具是Eclipse+navicat。
原本以为如今公司开发都会在linux系统下,这才清楚开发环境全凭个人喜好以及熟悉程度。其实同样是做架构,同样是写代码,环境不重要。只是因为最后的服务器是linux系统,为了避免上线以后出问题,所以对常见的linux的特点要求熟悉。
Apache并不要求掌握多少,因为服务器维护有专职人员做,而且做的更专业更好,我们只是简单能使用就好。
Eclipse是一套很强大的IDE,有各种版本适合各种语言开发,如java、php等。其附带的功能强大而又方便,是大中型项目的开发利器。因为在大中型项目开发时,项目内部结构错乱复杂,各个文件之间存在个各种各样的依赖关系,这时候一个好的IDE可以省下很多使用notepad开发时的劳力。
Navicat是一套数据库管理工具,用它来连接mysql比命令行操作更方便,比phpmyadmin更快捷,因为C/S的系统有更快的响应速度以及处理速度。
代码风格是影响团队开发的一个很重要因素,这一点在我们后面进行开发的时候给我带来相当深刻的感触。
从简单的代码缩进、留白,到更深入的数据处理方式,处理环节,每个人都有自己的理解和想法,因为每个人都有自己的经验。
代码格式还好说,在公司见识到了很方便的代码美化工具,可以方便的转化为自己赏心悦目的格式。但是数据的处理方式、流程、环节,却是项目整合的关键。比如关键字过滤的处理,重复处理会影响效率,比如某显示值的变换,万万不能重复处理。所以在一开始就必须规定好入口参数、出口参数的格式,并且将数据处理流程规定好!即有一套精确的数据流图!
2.关于数据库架构——理论和实践
该单位的官网是由一个经验丰富的架构师、还有几个专职人员带领我们几个实习生一起做。在数据库架构的问题上我第一次感受到经验和书本的矛盾关系。
在看到该官网的数据库架构时,我不禁觉得其有问题。按着书上关于数据库范式的讲解,毫无疑问该网站的数据库存在数据冗余等诸多问题,难道这个架构师和这些工程师们不懂数据库范式?事实证明我猜对了一半,当我满怀疑惑提出数据库的问题后,才发现有一个工程师真的不清楚数据库范式是什么,甚至连这个概念都没听过。另外一个工程师带着我分析这
个网站的用途和需求,并讲解了这样设计的优点和缺点,以及按着规范的范式要求去设计的优点个缺点。最终我了解到,数据库范式是一个规范,它在理想程度上解决了数据冗余,删除出错等诸多问题,但是当我们完全按着数据库范式去设计的时候就发现并没有想象中的好。因为有一些冗余或删除出错很可能一年才遇到一次,而且在人为提醒的状况下完全可以避免,但是为了避免冗余所耗费的劳力,所付出的代价却是相当巨大的。
3.关于注释
开发的时候被一再强调注释的重要性。并且就连注释的格式都规范的死死的。这就是团队开发。每一个文件都必须有文件注释,每一个函数都必须有功能注释以及参数注释,甚至就连每一个变量都必须有注释,必须清清楚楚标明用途,哪怕它的标识符很清楚表示它只是个password。
如今的开发语言都有其相应的自动生成API帮助文档的小软件,每一个软件都规定了注释的规范,以方便生成帮助文档,好在这些文档规范大致相同。刚开始很惊讶,因为注释的内容居然能占一半,甚至更多,这在以前都未曾遇到。
4.如何解决问题
官网开发到一半遇到两个问题:一个是视频播放上传,再有一个就是自动绘制图表。视频上传在土豆,优酷上屡见不鲜,可是真正到了自己开发的时候才发现并不像想象的那么容易。我只要一想到上传时网络状况、断点续传、视频格式这些技术问题,头就大了。自动图表就更不必说,根本不知道从哪里下手,更不能接受的是架构师经理和两个工程师居然也没遇到过类似问题。
当时我觉得这件事或许解决不了,因为项目已经分好时间,工期只有这么多,即便能解决怕也是要超工期。最后向上级反映一下改一下需求然后可能就不了了之了。事实证明了我的想法很愚蠢,因为经理根本就没向上反映,只是相当淡定地给了一句话:上网找找方法,肯定能实现。没想到真让经理说中了。
最后大家齐心合力,首先把问题分析,难关一个一个克服,经历了整夜守着谷歌翻译看帮助文档,经历了整夜手工输入连接下载flash接口,经理了整夜调试修改别人的代码„„经历了一个又一个不眠之夜,工作居然提前完成了!
事后一次聚餐的时候大家说根本没想到这个可能实现,经理说:“类似的状况我之前就遇到很多回了。最开始也是想着该需求,后来才认识到,公司招人来是解决问题的,工作就要尽责!有需求就必须满足!即便满足不了也得尽全力去做。最重要的是:事情都是人做的,别人能做,自己为什么不能,即便不能自创,抄也可以抄来”。
实习心得:
1.关于公司的开发环境和代码规范
公司的环境和规范,都是长期以来根据实践经验慢慢总结出来的,很适合当前规模项目的开发,因此必须及时熟悉。这就如生产力和生产关系之间的联系,毫无疑问当前的生产关系是适应生产力的。
规范包括代码规范和架构规范,它制定了数据处理流程的规范,以及考虑因素。然而不同的项目对应不同的需求,应当考虑的因素也是不同的。比如一个普通公司的内网只允许内部员工访,这样的话对安全系数的要求就不高,但大流量大负载的状况就得多加考虑!换过来如果是一个机关部门的网站,问显然不会有大流量大负载的情况出现,因此在这上面便可以少考虑,而安全系数就是不得不考虑的致命因素!
2.关于理论和实践
最开始的数据库问题让我明白了书上的理论在面对实现中的硬伤时表现得是那么苍白,那更多的只是理论上的完美,而实际工作中是不存在完美的!
后来的代码实现工作让我认识到,即便是理论上掌握了,实践的话却不一定成功。且不说无数次调试后才能保证语句的正确,单单是逻辑错误出现的频率就几乎让人崩溃。原本在脑海中那么清晰地思路,到实现的时候才发现居然有那么多问题没想到!
公司实习这段时间我清楚了什么叫:纸上得来终觉浅,绝知此事要躬行!
3.注释——责任心的体现
在公司开发,最开始被迫写N多注释,到后期整合项目的时候才发现多亏有这些注释。它们使得我们可以很方便地回想起自己当时的想法,更使得我们可以毫无障碍地读懂别人的代码,以后即便是换了一批人员进行二次开发或者维护都会很方便。
注释,既是对自己作品的信心,也是对自己作品的负责!
4.公司招人是需要解决问题
官网遇到的两个问题最终被解决,我清楚地知道问题解决的每一个过程。从最开始的毫无头绪,到后来的稍有眉目,再到后来思路清晰,然后一步一步实现!经理那句话给我印象很深刻:公司招人是要来解决问题的!我想我以后都不会轻易说不行了。
5.实习感受
通过本次实习,我基本了解了公司的开发流程,以及一些开发时的注意事项,同时也使自己的代码水平上升了一个层次。然而更多的收获在于了解到工作是什么样的状态,工作中的问题以及遇到问题怎么做。经过这次实习,工作于我不再是想象中的那个空洞的名词,我深深地感受到它的存在!深深地体会到它和学校的区别!
第三篇:PHP开发工程师岗位职责
1.负责PHP相关产品模块开发工作。
2.负责公司业务系统开发、单元测试、系统对接工作。
3.负责公司已有网络管理系统的二次开发。
4.负责相关系统的设计与编码工作。
5.负责研发产品技术文稍的编写工作。
第四篇:PHP研发工程师-实习报告
2008级毕业实习报告
--北京拉手网络技术有限公司PHP工程师实习报告
一实习目的 随着经济高速发展,社会的竞争也越来越激烈。适者生存,对于初出茅庐的大学生,我们只有不断的充实自己,提高自己,才能在社会中站稳脚跟,才不至于淹没在社会发展的浪潮中,被这个社会淘汰。实习对于我们来说,是一个很宝贵的经验。
于是在今年暑假,我在北京拉手网络技术有限公司实习了一个多月,岗位是PHP工程师。短短一个多月的职生涯真的影响了我很多,我开始不断的对身边的人、事和物去思考,去寻找,去理解,去欣赏,去评价,去表达。就像我用两天的时间制作出一张首页效果图,他人往往只能看到完成品。而这并不是最重要的,最重要的是别人没有经历的我却在珍惜的创作过程。也许这个过程还远远不能称之为创造,但我会努力的。
从学校毕业后,我第一次步入了社会,从此开始了面对社会、工作的生活。刚刚走入社会的我是一个性格有些内向的人,面对陌生的人,我不善言辞,不会给自己的外表进行很好的包装,不适合做那些销售、接待的工作,只有技术类的工作,少说多干的活适合我。于是在今年暑假,我在北京拉手网络技术有限公司实习了一个多月,岗位是实习PHP工程师。现将我在工作中的情况报告如下。下面就我这一个多月的职业生涯谈谈我个人的感受
二实习内容
1、实习主要内容 整体工作:我的工作就是负责设计整个网站的部分页面功能,根据需求小组和产品部门的设计稿完成相应网站开发。
(1)使用Linux系统搭建LAMP环境,进行PHP程序开发。
(2)使用Mysql数据库作为存储介质。
(3)使用ThinkPHP框架和MVC架构完成大部分页面开发工作
(4)编写PHP+Ajax代码使网站页面可以无刷新异步交互。
2、工作介绍 做为一个刚毕业的大学生,我的知识储备肯定有不足的地方,毕竟学校教的东西肯定会有一部分和社会是脱节的,但好在我的领导对于我没有太多的要求,他只是要求我尽快的适应公司的工作和生活,在短时间内熟练的掌握相关技术,干好本职工作。
在大学里对一个学生来说什么是最重要的,那就是学习能力。要知道,这个世界上,知识在发展,人类在进步,每天都在进行日新月异的变化,我们的知识储备总会有不够的地方,但是一定要有学习能力,将不会知识快速掌握,只有这样才能占据主动,减少被动情况的尴尬发生,通过二个星期的时间,我成功的适应了公司的工作和生活节奏,每天早九点上班,晚18:00下班,中午休息一个半小时,每周还有两天假期。我利用业余时间,抓紧学习,将工作中所需要的技术进行了强化学习,其实这些东西在学校的时候就接触过,只是不精通。那个时候学的东西多,难免有个主次之分,这次工作了,才知道哪个应该多学点,但好在我都有学过,所以有个好的基础在这里,也就不怕了,比如说:Ajax,公司要求技术人员会写Ajax,Ajax这东西以前我在宿舍的时候经常玩的,可是后来用的地方少,以为这东西没有什么用处,结果就给荒废了。但好在还有印象,并且当初记了很多的笔记,所以说记笔记是很重要的事情。而其它像javascript、xml、数据库这些东西我都学过,只是实践能力稍差一点,但好在从前在学习方面用的功不是白费的。通过这种实战环境,和半个月的刻苦学习,我终于可以感上小组的工作进度了,已经可以很好的完成领导教给我的任务了。
我工作的这家公司,从事电子商务、的,公司在技术团队这部分是比较正规的,一般是五到六人为一个小组,小组中有明确分工,有负责设计需求的需求小组,有专门做技术的,而在技术这块分为网站前台、后台开发,我在学校主要做的是后台开发,当然前台设计工作也还算熟练,但不是很精通。我们这个小组一般接下的活都是一些网站功能上的开发工作,有相当一部分的工作,是我没有接触过的或者以前接触到的只是皮毛,而现在应用到生产环境才发现以前的解决方案不是很成熟。
像我这个组常用的是LAMP平台,PHP技术进行开发,服务器平台采用linux,这种lamp组合,我很高兴在学校学的东西能学有所用。以前我们是用表格(table)进行排版,这种方式简单但是已经有些过时了,现在大部分网站都开始了重新构架,所以都采用css+div进行网页排版,我目前正在学习,掌握的还算比较快。而在后台开发部分,我们使用php来进行开发,我的工作是手写一些小模块。或者用javascript写一些特效小代码。
3、工作流程
小组分工时,我负责后台里小模块的开发工作,如:留言板或论坛,还有一部分javascript代码编写工作。前台部分的工作是和组里的同事做一些排版的工作,使用css+div技术。编写代码这种工作看起来有些枯燥,其实时间长了以后,还真有点厌烦,但是后来我明白,只有将自己的本职工作做好,提高自己的技术,做出优良的东西,这样自己才会有价值感,才会对自己的工作保持新鲜感。所以我每天都在工作后,记录下每天在技术上的不足之处,回家后,将强学习,这所谓:找出不会的地方,学会它,你就变的强大了。
PHP是现在比较流行的一种网站开发技术,由于它是开源的免费代码,并因良好的跨平台性能受到了大重的喜欢,我个人认为php很简单,适合初学者学习使用,但是在某些地方想要做好,就需要你认真的学习了。目前,我负责的只是技术性较低和规模较小的模块,不过,我觉得从简单处做起也挺好的,但是我在写代码时,还是经常犯些小错误,导致代码页面经常出错,而自己往往还找不到是哪错了,有几次急的都不行,不管怎么弄,结果就是错误,后来我才发现,原来只是一个小错误,小的不仔细察看,我都找不到。于是我明白,做开发工作,一定要细心,否则就会给自己和别人带来麻烦。
三实习体会
做了一个多月的PHP研发人员,终于体会到程序设计无非是增删改查的那点事。不过,当你真正的去努力的创造了之后,结果却并不会每次都是好的。太多自己精心设计的东西,被别人的一个需求就否定了。当时心情真的很糟糕。不过,现在想想,这都些都没有什么,这也无非是成长中常常要遇到的事罢了。通过实习,我不仅将自己在学校学过的东西通过实践进步一巩固,也通过向公司的人请教学到很多工作上的技巧,更通过实习体会到很多没有人会教授给你的东西。
在实习过程中我学到的最重要的是坚持下去的耐力和责任感,仅仅有兴趣是不够的,做一个编程人员并没有什么经济利益来驱动展开,靠的是自己的热爱与责任感。做PHP开发其实是一件很枯燥的工作,每天需要对着电脑端坐几个小时,一行一行的进行代码审核,算法,程序,存储方式,架构……需要注意的东西太多太多了,却又都需要注意到。
在这段时间里,我在个人技术上收获了很多,现在的我已经能独档一面了,做一些难度比较大的工作,我通过优异的表现,已经转为正式员工,我对自己的表现感到满意,最重要的是我给自己的学校争了光,但是在社交能力方面,沟通能力上还有不足的地方。我决定在今后的工作和学习,要加强和别人的沟通能力。使自己变的更好,为国家为社会做出更多的贡献。
工作是人生活的重要部分,是我们毕业生必须面对的,不论是消极还是积极,都会给人带来不同感受。而精彩的生活往往有来源于有意义的工作中,所以我不会让自己因工作的烦恼、困难和压力,困扰自己,使自己工作情绪化、生活情绪化。遇到困难我会用平常的心态实际看待问题,慢慢的提升自己的能力,解决困难,挑战困难!
2012年3月11日
第五篇:PHP实习报告
PHP实习报告
1.入职第一天
入职第一天要求熟悉公司的开发环境,以及代码风格。
公司的开发环境是windoes+apache+mysql,开发工具是Eclipse+navicat。
原本以为如今公司开发都会在linux系统下,这才清楚开发环境全凭个人喜好以及熟悉程度。其实同样是做架构,同样是写代码,环境不重要。只是因为最后的服务器是linux系统,为了避免上线以后出问题,所以对常见的linux的特点要求熟悉。
Apache并不要求掌握多少,因为服务器维护有专职人员做,而且做的更专业更好,我们只是简单能使用就好。
Eclipse是一套很强大的IDE,有各种版本适合各种语言开发,如java、php等。其附带的功能强大而又方便,是大中型项目的开发利器。因为在大中型项目开发时,项目内部结构错乱复杂,各个文件之间存在个各种各样的依赖关系,这时候一个好的IDE可以省下很多使用notepad开发时的劳力。
Navicat是一套数据库管理工具,用它来连接mysql比命令行操作更方便,比phpmyadmin更快捷,因为C/S的系统有更快的响应速度以及处理速度。
代码风格是影响团队开发的一个很重要因素,这一点在我们后面进行开发的时候给我带来相当深刻的感触。
从简单的代码缩进、留白,到更深入的数据处理方式,处理环节,每个人都有自己的理解和想法,因为每个人都有自己的经验。
代码格式还好说,在公司见识到了很方便的代码美化工具,可以方便的转化为自己赏心悦目的格式。但是数据的处理方式、流程、环节,却是项目整合的关键。比如关键字过滤的处理,重复处理会影响效率,比如某显示值的变换,万万不能重复处理。所以在一开始就必须规定好入口参数、出口参数的格式,并且将数据处理流程规定好!即有一套精确的数据流图!
2.关于数据库架构——理论和实践
该单位的官网是由一个经验丰富的架构师、还有几个专职人员带领我们几个实习生一起做。在数据库架构的问题上我第一次感受到经验和书本的矛盾关系。
在看到该官网的数据库架构时,我不禁觉得其有问题。按着书上关于数据库范式的讲解,毫无疑问该网站的数据库存在数据冗余等诸多问题,难道这个架构师和这些工程师们不懂数据库范式?事实证明我猜对了一半,当我满怀疑惑提出数据库的问题后,才发现有一个工程师真的不清楚数据库范式是什么,甚至连这个概念都没听过。另外一个工程师带着我分析这个网站的用途和需求,并讲解了这样设计的优点和缺点,以及按着规范的范式要求去设计的优点个缺点。最终我了解到,数据库范式是一个规范,它在理想程度上解决了数据冗余,删除出错等诸多问题,但是当我们完全按着数据库范式去设计的时候就发现并没有想象中的好。因为有一些冗余或删除出错很可能一年才遇到一次,而且在人为提醒的状况下完全可以避免,但是为了避免冗余所耗费的劳力,所付出的代价却是相当巨大的。
3.关于注释
开发的时候被一再强调注释的重要性。并且就连注释的格式都规范的死死的。这就是团队开发。每一个文件都必须有文件注释,每一个函数都必须有功能注释以及参数注释,甚至就连每一个变量都必须有注释,必须清清楚楚标明用途,哪怕它的标识符很清楚表示它只是个password。
如今的开发语言都有其相应的自动生成API帮助文档的小软件,每一个软件都规定了注释的规范,以方便生成帮助文档,好在这些文档规范大致相同。刚开始很惊讶,因为注释的内容居然能占一半,甚至更多,这在以前都未曾遇到。
4.如何解决问题
官网开发到一半遇到两个问题:一个是视频播放上传,再有一个就是自动绘制图表。视频上传在土豆,优酷上屡见不鲜,可是真正到了自己开发的时候才发现并不像想象的那么容易。我只要一想到上传时网络状况、断点续传、视频格式这些技术问题,头就大了。自动图表就更不必说,根本不知道从哪里下手,更不能接受的是架构师经理和两个工程师居然也没遇到过类似问题。
当时我觉得这件事或许解决不了,因为项目已经分好时间,工期只有这么多,即便能解决怕也是要超工期。最后向上级反映一下改一下需求然后可能就不了了之了。事实证明了我的想法很愚蠢,因为经理根本就没向上反映,只是相当淡定地给了一句话:上网找找方法,肯定能实现。没想到真让经理说中了。
最后大家齐心合力,首先把问题分析,难关一个一个克服,经历了整夜守着谷歌翻译看帮助文档,经历了整夜手工输入连接下载flash接口,经理了整夜调试修改别人的代码„„经历了一个又一个不眠之夜,工作居然提前完成了!
事后一次聚餐的时候大家说根本没想到这个可能实现,经理说:“类似的状况我之前就遇到很多回了。最开始也是想着该需求,后来才认识到,公司招人来是解决问题的,工作就要尽责!有需求就必须满足!即便满足不了也得尽全力去做。最重要的是:事情都是人做的,别人能做,自己为什么不能,即便不能自创,抄也可以抄来”。
实习心得:
1.关于公司的开发环境和代码规范
公司的环境和规范,都是长期以来根据实践经验慢慢总结出来的,很适合当前规模项目的开发,因此必须及时熟悉。这就如生产力和生产关系之间的联系,毫无疑问当前的生产关系是适应生产力的。
规范包括代码规范和架构规范,它制定了数据处理流程的规范,以及考虑因素。然而不同的项目对应不同的需求,应当考虑的因素也是不同的。比如一个普通公司的内网只允许内部员工访,这样的话对安全系数的要求就不高,但大流量大负载的状况就得多加考虑!换过来如果是一个机关部门的网站,问显然不会有大流量大负载的情况出现,因此在这上面便可以少考虑,而安全系数就是不得不考虑的致命因素!
2.关于理论和实践
最开始的数据库问题让我明白了书上的理论在面对实现中的硬伤时表现得是那么苍白,那更多的只是理论上的完美,而实际工作中是不存在完美的!
后来的代码实现工作让我认识到,即便是理论上掌握了,实践的话却不一定成功。且不说无数次调试后才能保证语句的正确,单单是逻辑错误出现的频率就几乎让人崩溃。原本在脑海中那么清晰地思路,到实现的时候才发现居然有那么多问题没想到!
公司实习这段时间我清楚了什么叫:纸上得来终觉浅,绝知此事要躬行!
3.注释——责任心的体现
在公司开发,最开始被迫写N多注释,到后期整合项目的时候才发现多亏有这些注释。它们使得我们可以很方便地回想起自己当时的想法,更使得我们可以毫无障碍地读懂别人的代码,以后即便是换了一批人员进行二次开发或者维护都会很方便。
注释,既是对自己作品的信心,也是对自己作品的负责!
4.公司招人是需要解决问题
官网遇到的两个问题最终被解决,我清楚地知道问题解决的每一个过程。从最开始的毫无头绪,到后来的稍有眉目,再到后来思路清晰,然后一步一步实现!经理那句话给我印象很深刻:公司招人是要来解决问题的!我想我以后都不会轻易说不行了。
5.实习感受
通过本次实习,我基本了解了公司的开发流程,以及一些开发时的注意事项,同时也使自己的代码水平上升了一个层次。然而更多的收获在于了解到工作是什么样的状态,工作中的问题以及遇到问题怎么做。经过这次实习,工作于我不再是想象中的那个空洞的名词,我深深地感受到它的存在!深深地体会到它和学校的区别!