开发心得记录
开发心得记录
注:主要记录一些在编码过程中的一些心得体会,或者突发奇想的开发思路,这里将不涉及过多的具体代码,更多的可能会将代码分块,然后分析和思考。笔者希望通过这样的方式记录自己开发思想的迁移过程,也为后来者提供更加具体和实用的指导。
*******************************************************************************1、目前我所了解的开发技术及其理解:HTML:超文本标记语言主要用于网页的制作,提供了一些已经被定义好的标签,每个标签都具备独特的功能。开发者通过将这些标签合理的整合,从而达到展示整个页面内容的目的。一般来说,HTML不单独存在,它会和CSS(层叠样式表单)和javascript一起开发网页。基本上,只要是Web应用就肯定会需要和HTML打交道。HTML的标签就像是一堆已经被HTML标签的开发者制作出来的积木,我们在制作网页的时候,仅仅只是需要去根据具体的需要完成积木的搭建就可以了。
CSS:层叠样式表单主要用于配合HTML标签来控制整个网页的内容展示。一般来说,我们将HTML的功能定义为显示内容,然后把CSS的功能定义为修饰内容。实际上,HTML可以用于显示内容,也提供了一些可以帮助我们定位内容的功能,但是随着行业的发展,HTML中的那些定位的功能逐渐由CSS取代。目前做网页比较流行的一种方式是:DIV+CSS。javascript:一种脚本语言主要用于在Web页面上加入一些交互的内容,提高网页和用户之间的交互性,增强网页的趣味性。如果只有HTML和CSS,那么做出来的网页是静态的,也就是说,这个网页只是提供了展示的功能,用户只能够浏览里面的内容,用户的自主性很差(最多是通过超级链接去选择性的浏览页面)。而加入javascript之后,我们可以给用户更多的自主性(不刷新页面,选择性的浏览内容),而且页面上会存在更多的动态的内容(导航栏效果,页面特效,动态内容展示等等),而且我们能够在一个页面的范围内展示更多的内容。通过DOM,我们还可以动态的修改网页中的元素,通过使用Ajax和服务端异步通信我们甚至可以做到一些不刷新整个页面而更改页面显示的效果。xml:可扩展的标记性语言主要用于描述和存储数据。一般以标签的形式存在,类似于HTML,但是语法比HTML严格。XML所使用的标签一般都是由用户自己根据需要创建的,所以它的自主性很强。我们一般在XML中保存一些程序初始化所需要用到的数据信息,有些时候也用于跨平台的数据保存。
java:一种面向对象的编程语言脱胎自C++,在C++的基础上简化的一些操作,所以与C++相比,相对比较简单。目前java主要由三个方向的应用:桌面(J2SE)、网络(J2EE)、手机(J2ME)。这三个应用的底层语法是一样的,主要的区别在于:1、使用的API不一样;2、程序运行的平台不一样。在运行java程序的时候,需要安装和配置java的运行时环境,这个运行时环境主要由JVM(java虚拟机)和SDK(java类库)组成。jsp:javaserverpage主要是用于简化动态网页的制作而提出的一种开发规范。一般和sservlet以及javabean一起构建Web应用。JSP中集成了html、css、javascript、java、jsp标签等元素,语法相对杂乱。在开发的过程中,一般会在程序的结构上下功夫,使得程序的结构更加清晰和明白。在MVC模式中,它处于视图层,主要用于数据的收集和显示。注意:JSP的执行需要Web应用服务器的支持。
servlet:java服务端小程序实际上,它就是java类,不过和一般的java程序相比,它需要继承HttpServlet类。在执行的过程中会和Web应用服务器配合一起工作。在MVC模式中,它处于控制层,主要用于程序逻辑的控制。
javabean:java小程序(特定规范和特定作用)Javabean实际上也是java类,但是它的作用和servlet不尽相同。与servlet相比,它更加的自由化,在MVC模式中,它处于模型层,主要用于执行具体的业务逻辑。MVC:一种开发模式和程序的结构规范它将整个应用分成了三层,M(模式)V(视图)C(控制)。每一层都有自己的特定功能,主要作用就是将开发任务模块化,使得各个层级之间的功能耦合性减少,增强代码的可移植性和可维护性。在使用MVC的过程中,最重要的是三个模块的抽象和划分过程,这个过程往往比较重要,而且花费的时间会比较多,还有就是使用MVC会使得项目文件增多,这也会导致整个项目的复杂化。一般来说,如果是比较小的项目,不需要使用MVC实现。Flash:FlashCS设计器主要用户Flash动画的制作,偏向于设计。在制作游戏的过程中一般使用Flashcs设计器完成元件的制作,减少动画的制作难度,提高程序的开发效率。ActionScript3.0:Flash动画的内部脚本主要用于控制Flash元素,它和Flash一样需要在FlashPlayer中执行。目前ActionScript3.0(后面简称AS3)由AVM2提供支持。AS3的核心是显示对象,基本上所有的编程都是围绕显示对象来说的,所以AS3一般用于客户端的制作。目前AS3是制作WebGame客户端的首选,也是制作RIA的首选。它的主要优势:1、丰富而简单的类库;2、市场占用率非常高;3、专注于客户端,给用户提供更加炫丽的客户端展示。Flex:一种企业级的Flash应用程序开发框架类似于XML和HTML的结合体,实际上,执行的过程中每个.mxml都被转换成了相对应的AS代码执行的。主要用于大型的RIA应用,目前很多公司选择其作为界面的展示,因为它内部提供的丰富的组件,能够很大程度上提高程序的开发效率。但是Flex也存在几个比较严重的不足:1、因为需要把.mxml解析成AS执行,所以与纯AS代码相比,执行效率较低;2、因为Flex代码的执行需要Flex框架的支持,所以在目标SWF中需要集成Flex框架,这会导致SWF文件的增大;3、丰富的组件库提供了多样的选择,但是我们会发现,有更多的组件我们不需要使用,造成了很大程度上的资源浪费。OOP:面向对象一种程序开发思想,它有四个特点:抽象、封装、继承、多态。一般来说,我们把后面的三个特点称为OOP的三大特性。与传统的面向过程式的编程方法相比,面向对象是站在河更高的高度上从整体上去分析整个代码结构。面向过程是从小到大,慢慢叠加积累的过程;而面向对象就是从大到小,慢慢细化的过程。面向过程是根据计算机逻辑,一点一点的实现效果;而面向对象是站在人类本身的角度上去思考问题,然后根据具体的语言和语法结合计算机逻辑去实现自己的想法。面向对象的好处在于,因为整体结构是站在人类语言的角度上去设计的,所以,理解起来相对比较简单,而且扩展性也会非常好,方便代码的重用以及后期的维护和修改。但是它也对开发人员提出了更高的要求,所以,使用OOP的原则和MVC一样,如果是一个相对比较小的应用程序的话,就没有必要使用OOP了。设计模式:一种面向对象的设计思想设计模式本质上是由一些有经验的程序员从大量而重复的编码工作中总结出的一些既定的编码规则。它提供的主要是一种代码结构,用于实现特定的需要。设计模式的使用能够简化设计师的设计工作,并且由于提供了一种统一的规范,所以,使得了解设计模式的程序员之间的沟通变得简单。需要注意的是,所有的设计模式都是为了解决一定的问题而存在的,所以设计模式的使用应该是有特定要求的,如果你不确定使用设计模式之后会有什么好处,那么最好还是别去使用设计模式,因为,设计模式是一个相对抽象的东西,很多的初级程序员很难去理解为什么。实际上,最好的使用方式是,了解设计模式的内部意义,然后根据项目的需要去使用这些设计模式,甚至在一些特定的结构中去修改设计模式,使得这些设计模式能够很好的组合起来,或者自定义一些设计模式的变种,使得设计模式更好的与当期的项目结合起来。
UML:一种建模标准UML主要是为了给设计师设计整个应用结构的。它存在的目的和价值在于让设计者更加清楚所需要制作的是什么,也为了让其他参与开发的人员知道整个框架的大概结构,了解自己负责的模块需要和哪些人员有交互。如果后期需要修改,也可以在这个基础之上进行修改,这样的话,一些相对比较长时间的开发才会进行的更加顺利。UML设计主要包括以下几个方面的设计:1、流程设计;2、类结构设计;3、模块设计等等。201*-12-22by:lymeng*******************************************************************************2、啊
*******************************************************************************
*******************************************************************************
*******************************************************************************
*******************************************************************************
*******************************************************************************
*******************************************************************************
*******************************************************************************
*******************************************************************************
*******************************************************************************
*******************************************************************************
扩展阅读:敏捷开发心得
敏捷开发心得
敏捷开发,曾经对它的理解就是没有文档的快速开发。众所周知,写软件开发文档是一件很痛苦的事情,所以越来越多的人因为这点去使用敏捷开发。但是经过这一段时间的学习之后,我对敏捷开发有了一些新的理解。
首先,对敏捷开发下个定义,借用下百度百科的定义。简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
这个定义只从表面上解释了一下敏捷开发,没有具体说明怎样使用敏捷开发。下面讲一下我对敏捷开发的具体心得。
1.架构师的重要性
首先,敏捷开发对于个人能力的要求是十分高的,尤其是领导人的能力。领导者及架构师是个举足轻重的角色,需要有深厚的行业背景、创新能力,以及架构能力。一个好的架构师,必须能考虑到产品当前使用模块,产品可以继续发展的模块以及下一代产品的方向。只有考虑到这三种模块和特性,这样的产品才能保持长期的生命力。敏捷开发也强调拥抱市场变化,这对产品架构师提出了很高的要求深厚的业务背景、创新能力、技术洞察力和架构思想。
2.不断加强自己的技能
敏捷开发对于个人适应变化的能力要求非常高,所以对于普通员工来说,就必须不断加强自己的技能。不断的关注优秀的技能和好的设计会增强敏捷能力,很多原则、模式和实践也可以增强敏捷开发能力。
3.结对编程
结对编程,简而言之,就是两个人同时坐在同一个电脑面前,一个人编程,另外一个人检查并给予一定的帮助,过一段时间可以交换工作。很多公司不愿意使用结对编程,因为这样得额外支付一倍工资。但是,结对编程也有它的优点。在工作效率上说,两个人同时工作就避免了单独工作时出现的没事上QQ聊天和浏览休闲网站的情况,这样会提高工作效率,结对编程一天的产出不一定小于两个人分别工作时的工作量。而且结对编程因为有另外一人的检查,出错率会大大降低。众所周知,错误发现的越早,系统维护起来所需要的代价越小。而且在我理解,这样还可以增加同事间的友谊,在工作其他方面会有意想不到的好处。
4.面对面交流
在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。在十几或者二十几个人组成的大团队中,文档是一种比较合适的传递知识和交流的途径。而敏捷团队一般不会很多人(大团队实施敏捷时也会分成多个小的敏捷团队),所以大量的文档交流其实并不是很经济的做法。此时面对面的交谈反而更快速有效。
5.经常性的交付软件
经常性的交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好。只要我们可以保证交付的软件可以很好的工作,那么交付时间越短,我们和客户协作就越紧密,对产品质量就更有益。虽然我们多次迭代,但并不是每次迭代的结果都需要交付给用户,敏捷开发的目标是让他们可以交付。这意味着开发小组在每次迭代中都会增加一些功能,增加的每个功能都是经过编码、测试,达到了可发布的质量标准的。
6.严格执行单元测试
所有编程人员都知道需要做单元测试,但是有多少人可以认真对待。很少人是真的想尽办法构建测试案例,大多数人都是应付了事。所以要认真对待单元测试,无单元测试的代码严禁提交。甚至于在条件允许的情况下,实施测试驱动开发。即先有单元测试,后有代码。
7.开发人员和业务人员天天在一起工作
在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。软件项目不会依照之前设定的计划原路执行,中间对业务的理解、软件的解决方案肯定会存在偏差,所以客户、需求人员、开发人员以及涉众之间必须进行有意义的、频繁的交互,这样就可以在早期及时的发现并解决问题。
8.轻文档但非无文档
敏捷开发强调沟通的重要性,而轻冗余文档。但敏捷开发并不意味着无文档。在敏捷开发过程中,适量的文档还是很有帮助,有助于整理思路,加快沟通和讨论。以前我们都用需求规格说明书或者用例来编写详细的需求,敏捷使用用户故事来罗列需求。使用基于用户故事的需求分析方法时,仍可能需要原型和编写文档,只是工作重点更多的转移到了口头交流。
9.反省会议
每隔一定时间,团队成员应该对最近的工作进行反省,然后相应地对自己的行为进行调整。由于很多不确定性因素会导致计划失效,比如项目成员增减、技术应用效果、用户需求的改变、竞争者对我们的影响等都会让我们作出不同的反应。对以上这些变化,小组通过不断的反省调整来保持团队的敏捷性。
10.有组织的团队
大家都知道,最好的构架、需求和设计出自与自组织的团队。敏捷中有很多种实践,其中迭代式开发是主要的实践方法,而自组织团队也是主要的实践之一。在自组织团队中,管理者不再发号施令,而是让团队自身寻找最佳的工作方式来完成工作。
要形成一个自组织团队其实比较难。首先自组织团队的第一个要素就是必须有一个团队,而不仅仅是一群人。一群人是一帮在一起工作的人,他们彼此之间并没有太多的沟通,他们也并不视彼此为一体。项目一开始,我们就会组建“团队”,但很多时候由构架师、需求人员、开发人员和测试人员组成的是一群人而已。团队的形成必须经历几个时期,在经历了初期的磨合后,成员才会开始对团队共同的工作理念与文化形成一个基本的认识和理解。团队内会逐渐形成规矩,而且这些规矩是不言而喻的。比如,每个人都知道上午九点来上班,都会主动询问别人是否需要帮助,也都会去主动和别人探讨问题。如果团队成员之间能够达成这样的默契,那么这个团队将成为一个真正高效的工作团队。在这样的团队中,成员之间相互理解,工作效率非常高。在自组织团队中,团队成员不需要遵从别人的详细指令。他们需要更高层次的指导,这种指导更像是一个目标,一个致力于开发出更好的软件的目标。
总之,自组织团队是一个自动自发、有着共同目标和工作文化的团队,这样的团队总是在向它的组织做出承诺。但是,实现这些承诺对于自组织团队来说非常重要。否则,一旦出现问题,团队成员之间就会出现信任危机。
现在社会工作的节奏越来越快,相信敏捷开发的使用者也越来越多。通过不断的对敏捷开发方法进行改善,我相信,以后不只那些中小型项目会使用敏捷开发,而且一些大的项目也会使用。总有一天,人们使用敏捷开发时会做到驾驭自如!
友情提示:本文中关于《开发心得记录》给出的范例仅供您参考拓展思维使用,开发心得记录:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。