大学生微软公司实习总结_第1页
大学生微软公司实习总结_第2页
大学生微软公司实习总结_第3页
大学生微软公司实习总结_第4页
大学生微软公司实习总结_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档2016全新精品资料全新公文范文全程指导写作独家原创1/11大学生微软公司实习总结大学生微软公司实习总结前言离开实习的那家公司已经有一个月了,但这篇文章却迟迟没有写完,或者是找工作让人折腾,或者还是自己太懒了,趁这两天有一阵缓冲期,抓紧时间把这段经历做个总结吧。在正式开始之前,首先介绍一下我实习的这间小公司的一些概况吧,这家公司做的是ERP产品,使用的技术是WINFORM/C。在这实习的两个月时间里,WINFORM给我的感觉是适合做桌面快速开发,但我还是不太喜欢这门技术,觉得WINFORM的前后台开发比较耦合,对界面的展现相当乏力,据闻微软推出的WPF会是WINFORM的一个替代品,可见在未来WINFORM的使用率会逐渐下降。BOSS是一个新西兰海归,本身也有10年开发经验了,现在回国创业。期间在与BOSS交流的过程中,发现一个有趣的事情在新西兰那边软件开发行业微软的技术很流行,原因是微软与那边的大学合作紧密,采取了一系列激励学生从事微软技术开发的措施开设专门学习微软技术的课程,计算机学生可以免费获得WINDOWS正版认证,如果在学校的微软课程中学习成绩优异,还可以获得额外的奖品,BOSS说他曾经在微软的技术课程中考到了第一名,然后就被邀请到新西兰微软总部领取了一台XBOX游戏机,可见,微软在精品文档2016全新精品资料全新公文范文全程指导写作独家原创2/11那边的推广力度还是很大的。为什么微软愿意花这么大资金投入呢相信没有人愿意做亏本生意。BOSS提到在新西兰那边,版权是受到法律严格保护的,如果员工发现公司没有使用正版软件,是可以直接告公司的,所以那边的公司基本都会用正版软件,微软的投入不是没有回报的。同时新西兰的IT行业起步不是很早,所以在微软的高推广力度下收效非常可观。闲说了这么多东西,接下来开始进入正题吧,首先要介绍的是工具篇。工具篇“功欲善其事,必先利其器。”作为一个开发者,除了具备优良的编程理念和敏锐的思路,同时应该能熟练地使用一些工具,内外兼修,工具的使用能大幅度地提升开发效率,带来的效益是很可观的。在实习的这家公司里,开发用的是VISUSLSTDIO2010和SQLSERVER2008。对于数据库而言,我没接触过其他DBM,所以不好对比,但是一提起VS,仿佛我眼中就冒出火光了,对,这是我接触过最强大,最具生产力的开发环境,没有之一。对于这两个常用的开发环境,这里就不在多说了,接下来将介绍一下其他的工具。1ERSTUDIO在未使用ERSTUDIO前,我一直是直接在SQLSERVER精品文档2016全新精品资料全新公文范文全程指导写作独家原创3/11的QUERY窗口中写CREATETABLE语句,说实在话,我很喜欢这样的开发方式,毕竟一切都在代码的可控制范围内。但手动写CREATETABLE对于TABLE少的情况下还好,一旦TABLE的数量比较多的时候就比较难办,因为很难看出表与表之间的联系,容易遗漏东西。ERSTUDIO具有强大的数据库建模功能,可以自动生成CREATETABLE语句,同时还可以查看已建好的数据库的结构,印象比较深的一次是使用ERSTUDIO把数据库中的大概30张表拉到可视化建模界面显示,表与表之间的联系能够清晰地展现出来,对于了解整个模块的数据库设计提供了非常好的图形界面。2TEAMFOUNDATIONSERVERTFS作为一个团队开发服务软件,只需部署到服务器上,然后让每个开发端的VS的团队资源管理器连接到服务器,这样就能进行团队开发任务了。确切来说,TFS大概可以分为两个部分,一个是源代码管理,另一个是开发任务管理。对于源代码管理,在日常开发中经常用到的操作有获取最新版,签入代码,签出代码,解决冲突等。当然TFS还提供了很多强大的功能,这里就不一一列举出来了。对于每个开发者而言,使用源代码管理器,不仅可以专注于自己所负责的模块的开发情况,也可以及时地获取最新版本,同时源代码管理器还保留了历史开发版本,精品文档2016全新精品资料全新公文范文全程指导写作独家原创4/11具有很高的安全性,对于团队项目来说这真是必不可少的一个工具。TFS对于软件开发管理方面同样提供了很好的支持,使用开发任务管理,你可以建立自己的任务列表,设置每个任务的优先级,预计完成时间,开发标记(未开始,开始,已完成,阻塞),以及注释等等。在之前做个人项目开发的时候,自己是没有做提前规划的习惯,基本上是突然想到什么就做什么,开发任务很凌乱,所以效率确实不怎么样。而开发任务管理可以帮助你整理任务,跟踪你的开发情况,记录每天的工作情况,久而久之你也许会惊喜发现自己的开发效率会在潜移默化中逐渐提高,至少对于我自己使用过后的感受是这样子的。以致后来自己在做个人开发的时候,也喜欢使用开发任务管理软件,不过我不是使用TFS,毕竟这是针对团队开发而言的,对于个人使用有点过于庞大而且部署复杂,所以我自己使用的是一款叫做TODOLIST的免费软件,我非常喜爱这个东西,因为它确实很好用,所以在这里推荐给大伙。微软的TFS功能很强大,同时也是一个收费软件,如果想使用免费的SVN,可以参见MERCURIAL,著名问答平台STACKOVERFLOW就是使用这个版本管理软件。3SQLSERVERPROFIE精品文档2016全新精品资料全新公文范文全程指导写作独家原创5/11SQLSERVERPROFILE是一个监控SQLSERVER运行的组件,需要安装SQLSERVER企业版才会有这个组件。使用这个组件的一个很重要原因是为了监控SQL和存储过程的执行情况,因为实习的这家公司使用自己开发的框架,封装了很多数据库底层操作,所以有时出BUG了,需要查看某个存储过程或SQL到底执行了没有,这时候SQLSERVERPROFIE就派上用场了。4SQLPROMT使用了SQLPROMT后,我发现我越来越离不开它了。不知道SQLSERVER2012对于TSQL智能提示的支持做得怎样,至少在我本机的SQLSERVER08EXPRESSR2的智能提示确实不怎么样。SQLPROMT是可以运行在SQLSERVER上的一个收费插件,提供了强大的智能提示功能。实习的这家公司很多业务逻辑需要写成存储过程,对于两三百行的存储过程如果智能提示很差的话,对于编写者而言将是一个灾难,因为我自己一开始没有用这个插件,对比两个开发模式,所以我深有体会,使用PROMT可以大大提高开发效率。技术篇112层的开发框架传统的开发框架基本分为最基础的三层界面UI层,业务逻辑层,数据访问层。12层的开发框架是建立在传统三层之上的,首先最底层是基础层,分别定义了项目的界精品文档2016全新精品资料全新公文范文全程指导写作独家原创6/11面,业务逻辑,数据访问的基础组件,供上层使用。层与层之间的调用也是有严格限制的,即上层只能访问下层的东西。也许你会觉得12层好像很多余,使用传统三层不也可以吗其实这就要牵涉到ERP的问题了,虽然ERP已经有一系列的标准操作,但不同的行业,细分到不同的公司,却希望能有个性化定制,切实符合公司实际应用场景,如果使用传统三层,那么有关个性化的部分会与公司的ERP通用产品紧密地耦合在一起,这是不利于后期维护和功能扩展的。12层的开发框架就是为了解决这个问题的,基础层之上是标准层,标准层之上是行业层,行业层之上是公司层,这样客户个性化定制的功能就主要集中在上层了,这就避免了耦合,从而也能最大程度地重用代码。2面向集合的SQL相信很多开发者跟我一样,因为对于面向过程的熟悉,很容易把面向过程的思想也带到SQL中来。比如说现在为一张表生成测试数据,面向过程的思想会这样做这还不简单嘛,写个WHILE循环,设定一个循环变量,一次插入一行数据,然后就翘起双手坐等结果出来。这样子的方案确实能解决问题,但又有没有考虑过效率问题呢如果按照一次一行的处理方式的话,SQLSERVER会为每一行INSERT生成一个事务处理,一旦处理的数据量很大,速度精品文档2016全新精品资料全新公文范文全程指导写作独家原创7/11是非常慢的。不如让我们把视角从面向过程转到面向集合,来看看面向集合又可以怎样实现吧。面向集合的SQL当然这个例子还不足以说明面向集合思想的应用场景,要讲明白面向集合的思想还需要很大的篇幅介绍,这里也就点到为止了,毕竟我自己也处于接收面向集合思想的初级阶段,就不敢继续班门弄斧了,想要了解更多可以点击HTTP/ITURINGCOMCN/ARTICLE/DETAILS/472。3使用脚本模板和界面模板很多时候,在进入功能开发的前期,我们都要做一系列基础的工作,比如新建一个FORM后,引入必要的命名空间,添加必要的界面控件等等。这些工作确实耗费时间,那么这时候就应该考虑使用模板了。我接触过两种模板,一种是TSQL模板,另外一种是界面模板。创建TSQL模板应该来说比较简单,只要一点小技巧就可以了,那就是在SQLSERVER的QUERY窗口写完模板后,存为文件后就把文件设置为只读。而界面模板的话,就需要使用到VS提供的导出模板功能,具体这里就不进行介绍了,随便一搜就可以查到相关的资料了,不然的话记得VS2010高级编程这本书也有详细地提到过,可以参考下这本书。EXAMPLE存储过程模板4调试程序精品文档2016全新精品资料全新公文范文全程指导写作独家原创8/11很多时候程序运行出BUG了,通过抛出的异常信息无法定位到BUG,这时就需要使用调试功能了。VS提供了强大的调试功能,基本组合为F5F10F11设置断点,在敏感位置插入一个断点,按下F5,程序运行到断点处就会跳回IDE界面,这时已运行代码变量的值都可以在程序中查看了,按下F10为执行下一条语句,如果程序有调用另外的函数,按下F11则可以进入所调用的函数中。调试程序也是开发人员必须掌握的基本技能之一。5SQL编写规范以及脚本的命名有关良好的编程规范所带来的好处这里就不在老生常谈了,“优秀的代码是写给人看的”这句经典的话已经涵盖了方方面面。其实,良好的编写规范的养成并不困难,除了学习编程规范的技巧之外,还要在开发中践行这些编程规范,保持对写优秀代码的追求,这就可以了。这里简单介绍一下有关TSQL编程的几个小技巧关键字大写,对于SQL的保留字如FROM,WHERE,AND等等,都使用大写;使用缩写,比如内联一张表可以用INNERJOIN,也可以直接使用JOIN,这时就应该选择JOIN,尽量减少代码;留空换行的选择,来看一个对比复制代码/单行写完的SQL精品文档2016全新精品资料全新公文范文全程指导写作独家原创9/11SELECTFROMTABLEWHERETABLE_ID1/留空换行的写法SELECTFROMTABLEWHERETABLE_ID1/稍微复杂的SQLSELECTA,BTABLE_NUMFROMTABLE1AJOINTABLE2BONATABLE_IDBTABLE_IDWHEREATABLE_ID1复制代码对于越复杂的TSQL,留空换行的写法可读性会大大提高。这个技巧的一个重点是对齐,这里就不再过多描述了。对于团队开发而言,每个人都需要写TSQL脚本,并放到一个模块的文件夹中,这样在部署的时候需要运行一个小工具,就可以运行整个文件夹中的TSQL脚本了。然而这样却有一个问题我们知道TSQL脚本的创建是要求有先后顺序的,总不能在CREATETABLE语句之前先往TABLE加入初始数据吧,所以为了让脚本有序,需要在脚本命名的开头写上一个序号,同时要注意到一点是最好以5或10的递增顺序写序号,比如精品文档2016全新精品资料全新公文范文全程指导写作独家原创10/1100010_CREATETABLESTUDENT_TEROYSQL,00020_INSERTINTOTABLESTUDENT_TEROYSQL等等。这样命名是为了应付有时中间遗漏了什么脚本没写,就生成一个中间序号比较00005_CREATEPRIMAYKEYONSTUDENT_TEROYSQL放到文件夹中,如果以1为增量,就不能这样实现了。非技术篇1VISIOONENOTE需求人员将ERP界面需要制作的东西画在VISIO上,同时将对应的业务逻辑写在ONENOTE上,做为开发者,就以这两个东西为基准进行开发工作,所以实习期间除了打开VS和SQLSERVER外,这两个东西也是必备品。VISIO提供了专业的可视化处理,确实很好用,特别提一下ONENOTE,ONENOTE是一个可分享的笔记本,能更好地提供协作沟通功能,一个比较赞的功能是,它可以在每一个功能描述点之前添加一个打勾的选项,所以当你完成了某个功能点的时候,就顺便在之前的勾打上,这就可以记录你的完成情况,尽量避免了功能遗漏。2沟通交流的艺术作为开发人员,跟需求人员沟通交流是家常便饭的事情,ERP开发更是如此。我接触的开发模块是财务模块,这是一个专业性很强的东西,因为你必须充分了解会计上的东西,不然开发工作将会一头雾水,所以很多时候都需精品文档2016全新精品资料全新公文范文全程指导写作独家原创11/11要和需求人员探讨会计上的种种业务员需求。沟通交流也是一门学问,在我一刚开始进行沟通的时候,经常是等到需求人员噼里啪啦讲完一大堆后,但我还是似懂非懂,提出疑问后,然后又需要别人再重复地讲多一遍,这就是低效的沟通交流。那么如何提高沟通的效率呢问题如果发生在自己身上就要寻求方法解决。首先,在于别人做沟通交流的时候,请保证自己一定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论