软件开发心得体会范文(精选18篇)
受某化公司委托,开发一款用于视频和图像处理的软件,开发难度高,高到从未搞过,开发周期长,长到是我以前项目监控最长开发周期的两倍,开发成本之底,让我觉得程序员成了高级打字员。首先是需求分析书、产品规格说明书、设计说明书、代码规说明书、测试计划,光稿就不知道熬了多久才做完。
紧接着,遇到一系列问题,首先是语言选择,vc++和c#都是可以保证开发完成的选择,但是vc++内存容易报错,界面很难修改,而客户要求的界面质量甚至比程序的功能更严格,没办法,客户就是上帝,上帝做事一定有他的道理。c#语言易于开发,而且图形界面绘制也易于修改,可以做出客户体验很的界面,但是在资源的消耗上,让我很吃惊。做到第二个月,大概的界面已经完成时,出现界面刷新的问题,刷新时开始卡,界面不流畅。没办法,改。
开会,总结,技术骨干找问题,拿出解决方案,力争第一次做软件把它做:
重新做软件开发进度计划和软件测试计划,并且让独立功能demo制作和测试先行;
用direct draw、direct 3d或者opengl中的一个替代c#本身的gdi绘图,将在接下来的开发任务中加入进去。
事无巨细,当我满意的看着界面流畅,功能也已实现时,发现软件在低分辨率或者小本上根本乱到没法看,甚至是界面功能按钮错位,重叠等等。没办法,改。毕竟软件的多分辨率兼容和操作系统兼容是必须要做的。
接下来一大堆的麻烦找了上来,软件出现各种各样想都想不到的问题,总算是按时将第一个版本发布出去,并且开始接下来的升级开发任务。
最后,给刚刚接手软件开发项目的朋友一些忠告:
一、相关的档不是给别人看的,而是给自己看的,相关档一定要齐备,而且让所有涉及开发的人员都清楚的知道你档里所要表达的意思;
二、一定要注意多做demo,多做实验,一个demo程序员几个钟头就可以完成,甚至更少,但是不做demo,核心程序没有做实验,其他的东西都围绕核心程序做了上去,到时候耽误的可不是几个钟头
三、程序设计要注重用户体验,当初客户对我要开发软件提出近乎苛刻的要求时我不在意,但是当我自己反复使用软件时有了很多体会,流畅美观的界面带给人心理的快感的确能替代一些尚未开发完整的功能带给用户的遗憾。
四、测试计划多次进行,分批进行,不要全部开发完成再对软件做测试。
还要坚持三个月,软件马上发布,希望大家的支持,谢谢!!!
在大学里的最后一个冬天,我完成了3个月的实习,实习对我而言是一个难忘的.体验,让我不论做人还是做事都改变了很多。 总的来说,虽然说不上乐在其中,但实习的确是一段充实而有意义的事。
实习期间积蓄了太多太多的感悟。 借此机会跟大家分享一二。
感悟一: 当我们进入社会工作,就先要进入各种规范中去。
作为一个软件开发人员,记得在我第一天进入公司实习的时候,首先要学习的就是编程规范。 相信每个搞开发的同学都跟我一样吧。
编程规范在学校里是十分不重视的。 老师也不会硬性地要求学生要遵照怎样的规范去编写代码,实验或者作业什么的,只要能实现功能就ok了。 但是公司却不一样,公司的代码并不是一个人编写,别人很可能需要阅读甚至修改你的代码,阅读一个不符合规范的代码,所需要的时间可能比重新开发还要漫长。 代码规范的重要性是不言而喻的。
当然,作为一个开发人员的前提,我还是公司里的一个员工(虽然不是正式的。。。)。 我还必须遵守员工的规范。
其实员工规范也没有什么特别多的要求,个人认为就跟上学差不多,虽然规范是差不多,心态上却有着很大的差异。 原因无他,你到学校是自己交钱上学,上班却是别人发工资给你。 拿了人家钱,还要扰乱人家的规范,这种事我还真干不出来。 看来钱不论到哪里都是一个问题,呵呵
感悟二: 我其实是一种很唯心的动物
其实本来,我是写"人其实是一种很唯心的动物",但不知道别人是不是也这样,虽然我觉得是,却无从考究,还是严谨点。
为什么说我唯心呢? 当我心里把自己当作一个学生,跟把自己当作一个上班族时,在各种细节上都会不一样,例如那有点虚无缥缈的"气质",或者是说话的语气。
这个大概是"站在不同的高度,看到不同的风景"吧。 正如老总看的是公司发展方向,主管却在看业绩,经理在看项目,小弟们在看代码。。。
感悟三: 设计模式很重要
设计模式是我到公司才接触的事物,主要是讲述一种面向接口的编程思维,按照设计模式所编写的代码,会比学校那种直接实现功能的代码繁琐一点,增加很多看似多余的虚类或者接口。 但是这种代码更加具有拓展性,更好地把数据封装起来。 在增加状态,增加类的时候,并不需要修改过多代码,这种代码对于版本升级尤其重要。
在公司培训学习中,我总能很快地掌握各种设计模式的要领,获得上司的好评。 但是我明白,设计模式真要应用到代码中去,是要培养一种习惯。
个人观点好像说得有点多了,下面说说我这3个月里的实习情况。 总的而言,我到公司接触了2个平台,一个是现在很火的android,另一个则是nokia的qt。 android 用的基本是java语言,其中还会带点xml语言; 而qt用的则是c++。
对于这2个平台,用着的感觉其实大同小异,用我上司的话说,基础打好了,语言就不应该是障碍。 感觉挺有道理的。 想当年我作为一个vb助教,却没半点vb基础,对vb那些基础问题还是可以比较轻松地解决,这跟我其他程序语言基础比较好有着密不可分的关系。
android平台的一个基本窗口是一个activity,除了基本的activity外,还提供listactivity和tabactivity这些拓展的子类,每一个activity都可以看作一个窗口,一个进程可以有多个activity,每个activity都拥有一个view,view可以通过xml设定,当使用activity的子类时,必须注意这些子类的xml必须含有特定id的控件,或者不用xml实现view,系统会有一个默认的xml去实现那些一个基础view并且实现必要的id。
在谈到view,那么就必须说到layout了,android的layout很强大,最基础的是横向或竖向的排列布局,另外还有网格,表格布局等等。 掌握好布局的方法可以让我们对界面设计事半功倍。
android有趣东西有很多,在我完成那个移植应用的时候,android总能给我一些惊喜,例如popwindows这个设计,他作用是弹出一个窗口等,或者你可以把他看作一个acticity,效率却比activity快很多。 利用popwindows,你可以做出风格各异的消息框,菜单栏,下拉菜单等等。
另外还有一个抽屉类也很特别,他就像触屏系统的解锁一样,拖动手柄,便可拉出一个界面,这种设计大大地节省应用的空间,减少切换界面的操作,从而降低应用的功耗。
告诉大家一个很多人不注意的地方,android应用如果进行横竖屏幕切换的时候,进程会完全关闭后,再重新打开的,因为android做了保存状态的操作,所以很多人会以为屏幕切换后,进程还是本来的进程。
qt跟android有很多共通点,例如android的activity就如qt的qwidget,当然,他们的状态机有着很大的区别。
qt最大的特点是他的信号槽,通过信号和槽的连接,可以把很多类与类间相关的函数连接在一起,甚至可以传递参数
随着我矿“两化”融合工作的推进,软件开发方面人才显得更加缺乏,所以我选择对Asp.net进一步深入学习;经过近两个月的自主学习,进一步掌握了Asp.net动态网页制作的一些理论知识和基本常识,不仅要应用各种方面的知识还要对所学的知识学会变通使用,虽然会有一些成功的地方。曾经看到网上有这么一句话,一个优秀的网络程序员不但要了解自己领域的一些专业技术,而且很多时候还要充当半个网络工程师,半个美术设计师和半个数据库管理员。Asp.net是战略的核心产品,Asp.net凭借它丰富的控件,以及具有革命性的code-behind技术,以及良好的封装性,无疑成为业界开发activeserverpage的一门巨将,
Asp.net是ASP(微软动态服务器网页技术)的最新版本。执行效率大幅提高:Asp.net构架是可以用Microsoft(R)公司最新的产品开发环境进行开发,WYSIWYG(WhatYOUSeeIsWhatYouGET所见即为所得)的编辑。简单性和易学性、高效可管理性Asp.net使用一种字符基础的,分级的配置系统,使你服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为"ZEROLocalAdministration"的哲学观念使Asp.net的基于应用的开发更加具体,和快捷。一个Asp.net的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须得文件,不需要系统的重新启动,一切就是这么简单。多处理器环境的可靠性Asp.net已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝链接技术,将很大的提高运行速度。即使你现在的Asp.net应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP确做不到这一点。自定义性和可扩展性Asp.net设计时考虑了让网站开发人员可以在自己的代码中自己定义"plug-in"的模块。
这与原来的包含关系不同,Asp.net可以加入自己定义的如何组件。网站程序的开发从来没有这么简单过。安全性基于Windows认证技术和每应用程序配置,你可以确性你的原程序时绝对安全的。Asp.net的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有ASP应用程序中逐渐添加Asp.net功能,随时增强ASP应用程序的功能。Asp.net是一个已编译的、基于.NET的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多.而且是可以用任何与.NET兼容的语言序。另外,任何Asp.net应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
Asp.net可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。当创建Asp.net应用程序时,开发人员可以使用Web窗体或WEB,或以他们认为合适的任何方式进行组合。每个功能都能得到同一结构的支持,使您能够使用身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义.如果你从来没有开发过网站程序,那么这不适合你,你应该至少掌握一些HTML和简单的Web开发术语(不过我相信如果有兴趣的话是可以很快的掌握的)。你不需要先前的ASP开发经验(当然有经验更好),但是你必须了解交互式Web程序开发的概念,包含窗体,脚本,和数据接口的概念,如果你具备了这些条件的话,那么你就可以在Asp.net的世界开始展翅高飞了。
在这短短的两个月中,我知道在程序设计的时候,不要太在意程序是否最简洁灵活,对于一般开发者而言,程序规范化和可读性可能比追求程序的灵活性更加重要。在互联网资源越来越丰富的情况下,我们可以参考一些规范的程序源代码来学习。同时我也知道,想要学好这门课程,所要具备很多条件,首先打代码要规范,要做注释,这样回头来看程序时可以很快的看懂,一方面可以练习自己的逻辑表达能力,对以后遇到难以实现的功能也可以很好的表达出来向别人请教,而且出去从事编程工作的话,代码的规范是相当重要的。还有一点要学会总结,把自己做的程序用到的知识点列出来就可以很好的总结自己的知识点。当形成知识体系,对知识的理解就会更上一层楼。
我是公司一名文员,部门涉及很多业务数据的东西,在此之前,公司的所有业务记录都是通过一张excel表格来完成,第一次看到那张表的时候是真心吓到了,字段有几十个,项下又有很多拆分合并,其中又大多为数据和日期,通过几天的整理发现了不少错误,更加感叹需要一个数据库来解放人力、提高效率。
从开始接受access培训到现在已经有半年时间,虽然上学期间学校的老师也有给我们讲过access的知识,但只是讲了些关系的建立及简单的查询,以为access就好比word、excel等相对比较简单的办公软件一样。但开始接受盟威Access的培训后,对Access的看法才改变,原来Access还可以这样玩;参加学习之初,由于自身一开始认识误区的心态导致自己走了很多弯路。一开始所有的Access老师就告诫我说一定不要心急,要按培训指南指导,要按照教程一步一步做下去,切忌眼高手低。但因为心想自己对电脑还算有点感觉,加上公司一直比较急,又很想短时间内做出点东西,就没有很耐心的把教程步骤做完,导致后期回炉再造无数次耽误很多时间,在这里希望大家引以为戒。
在学习的过程中,因为老师是一个阶段一个阶段发教程的,当我看到报销系统时,就已经觉得十分十分的强大了,然后自己就想边看教程边偷懒开始自己开发,虽然老师一再强调不能不会走就想跑,但自己还是开始蠢蠢欲动了,等到做了一部分之后看到了进存销系统后,又发现里面有很多自己可以学以致用的东西,然后又开始重新做,再等到新版的快速开发平台出来了,自己又一次被震撼了,感慨Access快速平台的强大,基本的模块都不需要自己手动创建了,简直太厉害,真是技术宅改变世界。
整个开发过程可以说是充满艰辛,但又有很强的成就感。虽然自己有时候会想不出来该怎么做,但是!还有一群很厉害的老师可以帮你,有时候老师们一句话、一段代码就能帮我搞定自己苦思冥想很久都做不出的步骤,可以说每一个成功的系统背后都有一群默默无闻的老师。
每次把自己一些乱七八糟的想法告诉一对一老师,其实自己都觉得可能做不了了,但每次杜老师都会给我惊喜,帮我完美解决掉,十分欣慰。
现在系统开发的已经在测试应用,虽然还有些部分在一步步完善修改,但我相信access的强大,能解决我的数据问题,也相信盟威老师们的技术给我的支持,在此感谢这半年来所有老师的大力支持与帮助,也希望盟威软件快速开发平台做得越来越好,让更多跟我一样的菜鸟开发出属于自己的数据库软件,解放自己的工作强度。
一、项目实施进度评估。ERP项目是复杂项目,其涉及的部门、人员、资金、资源等对于任何一个企业来说都是空前的,而在上一节中我们通过项目三角形分析出来,项目的进度是否能够按照设计规划的进行是影响项目效果的关键因素,所以评估项目的成功与否,首先必须评估项目的进度是否按照预期的进度进行,如果每一步或者每一阶段,都能够严格的按照进度进行,相信项目会成功的,否则就是项目设计出现了问题。一般来说现在评估项目实施进度的方法可以使用目前最为常用的项目管理工具,其中Microsoft的Project就是不错的工具之一。其实很多项目的实施失败原因是虎头蛇尾,开始的时候大家心气十足,进度基本可以按照计划进行,而到了后来,每个人的工作都是交叉的,往往会受到其他工作的影响而忽视了项目的进度,致使项目进行不下去。所以除了有相应的制度保障之外,一定要有工具,再者说了搞IT的人不用IT工具,那不是“卖盐的喝淡汤”吗?当然现在的IT行业非常普遍。
二、项目成本评估。项目成本是评价一个项目是否成功的第二个关键因素,同样在项目三角形中成本占了一条边,所以成本的变化将直接影响项目的成功,如果一味追求项目的功能和进度,而忽视成本,那将不是搞项目,而是在赌博。现在的ERP项目本身的费用就很高,而且没有公开价格,国家价格监督都没有依据,全靠软件商的一张嘴,说多少是多少,会侃价的省点,不会侃价的就多花点。但是一旦我们已经和软件公司和服务公司(咨询公司)达成了一致意见,关键的问题就在于如何有效的利用双方同意的费用达成预期的任务目标,而往往在项目的开始企业的管理者认为项目刚刚开始,投入还不多,而不注重有效控制成本,而到项目实施一段时间之后,发现项目的预算已经不能保证项目的完成了,或者半途而废,或者追加投入,而追加投入又会遇到企业资金是否充足的影响。所以我们建议在项目开始之前一定尽量准确的做出项目预算,并拿出专款,避免在途中因资金影响项目进展。另外成本控制要从采购、人员工时等多方面严加控制。并建议分阶段进行成本评估,如果每个阶段都能够在成本控制范围之内最终的项目一定保证在成本范围内成功,关键在于当出现项目费用超出预算成本的时候要及时调整,确保总体成本控制在范围之内。
三、项目功能评估。ERP是功能性产品,最终项目是否成功很重要的一点要看功能,看功能是否达到了预期的要求。ERP的功能从总体上来说分为几大部分:进销存管理,或者现在有的公司定义的内部物流管理;财务管理,包括总账、应收账、应付账、固定资产等;计划管理,在企业中大都会涉及到两种生产模式的计划方法,分别是单件小批量生产模式的MRP计划方法和大规模流水线生产模式的JIT计划方法;粗能力计划和细能力计划等核心资源管理;另外还包括人力资源管理;设备管理;工、模、量、夹具管理;质量管理等外围资源管理。一般来说,软件商在签约之前都会给企业的管理者演示他们的功能,我告诉企业一个秘诀,在观看演示的时候一定要刨根问底的看功能,而不能走马观花的浏览。两者之间的区别就在于不要被软件商的演示者的各种托辞搪塞过去,一定要亲眼看到他们说能够实现的功能,不要相信没有数据不能演示、不是最新版本等解释理由。如果他们说有什么功能就当场拿出来。否则就是没有,在事实面前任何理由都是苍白的。在项目结束之前,对照双方约定的功能清单,逐个推敲,如果每一个功能都实现了,项目一定能够成功。
四、项目效果评估。功能具备只是基本的要求,关键还要看效果,这一点可能有人不容易理解,其实在ERP管理软件中有很多功能从表面上看功能和效果是有很大的区别的,比如MRP计划,可能大多数的ERP软件现在都能实现这个功能,但是是否准确,是否可以通过MRP计划直接指导生产,甚至直接根据计划产生的结果安排采购,这并不是任何一家软件都可以做到的,这里面涉及到计算方法是否科学,是否符合行业的规范,考虑的因素是否完整,预置的参数是否科学,比如提前期设计的是否合理,安全库存设计的是否合理等等都会直接影响计划的结果,其实真正的软件公司的功底就在这里区别。
五、可操作性评估。ERP软件的最终目的是让企业的广大职工都能够使用,所以可操作性如何是项目成功与否的另一项重要指标。企业的大多数使用者,尤其是一线的职工,计算机的水平都不会太高,如何让软件具有很容易操作的界面,让普通的职工也能够使用软件来操作,确保每一位使用者都能够方便快捷的使用ERP软件是项目成功的重要条件。有很多软件功能很强,但是就是操作起来难度也很大,非专业人士无法使用,这绝对不是优秀的ERP软件,优秀的软件应该是只要熟悉业务的人就可以操作,所谓所见即所得。
六、项目的延续性评估。ERP项目是企业赖以发展的长期投资项目,绝对不是消费型项目,所以项目是否能够伴随着企业的发展而持续得到应用是评估项目成败的另一向重要指标。持续性体现为升级能力、功能的扩展能力、客户化能力、跨平台能力等几方面:现在的软件平台每几个月就升级一次,当然应用系统的升级不一定要求紧跟系统软件的速度,但是也要及时升级,随着管理理论和管理方法的不断发展,管理软件的升级至少要跟得上管理方法和计算方法的更新速度,否则就是落后的;功能的扩展能力,就像上面我们所说的功能是评估的一项指标,但是功能能否根据企业的发展而及时更新,另外还有客户化的能力和跨平台的能力也很重要。
时间过的好快啊,为期三个礼拜的实习生活即将结束了,短短的三个礼拜让我们收获很大,专业知识、编程水平都有很大的提高。刚开始三天的高强度的课程安排让我们受益匪浅;接下来的上机实习又让我们可以巩固了课程。这让我觉得实习生活充实而有意义。辅导老师配好了环境之后,我们开始了项目的制作,这次项目实习算是自己小学期间主要完成的项目。最后,自己的努力还是有收获的,看着电脑上记录得满满的代码,看着自己的项目最终能够运行成功,就觉得很有成就感。
在本次的实习中,除了让我明白工作中需要能力,素质,知识之外,更重要的是学会了如何去完成一个任务,懂得了享受工作。当遇到问题,冷静,想办法一点一点的排除障碍,到最后获取成功,一种自信心由然而生,这就是工作的乐趣。有时候也需要虚心请教,从别人的身上真得能学习到不自己没有的东西,每一次的挫折只能使我更接近成功。除此以外,我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。这次所学知识与实际的应用,理论与实际的相结合,让我大开眼界。也是对以前所学知识的一个初审吧!这次实习对于我以后学习、找工作也真是受益匪浅,在短短的一个星期中让我初步从理性回到感性的重新认识,也让我初步的认识这个社会,对于以后做人所应把握的方向也有所启发!相信这些宝贵的经验会成为我今后成功的重要的基石。
在此,我非常感谢学院领导和指导老师对这次实习的大力支持。
作为一个软件开发人员, 记得在我第一天进入公司实习的时候, 首先要学习的就是编程规范. 相信每个搞开发的同学都跟我一样吧.
编程规范在学校里是十分不重视的. 老师也不会硬性地要求学生要遵照怎样的规范去编写代码, 实验或者作业什么的, 只要能实现功能就ok了. 但是公司却不一样, 公司的代码并不是一个人编写, 别人很可能需要阅读甚至修改你的代码, 阅读一个不符合规范的代码, 所需要的时间可能比重新开发还要漫长. 代码规范的重要性是不言而喻的.当然, 作为一个开发人员的前提, 我还是公司里的一个员工(虽然不是正式的...). 我还必须遵守员工的规范.
其实员工规范也没有什么特别多的要求, 个人认为就跟上学差不多, 虽然规范是差不多, 心态上却有着很大的差异. 原因无他, 你到学校是自己交钱上学, 上班却是别人发工资给你. 拿了人家钱, 还要扰乱人家的规范, 这种事我还真干不出来. 看来钱不论到哪里都是一个问题, 呵呵
感悟二: 我其实是一种很唯心的动物
其实本来, 我是写"人其实是一种很唯心的动物", 但不知道别人是不是也这样, 虽然我觉得是, 却无从考究, 还是严谨点.
为什么说我唯心呢? 当我心里把自己当作一个学生, 跟把自己当作一个上班族时, 在各种细节上都会不一样, 例如那有点虚无缥缈的"气质", 或者是说话的语气.
这个大概是"站在不同的高度, 看到不同的风景"吧. 正如老总看的是公司发展方向, 主管却在看业绩, 经理在看项目, 小弟们在看代码...
感悟三: 设计模式很重要
设计模式是我到公司才接触的事物, 主要是讲述一种面向接口的编程思维, 按照设计模式所编写的代码, 会比学校那种直接实现功能的代码繁琐一点, 增加很多看似多余的虚类或者接口. 但是这种代码更加具有拓展性, 更好地把数据封装起来. 在增加状态, 增加类的时候, 并不需要修改过多代码, 这种代码对于版本升级尤其重要.
在公司培训学习中, 我总能很快地掌握各种设计模式的要领, 获得上司的好评. 但是我明白, 设计模式真要应用到代码中去, 是要培养一种习惯.
个人观点好像说得有点多了, 下面说说我这3个月里的实习情况. 总的`而言, 我到公司接触了2个平台, 一个是现在很火的android, 另一个则是nokia的qt. android 用的基本是java语言, 其中还会带点xml语言; 而qt用的则是c++.
对于这2个平台, 用着的感觉其实大同小异, 用我上司的话说, 基础打好了, 语言就不应该是障碍. 感觉挺有道理的. 想当年我作为一个vb助教, 却没半点vb基础, 对vb那些基础问题还是可以比较轻松地解决, 这跟我其他程序语言基础比较好有着密不可分的关系.
android平台的一个基本窗口是一个activity, 除了基本的activity外, 还提供listactivity和tabactivity这些拓展的子类, 每一个activity都可以看作一个窗口, 一个进程可以有多个activity, 每个activity都拥有一个view, view可以通过xml设定, 当使用activity的子类时, 必须注意这些子类的xml必须含有特定id的控件, 或者不用xml实现view, 系统会有一个默认的xml去实现那些一个基础view并且实现必要的id.
在谈到view, 那么就必须说到layout了, android的layout很强大, 最基础的是横向或竖向的排列布局, 另外还有网格, 表格布局等等. 掌握好布局的方法可以让我们对界面设计事半功倍.
android有趣东西有很多, 在我完成那个移植应用的时候, android总能给我一些惊喜, 例如popwindows这个设计, 他作用是弹出一个窗口等, 或者你可以把他看作一个acticity, 效率却比activity快很多. 利用popwindows, 你可以做出风格各异的消息框, 菜单栏, 下拉菜单等等.
另外还有一个抽屉类也很特别, 他就像触屏系统的解锁一样, 拖动手柄, 便可拉出一个界面, 这种设计大大地节省应用的空间, 减少切换界面的操作, 从而降低应用的功耗.告诉大家一个很多人不注意的地方, android应用如果进行横竖屏幕切换的时候, 进程会完全关闭后, 再重新打开的, 因为android做了保存状态的操作, 所以很多人会以为屏幕切换后, 进程还是本来的进程.
qt跟android有很多共通点, 例如android的activity就如qt的qwidget, 当然, 他们的状态机有着很大的区别.
qt最大的特点是他的信号槽, 通过信号和槽的连接, 可以把很多类与类间相关的函数连接在一起, 甚至可以传递参数
实习心得
从学生到走上工作岗位,一步步的熟悉和认识着周围的环境,熟悉这社会生存之道!在这里我学到了我离开校园的第一笔知识,这些都是从书本上学不到的知识,从体验公司的文化到亲身接触公司的每个部门的人员,从公司的季刊杂志上,从其他员工的言谈中,有好的信息,也有不好的耳闻,总之,我的感觉中,我们的公司还是在不断前进发展。
从学校迈入社会,华润以自己的姿态给我这样一个良好的锻炼平台。从学生到工作,华润以自己的品质和精神让我了解和洞察并融入社会这个大家庭,华润为我创造了这样一座桥梁。融入华润,融入社会,我以华润的精神强化自己,以华润的记纪律规范自己,每一天努力,每一步的行动,都让我逐步提高和完善自己,以至于在这个平凡的岗位上做到一个合格称职的职业人。
工作中有苦有乐,产线上同事之间的互帮互助,让我充分体会到与人协作,共谋发展,合作共利的快乐。产线5s让我深刻认识到良好整洁的工作环境是工作效率和品质保证。产线纪律是我规范和端正自己的工作态度,保证每一颗电路的品质。在这样的环境下,在这样的氛围中,我也渐渐养成了良好的工作习惯和责任意识,努力将这份工作做到更好。从华润到社会大家庭,从一颗细小的电路到做人做事,不容置疑每一步都至关重要。“千里之行,始于足下”,我想,一切都从身边做起,从细节做起,从小事做起,从当下这份工作做起。播种行为,收获习惯;播种习惯,收获性格;播种性格,收获命运。一点一滴的积累,一点一滴的进步都将决定和影响着我的将来!
20年2月2日,我有幸成为的一员,应聘为公司的java软件工程师。入任职以来,在部门领导的带领下,自己感觉无论学习、技术、生活等方面都有很大的提升。
20年里我主要完成的工作有三方面:
1、荆门石油石化巡检系统的调研和开发。
该项目是我工作以来第一次涉及到调研,对我来说算是一个不小的挑战。在调研过程中,让我学会了如何通过和客户的沟通来了解客户的需求。由于自己的工作经验不足,在调研工作中体现出一些问题。不能很直接的在和客户沟通中非常准确的了解客户的更多需求,有很多需要和客户交流沟通多次才能明白客户的最终需求,也没有把自己作为最终用户并站在用户的角度上来考虑问题,这些都是我在以后的工作中需要提高和改进的地方。在巡检系统的开发工作中,让我进一步巩固和加强了自己的开发能力。
2、电信12530增值业务的开发与维护。
从5月以来我就开始接手公司的主要业务之一,12530电信增值业务。由于前面负责这个项目的同事突然离职,导致这个项目的交接工再做得不够好,对我顺利接手这个项目造成很大的困难。而刚一接手这个项目,马上就需要新上一个投票活动,并要对一些主要代码进行修改,让我倍感压力,几乎都快放弃。最后在金总的指导和鼓励下,顺利的完成这次活动。在完成这次投票活动后,为了避免下一个接手这个项目同事与我遇到同样困难,我第一时间将这个项目的相关技术文档补充完全,保证别人能够顺利的进行该项目工作。通过这个项目,让我加强了自己在高强高压下工作的能力,也让我找到更多自信。
3、家政网络服务中心的开发与实施。
在这个项目中,除了承担开发工作以外,也逐渐涉及到项目管理的职责,让我在个人能力上有所提高。为了这两个项目能够顺利完成,除了完成自己的工作外,还主动关心其他同事的工作完成情况。让我在项目管理和项目进度的把控能力有很大的提高。将家政网络服务中心顺利实施,为我公司拿下湖北省其他市的家政网络服务中心奠定基础。在工作之外,我也注重个人能力的提高。工作之余,主动学习一些新技术,与同事沟通配合,搭建一个ssh的开发框架。也学习spring security知识,这些新知识的积累,对我以后的工作有很大帮助。
20年工作展望:
1、将学习的spring security整合到我们自己搭建的ssh框架,进一步完善框架。
2、利用搭建的ssh框架,开发一套oa系统平台。
3、做好襄樊、鄂州家政网络服务中心的维护工作。
4、希望公司能够大量拿下湖北省其他市的家政网络服务中心,继续开发和实施湖北省其他市的家政网络服务中心。
5、继续学习新技术,努力提高自己的个人能力。为以后能够更好,更顺利的工作奠定基础。
6、希望通过自己的进步和努力,能为公司的发展做出自己最大的贡献,体现出自己的最大价值。
为了方便学校院系考评本院系各班级预备党员的学风、品行,作为预备党员转正的参考依据,校方委托我团队设计制作“校园预备党员评优系统”,通过学生不记名在线打分的形式考评预备党员的各项素质,并按照各项考评分数给出每个被评分人员的综合考评得分以及排名情况。建设目标:学生考评做到有理有据,公平公正为了方便学院领导对每个处于预备转正期的学生的综合考评,学院除了要考评其个人学习成绩外,还要听取广大师生的意见,从而为我党选拔品学兼优的人才。
为此考评系统从学生的德、智、体、美、劳以及宗教信仰共6个方面进行考评,并为每个考评设定优、良、差三个等级供师生评判,且采用网上在线投票的形式进行打分,同时禁止重复打分,恶意修改分数,跨班级打分等现象,进而做到有理有据,公平公正。解决方案:校园预备党员评优系统评优系统分为三大模块,用户管理模块、学生评分模块以及考核统计模块。用户管理模块,收录参与评分师生以及预备党员的个人信息,系统会给出预备党员的个人信息描述,以便评分者了解,而评分师生则只收录登录用户的基本资料,方便管理。学生评分模块,评分师生对预备党员的6项指标进行评分,等级为优、良、差三个级别,系统后台则会记录不同等级对应的分值。系统会记录每个评分师生的评分操作,以防止跨班级评分,修改评分,重复评分等现象。考核统计模块,学院党支部老师可以从班级、专业、个人、考评项目等多维角度查看被评者的分值,进而从多方面了解该生的情况。
项目收益:使校方能从多个角度了解,认识学生校园预备党员评优系统不仅仅是一个针对预备党员个人素养的综合考评工具,更重要的是,它能够帮助校方更好的了解自己的学生,包括学业、爱好、性格、宗教信仰、为人处事等,为学校选拔优秀人才,预防校园不良事件提供了一定的支持。
智能表单系统在网站中经常会遇到需要用户填写一些资料的情况,这个过程对于用户来说没有任何问题,但如果表单样式经常修改,对于网站开发人员来说,将是一个比较繁琐的过程,他除了要修改表单的网页样式,还要相应的修改后台数据库的样式。是否有一种软件,既能实现表单创建、数据库表创建以及表单发布一站式服务,又能让非计算机技术人员轻松掌握,智能表单系统应运而生。建设目标:表单创建及发布一站式服务,非计算机专业用户轻松掌握智能表单系统面向的主要用户是那些不懂计算机编程,并且需要经常发布表单或者修改表单的网站文案人员,借助这套系统,用户只需简单的拖拽一些表单控件,并为这些控件命名,告知信息录入人员该填写的条目项即可,而数据库表则在发布后自动生成,无需技术人员另行建立。解决方案:智能表单系统智能表单系统的核心价值就是简单易用,且高度自动化。
它完全基于B/S架构开发,能够很好的应用与网页表单。智能表单系统由表单引擎、数据库引擎、信息发布及处理引擎组成。1、表单引擎,负责表单控件以及表单界面的生成;2、数据库引擎,负责表单对应数据库表的生成;3、信息发布引擎,负责表单生成后的网站发布;4、信息处理引擎,直接面向信息录入人员,接收信息的录入以及数据库信息的调取;智能表单系统不仅仅允许新增表单及其数据库表,同时也允许用户在线修改字段,包括添加、修改名称以及删除字段,相应的数据库表也会改变,做到了全程自动化。产品特色及用户受益:一站式服务,简单易用智能表单系统具有表单创建、修改、发布、数据库表的编辑一站式特性,用户只需简单的拖拽控件即可完成这一整套工序。这套系统能够缩短网站表单建设周期,同时也解放了开发人员。
首先我是一个女孩,学软件开发的女孩相对于男孩来说并不是太多,但是因为我自己对编程比较感兴趣,所以就从事了这个行业。
我们学校的学生从20xx年的下半年就已经开始出来实习了,据我所知我们计算机系的学生大都从事别的行业去了,从事计算机行业的人数非常少,我想大部分是没有过硬的技术知识的原故,不敢去应聘本行业的工作吧。
我一直是一个有上进心的女孩,对软件编程有很大的兴趣,总想着自己也要像男孩一样,做一番属于自己的事业,不能白白的虚度自己的青春,但我又不想从事与计算机沾边的初级职位,比如文员之类的。因为如果自己的第一份工作从做文员开始,以后自己的职业生涯就不好规划,肯定会离软件编程越来越远的。
说实话我的家庭条件并不富裕,但是我有一个非常支持我上学的父母,他们狠狠心在我上了几年大学之后又给我交了几千元的培训费。从那时候起我就想着我一定要好好学习,对得起父母。
就这样开始了我的培训旅程,其实说实话在培训的过程中我是时而感到特别迷茫,时而又有了奋斗的激情,这不免有个人的因素,也有培训环境的影响。
在这里我想提醒一下那些想参加软件培训的学生,在你们选培训班的时候一定要看清这个学校以前培训学员的就业情况,特别重要的是培训老师有没有教学经验,一些培训机构总是以赚钱为目的,鼓吹着自己的培训老师拥有几年几年的项目经验,其实我感觉没有教学经验的老师还不如项目经验少一些的老师。
我们培训部就是一个例子,我有时候就感觉听我们老师讲课简直是一件非常痛苦的事情,他讲课从来就不备课,只是根据自己的工作经验,想到哪个知识点就讲哪个,我们听课的学生一点思想准备都没有,而他常常在课堂上为了调试一个程序的一个小小的错误耽误一两个小时的时间,而这期间往往也是我们最煎熬的时候,因为我们要坐在那个地方陪着他找错误,这种情况下的我们非常受折磨,并且感觉时间都白白浪费掉了,以至于根本没有什么收获。
再来谈谈我自己的情况吧,我在大学期间编程语言学的还算不错,当时我们只开了c++、java两门编程语言课,还有软件开发相关的SQLServer20xx数据库,我的这三门主修课程每次考试都很优秀,参加培训时也有老师劝我学软件前台,网页设计什么的,说是女孩比较适合学这个,好就业,而软件开发大都是男孩子,女孩几乎是学不通的。我当时就是为了证明自己的能力,根据大学期间自己的学习情况,我相信自己能学好。
但是也因为我们老师讲课的无计划性,课程拖到现在还没有结束掉,时间已经过去6个月了,我开始思索我自己的人生了。
经过四个月的培训,我不能说我没有学到什么东西,但我还要说一点,我虽然每一样技术都知道了,但是我学的仅仅还只是一个皮毛而已。软件开发最重要的就是编程思想,可我现在的水平只是编写代码达到非常熟练的程度罢了,对于编程思想感觉还是没有踏入软件开发的门槛。而编程思想主要来自于你所做过的实际项目获得的经验。而我们培训部的项目不仅少而且不怎么实用。所以要想参加培训还要看清这个培训部的项目是不是够份量,没有实际的项目经验去应聘软件开发的工作还是不行的。
经过仔细的思索,我已经决定去找工作了,现在正是找工作的好时候,虽然我没有多少项目经验,但我相对于应届毕业生自信多了,也许这就是培训的力量。不过哪怕找到一份小小程序员的工作干着也行,因为现在对自己的职业定位还有点迷茫,我自己的性格属于那种做事情非常认真、踏实、细心,感觉更适合做软件测试方面的工作,对于软件开发我还是抱着先试试工作的态度,主要源自于我自己头脑反应太慢,估计一直做软件开发对职业发展前景是有碍的。
最后告诫那些还在上大学的朋友们,如果你们想在软件行业发展,那你们一定要在上学期间多上网看一些编程方面的视频,自已尝试着把企业要求的知识点自学一下,跟着视频做一些小型的项目。其实自学知识点是不难的,只有你有恒心。因为我培训的感觉就是公司要求的一些东西很多并不是我们不懂,而是我们在学校其实是连听说过都没有听说过,这样的话哪个公司会愿意。
岁月流转,时光匆匆,转眼间我的大学生活已经接近了尾声。回首往昔,有太多美好的,也有太多艰辛。我的大学生活的主旋律还是学习,我所选学的专业是软件技术,在这条道路上走了那么久,也有一些小小的感悟与体会。
还记得上初中时,英语课本上有一篇关于比尔盖茨的文章,当时真的很佩服比尔盖茨,也就是那时我才第一次接触到软件一词,学过那篇文章后我有个想法,就是也要做个比尔盖茨,可是由于家庭条件的限制,那也只能是个美好的梦想。后来上了高中,再报考时我就选择了软件技术这个专业,这样我想就向那个遥远而又美好的梦想迈进了一点点吧。
然而当我真正上了大学,学了这个专业,我才知道要做个比尔盖茨是多么的难,要想学好我的专业要花费很大的精力。第一学期我们开设了C语言这门课程,当时我学着真的是云里雾里、一窍不通,很是失落,学了不久之后我开始觉得自己可能并不喜欢这个专业,只是一时昏了头,错以为喜欢了。现实的打击让我有点不知所措,然而我已经选择了它,有句话说:既然选择了远方便只顾风雨兼程。我既然选择了这个专业,我便也只有硬着头皮也要走下去了。有了这样的想法之后,在之后的一段时间里,只要是没课的时候我就抱起了C语言课本,努力的看,记语法知识,语法规则,学语句、小算法等等。经过一段时间的研究学习,我发现C语言并没有我想象中的那么难了,还是很有意思的。就这样在学与玩中我的大学第一个星期就过完了。
后来又开设了很多课程,有VB、网络、数据库、操作系统、数据结构等。在这些课程中最令我头疼的就是数据库了,老师讲的时候老是划重点,讲的很少,当时学的时候真的好难受,一学期下来啥也不会,后来看书上的操作,一步一步的操作,才终于学会了建个数据库,做下备份还原等操作。开设的那么多课程也有我很喜欢的课程,比如数据结构,这门课程理论的比较多,上机操作的很少,这门课程是很需要理解的,当然有的还是要死记的。学习这门课的时候,我觉得并不像其它课程那么吃力,可能高中是学理科的缘故吧,理解起来并不太费劲。所以当时就很喜欢这门课,然而这门课表皮的好学,但要深学起来还是很有难度的,所以期末考试的时候我的成绩并不太理想,但这些打击不了我对它的兴趣,至少我知道我所学的这个专业还是有很多我是很喜欢的。
这样走着走着就到了大二的下学期了,那个学期,我们有一门课是C++,这门课的老师很和蔼,能力也很高,从他那里我学到了很多东西。老师教给了我们很多算法,也很系统的讲解了语法知识,还教我们做小系统,有的时候他会给我门们一些小系统的代码,让我们去改写,刚开始的时候我也是不会,后来经过学习请教改写成功了,这个时候我就会很开心,很有成就感。就这样在学与玩中,在快乐和忧愁中我们迎来了我们的大三时光。
大三刚一开学,老师们就告诉我们这学期就上十二周的课,然后就考试,就毕业了。这让我很有紧迫感,一想到毕业在即,心头就有种不舍,这儿有我美好的时光,然而我就要对这里说再见了。大三了我们的课全变成了专业课,也几乎全成了上机课,老师还给我们布置了一个程序,就是一个小组要交一个系统来算作成绩。我们这小组所选的课题是图书管理系统,针对这个系统,我们上机的时候,利用网络资源在网上查找了相关的资料,因为说实话,我们对此并不太理解,也只有通过网络来查找信息,做好需求分析,功能模块设计等工作。在这同时我们还去了学校的图书馆理解了相关的信息,这个系统并不要求功能有多么强大,关键在与一种锻炼,思维的锻炼,对所学东西的总结等。建立数据库时我们就根据需要建立几个表,里面的数据也是从我们学校图书馆里找来的。后来的界面设计,为了追求美观,我们又在网上搜了很多美丽的图片来美化界面。具体到功能的时候,有很多东西都不会,后来老师在课堂在做了讲解,我们就把它用到了我们的系统中,真的就是学一步做一步的。整个的系统做下来,我学到了很多东西,也对那么知识有了很好的应用能力。
现在这个星期也就到了期末,这短暂的校园时光也在飞速的流逝着。回首过去学习的经历,真是苦中有乐,乐中亦多苦,然而无论如何这些都已经走过去了,未来的路还要我们好好的走下去。人生本就是一个不断的学习的过程,也是一个不断完善的过程,在未来的道路上我会更加努力地学习,走出一个美好的人生。
立项前
1、统一元素设计需考虑周全
也许是初创团队的缘故,我不得不感叹团队对产品经理要求之严格之缜密,项目全程只有一个人负责,所以大到产品线对接,小到一句提示的位置和展示形式都需要一一推敲。
哪些元素应该做到统一
a、提示方面:统一的操作成功/失败提示;统一的弹窗形式;提示语言采用较统一的句型;为空情况的友好提醒;溢出情况的友好提醒;表单实时验证的提醒形式等。
b、文字方面:是否有统一的段落前“·”号;统一的链接状态;统一的字体、间距、行高等。
c、图片方面:调取图片的统一尺寸;如果是上传图片类的操作,需要考虑周全全站的调取情况,以及考虑是否统一预览图的尺寸等。
d、细节交互:未激活功能的按钮做“灰色”处理(例如用户没有勾选信息时批量删除按钮不可使用);按钮点击的状态统一(例如增加“提交中”的按钮状态,以防止网速慢用户狂点某一按钮的情况);特殊控件的统一等。
也许会有朋友说,上面有些是交互设计师需要做的事,但我一直认为作为一个产品经理考虑周全一些,没坏处。这些“统一”同样可以用在验收阶段,要知道,即使一个像素也可以改变整个产品的感觉。
2、原有功能的去留
我一直觉得升级已有产品比开发新产品难一些。这就像栽培植物一样,新种下一棵果树无非需要选对了土地,然后刨个坑种下去,然而成长期的去病枝、打顶等各种修剪所消耗的精力往往更多。
改进已有产品常常需要面对一个最棘手的问题:原有功能是去是留?
原功能去掉的话是不是会影响部分用户使用?是否需要通过公告、站内信、界面引导等方式友好地告知用户?怎样把对用户的伤害降至最低?
原功能留下的话是不是可以优化完善?听到了什么用户群怎样的声音?是否要在这次升级中做调整?
这些问题当接到项目的时候,产品经理就应该考虑周全了。特别需要注意的是,如果这个产品之前不是自己设计的,那么最好找到prd说明文档细细研究一遍,对把握不准的功能点找到原负责人确认,毕竟树苗是ta摘的,别把将来最能结果的枝干给砍了。
3、产品线上下游的对接
昨天有跟朋友聊起淘宝强势之处,就是产品与产品紧密捏合,线上线下、跨平台跨行业形成了一个盘根错节、根深蒂固的根基,无可撼动。
所以把握产品线上下游和产品周边很重要,即使一个看似简单的新闻展示页面修改也会牵扯到编辑后台、广告位管理、帮助中心,甚至是访问统计、数据需求的变更。
这要求在产品设计开始前,需要把该产品“连根拔起”,仔细梳理相关脉络,如果产品线够长,一个清晰的产品线结构图很有必要。
项目中
1、项目期间来自相关产品线调整的影响
项目期间相关产品线的调整是我最不愿意遇到的情况,这就像你在通往目的地的道路上高速行驶,就快要到达终点了,突然一个人告诉你:你走错路了。
项目里有一个通用模块,产品设计到一半,这个通用模块改了;项目里有一个流程,产品做到一半,这个流程废弃了;最要命的是已经立项开发了,你不得不硬着头皮跟程序员说:“因为一些不可抗拒原因,这个需求咱不做了。”
对于一个耗时较长的项目来说,这种情况难以避免,事出原因私自总结有三:
a、严重体验性问题:例如某个流程遭到大量用户的不满,为防止用户流失,不得不做临时调整,而倒霉的是,你也在用这个流程。
b、相关项目的影响:包括并行项目和新项目。例如你的同事在设计另一个产品,你们的产品相互牵扯较多,所以需求分析时做过很多沟通,但有一天,同事告诉你,ta的一个需求做临时调整了会影响到你,怎么办?
c、老板的突然决定:不举例。
最终的解决方法不外乎三种:立即调整、延期调整、不调整。个人的处理原则一般是对a种情况进行立即调整,对b、c情况讨论并选择性延期。
为什么这么做呢?a情况是必须要改的,时间早晚问题,长痛不如短痛,b、c两种情况必须坐下来细细讨论。需了解这个需求为什么要改?是长期对策还是临时决定?能否延期,记录需求等下一版本再开发?如果b、c情况提出来的需求没过两天又有改变,那与你配合的前端和程序员也太没有安全感了。
这个时代能耐心阅读完枚汉字的人越来越少,较大型项目的产品工作心得[下]未完待续,欢迎交流……
2、需求变更
承上,需求变更是每个程序员、产品经理、设计师等都会遇到的情况。产品经理不是神,项目组也不可能是开了无敌状态抵挡任何外界的影响。
当遇到不得不变更需求的时候,产品经理应该怎样处理呢?下面是个人的四条建议:
a、积极处理。往往,当一个设计愈是趋于完成,人们愈是倾向于局部调整,而不是做重新设计。当一个需求因为众所周知的原因不得不调整的时候,作为产品经理需要做的第一件事便是积极面对问题,积极处理。
项目开发往往是一个紧张的过程,每半天甚至每几个小时就有若干个功能点开发完成,当一个需求变更传达出现“延迟”,这个变更对项目的正常进程的“破坏力”就会更大一些。
b、保持沟通。“说话容易,沟通很难。很多事除非对方自己想明白,劝是没有用的。所以,很多时候,沟通是个自己挣扎的过程”这话没错。需求变更直接会影响到下一道工序,产品经理需要将需求变更的细节和原因传达给相关人员,包括视觉、前端、程序、测试等。
这是很多产品经理表示非常痛苦的过程,因为可能会遭到数落和冷眼,日本有一个礼仪原则是“不要给别人添麻烦”,但是在项目中,这不可避免。
个人认为所有沟通的障碍都源于思想的不统一,如果让大家觉得这个需求修改是在浪费时间,那么沟通上的不畅快在所难免。项目不是这样算的,需求既然更改一定有所目的,产品经理需要将这个原因讲明白,不做修改或节约沟通时间导致的返工,后果往往更严重。
软件开发过程中的任何一个活动都是为了能够产出优秀的代码。所以,代码才是核心。
1. 代码是软件开发的基础
编码是软件开发过程中最基本、最底层的技艺,然而也是最重要的技艺。任何一个领域的专家都需要花费大量的时间来进行基本技艺的锻炼,木匠需要花费大量的时间来锻炼他们对各种工具的掌握,厨师则需要练习刀工和火候。程序员也是一样的,对我们来说,语言的各种特性必须要了然于胸。而对软件的管理也需要从代码做起。
从20xx年到现在,国内兴起了一股软件工程热,需求管理、配置管理、甚至CMM。面对纷至沓来的各种方法学、UML、OOA,大家似乎已经热衷于这些概念本身了,却往往忽略了软件开发中最基本的元素:代码。在和很多软件组织的接触过程中,我们认为大多数组织急切需要的并不是这些工程理论,不是说这些理论不重要,而是这些组织的症结不在于此。很多的组织连代码的质量都管理不好,又何谈其它呢?代码管理是基础的基础,从管理的角度上来看,任何一个组织的管理都需要一个从上至下的管理过程,有基层的管理人员,也有高层的管理人员。对代码的管理就是软件开发中的基层管理,它起到的作用就是能够把需求、设计的思路贯彻到最终的代码中。
“管理无大事”。对软件的管理也是一样,大部分的问题都是由于很小的原因引起的。例如,一个产品如果后期在debug上花费了大量的时间,那么,这种现象是由于什么原因引起的?一种可能的原因是前期的代码设计中对代码质量的把握不严。每一次代码功能的演化并不会产生太多的问题,但是当代码累积越来越多的时候,问题也就慢慢出现了。那么如何解决呢?可以加强QA的力量,也可以引入复审,还可以引入单元测试。总之,要有一种方法对代码进行控制。
软件的开发过程就象是一部精密的机器,任何一个环节的变化,都会对其它的环节产生影响。把软件过程按照瀑布的形式进行划分是一种分解的处理思路,但同时我们还应该看到不同活动之间的相互影响。软件开发中的生命周期模型也是一个层次模型,从业务建模一直到软件实现,需要跨越数个层次,同样会出现执行不力的情况,例如,代码设计偏离需求、偏离设计的情况比比皆是。
如何避免这种情况呢?这就需要我们从源代码的角度,反思其上游的实践活动,是否足以约束代码设计?就拿XP来说,他解决这个问题的方式是尽快的进入代码开发阶段,从代码开发中发现问题,并在下一轮的开发中解决。这种思路是正确的,但XP毕竟是方法论,他不会告诉你过于细节的东西,尽管XP已经提供了大量面向代码的实践。因为方法论的抽象级别比较高,使得他必须舍弃部分的细节。而这篇文章告诉你的,就是这些细节。就像我们在下一节中讨论的例子,需要在代码中加入对异常的处理,那么,异常的源头在哪里呢?是需求,在需求中,我们发现了一些业务的非正常的处理序列,发现了一些业务实体的限制性的要求,所以在代码实现中,就需要有相应的异常处理。在例如,一个优秀的异常处理,还需要让客户端程序员了解可能发生的异常,以保证不同代码间正确的集成。
2. 面向对象的代码
面向对象的代码已经在现在的软件开发中占据了主流的位置,面向对象的思路也有其优势所在,就像后文所讨论的,面向对象代码有着非面向对象代码的很多优势,而软件业中很多新的思潮的产生,也都是基于面向对象语言的,所以我们关注的代码将是面向对象代码。
面向对象的思想来自于抽象数据类型。对于面向对象来说,它最重要的改进就是把世间万物都描述为对象,而类则描述了同一种对象的特征,而不是像传统的开发方法那样,按照机器指令的执行顺序来进行设计。当然,面向对象代码最终仍然是要按照时序来执行的,但是从程序员的角度看来,面向对象代码更侧重于对象之间的交互,多个对象各司其职,相互协作以完成目标。而面向对象技术的发展,也是朝着更加贴近我们世界观的方向发展。从这点来看,有人说完全没有程序设计经验的人学习面向对象可能会更加的容易,因为他不需要从原先的时序程序的桎梏中摆脱出来,但这未必是事实。面向对象决不是一种简单的程序设计思路。这是我们的观点,也会在下文中反复的论证。
和所有的职业一样,程序员,或者是面向对象程序员,始终坚持的一点就是严谨。你会看到各种各样优秀的代码,但那决不是一次能够写成的,要不断的尝试,不断的改进。为什么重构和测试优先是敏捷方法中很重要的一项实践?因为程序员不是神,他们需要慢慢改进他们的代码。虽然罗马不是一天能够建成的,但是在编写面向对象代码的过程中,有一些实践是需要坚持的,它体现了我们所说的严谨。
3. 编写并管理面向对象的代码
编写优秀的面向对象代码并不是一件容易的事情,优秀的OO代码如行云流水,糟糕的OO代码让人觉得浑身起鸡皮疙瘩。编写优秀的OO代码要求程序员有一定的自我修养,能够以抽象的思路看待问题,找到问题的核心并对问题域进行分解。它强调的是一种解题的思路,但这个解不是唯一的。
典型的例子是设计模式,设计模式确实给了我们以很大的启发,通过它,我们能够了解到优秀的代码是如何用于解决实际问题的。但是是不是你必须在软件中照搬设计模式呢?如果你这么做,那么你对设计模式的理解仍然不够。我曾和在建筑行业的朋友聊起Christopher Alexander的建筑的永恒之道。他很兴奋的告诉我,那确实是一本很好的书,能够引发人很深的思考,但是现在也有另外的一种观点,认为美仍然是无形的,应该发自建筑师的内心。对这句话我思考了很久,其实建筑是给人使用的,因此最重要的是它能都给人带来的价值,隐含在其中的那种活生生的气质,这是建筑师文化底蕴的外在表露。所以,Christopher Alexander在那本书中的目的,也是为了找到一种总结自己观点的方法,来总结自己对人文的认识。至于现在大家对他的思路提出了质疑,那也是一件好事,这说明大家对建筑之道的认识到了新的高度。建筑是这样,软件中的模式也是一样的,我也曾热衷于研究模式的使用,直到某一天我猛然惊醒,与其沉迷于模式的表面形式,为什么不去研究隐藏在它背后的文化底蕴呢?武侠小说中常说无招胜有招,模式的应用也应当到达这个境界,你如果可以在不经意间应用模式的思想,那又何必拘泥于模式的形式呢?
编写优秀OO代码虽难,但还有更难的事情,就是让整个开发团队都产出优秀的OO代码。我们刚才说了,OO对问题的解不是唯一的,但各个不同的优秀解汇集到一起,可能就是一个糟糕的解,这是风格和架构的问题。你如何在团队中制定制度,营造氛围,让优秀OO代码成为团队最终的成果?这些问题,在我看来,要比CMM难得多,这个问题并不是靠花钱就能够解决的。如果能够解决这个问题,这个团队的创造力一定是惊人的。
4. 面向对象软件开发过程
普通的软件开发过程和面向对象开发过程有着很大的不同。回想我们在非面向对象中开发过程中,最经常采用的任务分配方法就是以软件模块为单位,这样的好处是分配简单,不同任务之间耦合程度低,容易操作。坏处是几乎无法做到重用,也缺乏整体性的设计。而面向对象软件开发则不同,它是以类、类集合作为基本单位的。类之间关系错综复杂(虽然我们提倡低耦合的设计,但类之间的关系仍然是相对复杂的)。这种情况下程序员之间相互协作的要求就非常之高,这种关系如果处理恰当,则能够完全体现出面向对象的威力,否则,那将会是一场大灾难,面向对象的软件开发过程要养成一些好的习惯:
4. 1 尽量简化和稳定客户端。
个人编程可以是一种享受,但团队开发始终是一项严谨的职业活动,因此多考虑别人,不要设计复杂的接口,虽然你省事了,但这会给理解和使用你的接口和人造成障碍。
4.2 准备一份简洁的文档,并保持更新。
随便一种形式的稳定,可以是代码,可以是UML图,也可以是纯粹的文字(估计没几个程序员喜欢这种形式)。只要它能够传达你的代码的目的,那就足够。记住,更新代码后,同时更新你的文档。过期的文档不仅是废纸这么简单,它会给其它人造成麻烦。切记!
4. 3 尽可能多的考虑异常和错误的情况。
本周是实习的第一周,很幸运碰到了产品部很有耐心的leader詹老师。 实习第二天他让我做一个H5的游戏类应用, 主要用于微信中分享。之前对于自己的水平是否能完成完全没底,但感觉第一次实操确实也有点让人兴奋,之前关于产品开发的印象只停留在书本上。
詹老师让我模仿“过家家gogaga”所开发的“打电话认师姐”微信小游戏写一个类似的应用。 我把原始应用找出来便开始抠代码, 第一步是将套在微信接口中的原始应用抠出来(套在微信接口的原始应用只能在微信浏览器中运行,无法在电脑上测试),周二开始做.
一开始我的效率非常低, 因为我很多测试方法并不熟悉, 在参阅了微信JS-SDK后总算把原始代码抠出来, 厘清该应用的基本逻辑后开始重写, 在詹老师的耐心地指导和对基础知识的讲解下,我们将原始代码中120行的CSS代码优化到60行,将五百多行的JS代码优化到只有60行,这事实上是在原有的逻辑上完全重写了,这让我开始有点成就感了。
也第一次感受到产品开发中的大局观,这种大局观更多的是体现在细节上,比如代码变量名的设置需要与文件存放联合考虑,以便日后修改和维护。 詹老师在讲代码逻辑的时候亲自写了一个例子让我体会, 虽然消化这些用了快一天,但感觉真的收获很大, 有拔云见日之感。
实习一周后所遇到的种种困难也让我意识到自己很多问题,归纳如下:
1.尽管之前对于书本的学习有一定积累,但还是暴露出代码的不熟练,细节方面处理能力差,在细节上耗费时间太多。
2.缺乏基本的软件开发测试思路, 比如之前不知道chrome具有相当强大的错误测试功能,它对于没有触发的函数也有错误提示。
3. 缺乏专注的习惯,比如詹老师让我先完成功能方面,但我却习惯于去找找界面的素材, 这就导致两边都没有做好。虽然认识上知道不该这么做,但是习惯上却很难改。
4.自己很多时候虽然有问题但是不能完全阐述清楚,所以跟leader沟通的时候往往支支吾吾,以后有问题自己首先得想清楚,将问题讲明白也是很关键的能力。
另外也记录一些自己的浅薄感受:
1.工科出身的詹老师对于代码的运行效率有很多的考虑,但对于用户体验和交互效果似乎稍微少点,当然也可能是我新来并不了解的原因。
2. 公司在做小应用的时候并不会在用户测试和产品结构功能上讨论太多,公司要的是迭代效率, 就是要快速出应用,然后再快速上线下一个。
本周接到新的任务,为中国教育在线制作H5的招聘页面, 之前的“给师姐打电话”的H5应用还没有优化好,能做的改进的地方还有很多,leader詹老师让我先把招聘网站做好, H5应用先放放, 他给了我大街网做的“中国好Offer”作为参考, 拿到之后确实感觉这些页面都做得很好, 詹老师搜集的资源确实十分丰富,从实习到现在他发给我的参考很实用,在看完了五六十个H5的招聘页面之后开始构思, 在将产品架构基本做好后,测试又发现很多问题, 有技术层面的,但更多的设计本身的问题。
技术的细节的问题:基于jquery mobile的开发框架国内的资料十分有限,不得不查阅原始的英文API,很多问题也只能去JQM的论坛查找,这些都十分考验英文阅读能力。CSS的布局问题繁杂,在各个浏览器,各个应用的渲染都不一样, 也是很折磨人的过程,我现在就碰到了css中font-weight属性在Safari没有渲染的问题,至今没有解决。
逐渐体会到前端工作的繁琐与细节, 需要学的东西很多, 有时候可以凭自己一些小聪明在当前解决,但并没有摸到问题的根源,扬汤止沸不是长久之计,但又好像没有足够的时间来系统的摸索,我只能先将这些问题一一记下来。这些技术的体会是一方面,另一方面便是产品的设计层面, 现在就是因为产品快做好后发现有很多地方犯了低级错误, 以往的纸上谈兵头头是道,等到自己亲身实践却感到把握不住很多设计原则, 比如界面设计给用户造成的不必要的干扰, 功能可见性的不足,逻辑上的不严谨, 以下我归纳了下岗做好的H5界面存在的交互问题:
1.页面的设计初衷是左右滑动来切换页面,但给几个朋友测试后都不能进入页面后就自然而然的知道是左右滑动。
2.join us的图标给用户是按钮的错觉,在测试中很多用户以为是按钮,都会下意识的点击。
3.交互效果的乏善可陈,与滑动的逻辑似乎也没有太大关联,只是单纯的加入了一些css3的动画。
4.用于提示左右滑动的动态箭头会让用户以为是点击作用
受某文化公司委托,开发一款用于视频和图像处理的软件,开发难度高,高到从未搞过,开发周期长,长到是我以前项目监控最长开发周期的两倍,开发成本之底,让我觉得程序员成了高级打字员。首先是需求分析书、产品规格说明书、设计说明书、代码规范说明书、测试计划,光文稿就不知道熬了多久才做完。
紧接着,遇到一系列问题,首先是语言选择,vc++和c#都是可以保证开发完成的选择,但是vc++内存容易报错,界面很难修改,而客户要求的界面质量甚至比程序的功能更严格,没办法,客户就是上帝,上帝做事一定有他的道理。c#语言易于开发,而且图形界面绘制也易于修改,可以做出客户体验很好的界面,但是在资源的消耗上,让我很吃惊。做到第二个月,大概的界面已经完成时,出现界面刷新的问题,刷新时开始卡,界面不流畅。没办法,改。
开会,总结,技术骨干找问题,拿出解决方案,力争第一次做软件把它做好:
重新做软件开发进度计划和软件测试计划,并且让独立功能demo制作和测试先行;
用direct draw、direct 3d或者opengl中的一个替代c#本身的gdi绘图,将在接下来的开发任务中加入进去。
事无巨细,当我满意的看着界面流畅,功能也已实现时,发现软件在低分辨率或者小本上根本乱到没法看,甚至是界面功能按钮错位,重叠等等。没办法,改。毕竟软件的多分辨率兼容和操作系统兼容是必须要做的。
接下来一大堆的麻烦找了上来,软件出现各种各样想都想不到的问题,总算是按时将第一个版本发布出去,并且开始接下来的升级开发任务。
最后,给刚刚接手软件开发项目的朋友一些忠告:
一、相关的文档不是给别人看的,而是给自己看的,相关文档一定要齐备,而且让所有涉及开发的人员都清楚的知道你文档里所要表达的意思;
二、一定要注意多做demo,多做实验,一个demo程序员几个钟头就可以完成,甚至更少,但是不做demo,核心程序没有做实验,其他的东西都围绕核心程序做了上去,到时候耽误的可不是几个钟头
三、程序设计要注重用户体验,当初客户对我要开发软件提出近乎苛刻的要求时我不在意,但是当我自己反复使用软件时有了很多体会,流畅美观的界面带给人心理的快感的确能替代一些尚未开发完整的功能带给用户的遗憾。
四、测试计划多次进行,分批进行,不要全部开发完成再对软件做测试。
还要坚持三个月,软件马上发布,希望大家的支持,谢谢!!!
一、实训过程
首先,我们学习通用编程:任何类类型的所有值都可以同object类型的变量来代替。封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance field)。重载:当多个方法具有相同的名字而含有不同的参数时,便发生重载。编译器必须挑选出调用哪个方法。数组列表:ArrayList动态数组列表,是一个类库,定义在java.util包中,可自动调节数组的大小。
class类 object类中的getclass方法返回class类型的一个实例,程序启动时包含在main方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类。Java中对内存的分配是动态的,它采用面向对象的机制,采用运算符new为每个对象分配内存空间,而且,实际内存还会随程序运行情况而改变。程序运行中 Java系统自动对内存进行扫描,对长期不用的空间作为”垃圾”进行收集,使得系统资源得到更充分地利用.按照这种机制,程序员不必关注内存管理问题,这使Java程序的编写变得简单明了,并且避免了了由于内存管理方面的差错而导致系统出问题。而C语言通过malloc和free这两个库函数来分别实现分配内存和释放内存空间的,C++语言中则通过运算符new和来分配和释放内存,总之,Java语言是一个纯的面向对象程序设计语言。
Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。 Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。 Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。 Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。 Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。 Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
二、心得体会
刚开始时张宇老师先教我们配置JAVA的编程工具和运行环境,然后教我们学JSP,在此期间,我们自学了JAVA,又学了Tomcat的使用及MySql和HTML语言,当我们JSP入门后,陈老师开始教我们学习JSF框架,但由于学校的安排,刚开始学,陈老师便去了苏州,由在苏州带队的孔祥盛老师回来教我们,在孔老师的安排下,我们又学习了SQL Server 20xx和Struts框架,教我们学会了Javawebstudio的使用。总之,
在两位老师的细心辅导下,我们有了很大的进步,知识得到了扩充,认识得到了加深,也使得我们的自学能力得到了很大的提高,在此,我向两位老师表示由衷地感谢。这次实训是三年中所学知识的一次汇总,是三年来学习能力的一次集中体现,有的知识在这次实训中用不到,但以后会用到,我敢说肯定会用到。因为好多东西都是厚积而薄发,所学的知识在关键的时刻也许只有一种用得上,但这一种也许足以成就我们的人生,到那时我们才能真正体会到知识的伟大,才能真正了解老师的重要性。我觉得要成为一个合格的程序员,首先要具备的是一种自学能力,遇到了问题自己要有能力去解决,当你尝试了各种方法,实在无能为力时再去请教别人,这时你所学的知识你一生都不会忘记,它将成为你一生的财富。有句话说得好:进攻是最好的防守!当你遇到了问题,你要试着去解决,编程嘛,想到了就要去试,你的面前就一台电脑而已,它又不会爆炸,你怕什么呢?我不敢说我的观点一定正确,每个人有每个人的想法,也正是因为大家的观点各不相同,才使得IT业这个新兴的产业在短短的几十年中得到了长足的发展,给人类社会创造了超过以往人类社会所创造的价值的总和,这不能不令人惊叹,也正是因为如此,它才使得我对它产生了强烈地好奇心和探索欲。未来的社会是信息的社会,信息业所创造的财富在人类社会中占据首位,经济、军事、教育、医学、农业等领域无一不用到信息业所产生的科技成果。我能感受到它所创造的经济效益会有多大,所以,我要说:我爱编程,海枯石烂,矢志不渝!我是一个新技术的狂热追随者,每次上网时总要到MLDN上逛一下,当看到短短的几行代码却能产生令人惊叹的功能时,我就被编程者的那种魅力所折服,我想成为其中的一员,我为自己现在所学习的专业感到自豪。
在我学习的过程中我也遇到了很多的问题,可是我却发现我遇到的好多问题在网上总能找到答案,我才明白我遇到的问题很多人都遇到过,并且他们也把解决的办法发布到了网上,以使我们这些初学者少走些弯路,我觉得他们太善良了,同时我也明白了自己是多么的渺小,我正在走前人走过的路,到底前面的路有多长多远,我不知。他们是开路先锋,他们为我们学习新技术新知识铺平了道路,我们所要做的就是把他们所发明和创造的东西掌握使用而已,并且知识量又很大,当我看到有无穷无尽地学习资源供我享用时,我只能说,他们像太阳一样照耀着我成长,他们太好了。当我看到程序代码,我就有一种特别的感觉,让我不断想成为一名编程高手,如果真的有一天,我的理想会实现,我会加倍努力好好学编程,永远不改变!通过三个月的实训,我感到自己学到了很多东西,虽说不精,但已经入门,于世间万物之中,遇见我所遇见的事物;于千万年之中,时间的无涯荒野里,没有早一步,也没有晚一步,刚巧赶上了,上苍让我有机会接触编程,给了我一条路。我很清楚以后的路还很长,再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达。任何业绩的质变都来自于量变的积累,成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成,让我们将事前的忧虑,换为事前的思考和计划吧!在实训的过程中,我深深感觉到自身所学知识的有限,有些知识点以前没有学过,但我也没有去研究,实训时突然间觉得自己真的有点无知,虽然现在去看依然可以解决问题,但要浪费许多时间,这一点是我必须在以后的学习中加以改进的地方,同时也要督促自己在学习的过程中不断的完善自我。另外一点,也是在实训中必不可少的部分,就是同学之间的互相帮助。所谓”当局者迷,旁观者清”,有些东西感觉自己做的是时候明明没什么错误,偏偏程序运行时就是有错误,让其他同学帮忙看了一下,发现其实是个很小的错误。所以说,相互帮助是很重要的一点,这在以后的工作或生活中也是很关键的。
俗话说:“要想为事业多添一把火,自己就得多添一捆材”。此次实训,我深深体会到了积累知识的重要性。在实训当中我们遇到了不少难题,但是经过我们大家的讨论和老师细心的一一指导,问题得到了解决。两个月的实训结束了,收获颇丰,同时也更深刻的认识到要做一个合格的程序员并非我以前想像的那么容易,最重要的还是细致严谨。社会是不会要一个一无是处的人的,所以我们要更多更快地从一个学生向工作者转变,总的来说我对这次实习还是比较满意的,它使我学到了很多东西,为我以后的学习做了引导,点明了方向,我相信在不远的未来定会有属于我们自己的一片美好天空。
国贸软件实训心得体会(793字)经过长时间对国贸软件的的使用,在不断练习操作的过程中,我对国贸软件的最深刻感觉是:学以致用、有趣、必须细心耐心反应迅速。
1.学以致用
作为国贸专业,经过长时间的理论学习,急需通过实际操作或某种近似于实际操作的平台对所学的理论知识加以实践,以求进一步掌握和巩固,而国贸软件正提供了这样一种平台。该软件涉及了及出口贸易的各个方面和环节,从外贸公司的经营运作到实际的进出口业务流程,都能进行模拟实训。在使用过程中,会遇到很多国贸的基础理论知识和实务技能,这是对国贸理论掌握程度的最好考察。眼过千遍不如手过一遍,相对于理论部分而言,国贸实务更注重实际操作,通过这种理论结合实践的方式,巩固基础知识,查找理论学习的不足,以前学习的实物理论基础知识会更加的具体和直观。同时,该软件的实务操作部分与报关员报关实务所涉及的知识基本一致,这对于我的报关员考试复习提供了很大的帮助。
2.有趣
该软件通过“实战”方式训练,会在操作过程中遇到很多难题和挑战,这些必须自己想办法解决。由于大家进行了角色划分,形成了一个虚拟市场,所以大家之间相互的竞争是必不可少的,大家会从各个方面进行竞争。竞争在现在是无法避免的,意识正是现代社会生存发展所需要的。正是这种竞争,使得我(相信大家)对该软件产生了浓厚的兴趣。
3.细心、耐心、反应迅速
国贸软件涉及大数据计算的繁琐的单证填写,所以必须做到细心耐心,例如,在填制外贸合同时,一个小小的数据错误或是货物装运、指运港名称的错误都会是合同填写失败;填写保险单或是报关单证,没有严格按照合同数据填制就会导致填写出现错误,无法进行下一步骤,影响实验效率。
在操作过程中,除了复习、巩固所学国贸理论外,另一个重要任务就是想办法“赚钱”,提高自己企业的盈利水平和生存能力,这就要求必须反应迅速、判断准确,否则会觉得企业经营的举步维艰。 以上就是经过一段时间对国贸软件的操作使用产生的心得体会。
软件实训心得体会四:软件实训心得(778字)转眼间,到昆山已经两个多月了。不知不觉中我已经从一个在校生变成了一个职员。这跟在我们学校是完全不一样的。除此之外,安博还制定了严格的制度,这些使我们在安博的培训像职工在公司工作一样,让我们提早接触到公司的氛围。
来安博最重要的目的还是学技术,那就说说这里的教育情况吧。安博实行的是上午授课,下午上机练习的制度。我觉得我们这个班上午的授课经理非常好,他对java的理解非常透彻。我在大学学了半年的java,仅仅停留在表面上,对实质的内容根本都不了解。比如说==与equals的区别,方法的覆盖,变量的隐藏等等。老师通过图的方式,给我们讲解它们在内存中的情况,使我们从本质上了解了这些东西。他的这种授课方式,既生动又形象,彻底地将问题讲明白,我们接受起来轻松容易,也不容易遗忘。
除了他的讲课方式以外,他还是一个非常幽默的人,坐在凳子上听四个小时的课,会很乏味的,他时不时的给我们说一些搞笑的事,或者开玩笑的话,使课堂气氛非常活跃。他每讲完一个新知识点,都给我们留一点时间练习,加深对新知识的理解。我们有什么问题,他都会很耐心的跟我们讲解,不管程度是好是坏,他都一样对待。总之,听他的课就是一种享受。他还把跟知识相关的材料发给我们,让我们有研究的空间。有时还给我们一些面试题,让我们提早看,只有准备好了去应聘才有机会。
昆山还给我们开了一些素质课,讲解一些职场素质,如何为人处事,如何同面试官讲话,还要求我们在日常生活中也尽量做到。在我们就业之前开这样的课,对我们这些即将踏入社会的大学生来说是非常重要的。公司招聘员工,一看实力,二看素质,两者缺一不可。
总之在昆山的这段时间中,我学到了很多。时间虽短,但所学到的和知识的实用性很强。所有的老师们都教给了我们很多工作习惯、工作技巧、日常礼仪、职业素养和心态方面的东西。使我们对今后的工作有了新的认识,增添的极大的信心。
软件实训心得体会五:软件工程实训心得体会(1521字)这次软件工程实训是从20xx.12.26号开始的,截至20xx.12.31号。实训内容是用java相关知识(主要是jsp)做一个物流配送系统。下面谈谈对这次实训的看法。
因为自己平时对java知识储备不足,特别是jsp这一块基本不了解怎么回事,所以一拿到这个项目,我心里都是没有底的,再加上我被分到的那个组,我知道就意味着是我一个人在战斗了。呵呵,26号,实训开始了,我们的老师是来自中软国际公司的程序员,一个是周褀,一个是朱映,都是一身朴素的着装,让我感觉做软件的也没什么两样。老师介绍了自己之后,就直接切入正题了,分析了下我们各个组的系统,即将用到的知识,然后就总体把觉得需要补充的知识(jsp和数据库连接等这几块)给我们实际操作了下,因为当时看到用jsp,还讲的那么认真,当时我就后悔了,平时要是多听点,现在老师这么认真的给我们讲,这是一个多么难得的机会啊。后悔也没用啊,开始还勉强能理解一点,后来就直接晕了。然后再给大家介绍了一些即将用到的工具,比如rationalRose,SVN,MyEclipse等等。接下来的几天就不再细讲了。下面谈谈通过这次实训的心得体会吧。
通过这次实训,让我了解到工程开发的过程,可行性分析——>需求分析——>概要设计——>详细设计——>代码编写——>测试——>验收。从技术方面上,我开始jsp基础基本上就是零的,在老师和syz2(另外一个物流小组,我一个人基本上是跟她们做的,或者说是看着她们做的)的帮助下,对jsp有了一个大概的认识。其实实训开始前,我还以为做个系统没什么大不了,可是当真正拿到一个项目,我却真的无从下手了,而且就是在知道需求分析和详细设计,在代码编写时,一样寸步难行。通过这个实训,也让我了解到,团队协作是多么的重要。一个人的精力是多么的有限。进一步理解到,企业为什么如此重视团队协作。同时借用老师的话就是团队协作固然重要,但是是建立在个人素质的基础上,假设你个人素质不行,将会影响到整个团队,就别提对团队作更多贡献了。**老师说这几句话的时候,朝向了我,估计是有特殊意义的吧,所以,我将谨记老师的教导。
还有一个收获是从一个同学(小胖)那里得到的,他的那组成员跟我的这组大体一样,我倒是觉得没什么了,不过他倒是很重视这个问题吧。然后他说出来,我也觉得这个问题确实其实是个大的问题。就是不管你会不会这门技术,会不会做这个东西,态度要正确才好,就算你不会做,你也应该认真的对待,将来 出身到社会,就不是说像你现在,不会做就不做,跑去玩游戏了。小胖说出了这段话,也在我身上有了一个印证,虽然我jsp技术知识为0,但我也还是在认真的跟着他们一起做,不会做,就多问,毕竟现在我们是学生,可以毫不顾忌的询问各种问题,老师也会尽力为你回答。将来出身社会就不一样了。虽然,我就算个打酱油的水平,但是这个酱油也要打得有涵量啊。不管怎么样,我能对自己有个交待,虽然我不会,但是这次实训我确实是认真对待了,六天的实训,除了晚上加班外,还花了2个通宵来完成不同阶段的任务,完成与否也不重要了,我至少我做了,这点,是这次我应该对自己的一个肯定。
这次实训的心得基本上就是这些了,最后特别感谢中软国际带我们的那两个老师(周褀,朱映),这两个老师对待我们很平易近人,对我们提出的问题,总是不光解决了,还进行了扩展,晚上也跟我们一起加班加到很晚,印象尤其深刻就是朱映老师为了给小胖解决一个问题,脸都变红了,还在继续努力,这点我并不会觉得老师知识储备不够,我想应该是这个问题的突发吧,一时没想到怎么处理。相反让我感觉更多的就是老师很认真,很负责。
来到北大青鸟通州校区学习已经快一年了,虽然时间不算太长,但对于我而言,在北大青鸟,我的收获是无法用时间长短来衡量的!
因为在来北大青鸟之前,我从没接触过软件方面的知识,所以刚开始很担心自己学不了,自卑的情绪很严重。但是细心的班主任发现了我的问题,总是很耐心的找我谈心,开导我!慢慢的,我想明白了,不要盲目的和其他同学作比较,今天的我只需要比昨天的我有进步,我的目的就达到了!
想通了以后,我自己也越来越自信了。就像一只从起跑线上开始爬行的蜗牛,虽然很慢,但是我目标很明确,很坚定!或许很多人会认为学习软件是一门很枯燥的课程,但是我觉得这乏味中也有不少乐趣。例如学习.NET和C#时,我们小组就自己制作了一款小游戏,虽然是一款很简单的小游戏,只能有一些普通的攻击动作,但是它就是我们的学习成果。玩着自己编写出来的小软件,想着以后能开发出更厉害更完善的系统,让我们对未来的工作和学习充满了动力!
刚开始接触三层架构的时候,我上课听老师的讲课真是一头雾水。但是我并没有放弃,而是更加认真,调整好心态,强迫自己反复的看书,查资料,一遍遍的练习,遇到不懂的就马上去问老师,就这样,终于攻下了一道道难题。
如果你问我在学习软件的过程中,什么学习方法最重要,那我会认为勤奋是最重要的。一定要反复的练习,这样你才会掌握得更扎实,基础打得好,后期的学习才会更省力!另外,我觉得课余时间应该好好的利用起来,不要局限于课本,要主动的去学习更多的知识和技能,为以后的工作准备更多的能力!