程序员基本修炼(代序)课件

程序员基本修炼(代序)课件

ID:33405401

大小:249.00 KB

页数:39页

时间:2018-05-25

程序员基本修炼(代序)课件_第1页
程序员基本修炼(代序)课件_第2页
程序员基本修炼(代序)课件_第3页
程序员基本修炼(代序)课件_第4页
程序员基本修炼(代序)课件_第5页
资源描述:

《程序员基本修炼(代序)课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、程序员基本修炼(代序)简单讨论程序员的基本要求议题软件的基本哲学程序员的职责程序员的基本技能和素质课程总体介绍2软件的基本哲学软件的熵软件的不确定性软件的确定性垃圾是如何产生的从思想到实现,距离有多远3软件的熵熵的概念来源于热力学第二定律,但是有着哲学上的意义,这是一个少有的对软件开发工作有重要影响的物理学概念。熵表示事物的无序程度,对于一个孤立的系统来说,熵总是不会减少的,系统内部的任何活动变化都会导致熵的增加,也就是无序程度的增加,如要保证独立系统的熵没有变化,则必需有外部的干预。在软件开发活动中,不可避免地存在一些工作上的偏差,如果偏差没有得到纠正,也就是外部

2、干预,则工作的无序性将逐步增加,最终导致失控。项目管理、需求变更、测试等活动都可以看作外部的干预。并非所有的外部干预都可以使开发活动的无序性减少,不恰当的外部干预可能导致无序性增加。4软件的不确定性除了熵,很少物理学的规律适用于软件,所以导致很多软件的不确定性,因为目前来说大多数计量尺度都是基于物理学的。软件的不确定性主要体现在几个方面:软件需求的不确定性技术方法的不确定性管理的不确定性5软件的确定性在软件开发活动中,完全的不确定性是不能接受的。软件工程思想以及相应的许多工程技术和方法的出现,为解决软件的不确定性问题提供了很多看起来不错的解决方案。虽然不是绝对但是软

3、件领域确实也有一些比较能够确定的方面:物理上的确定性统计学上的确定性主观上的确定性使软件开发活动更具可信度,是项目管理和软件设计的重要目标。6“垃圾”是怎么产生的“垃圾”的原料并非“垃圾”,反而都是好东西,想象一下,一桌2000元的美味佳肴全部倒入一个桶中是什么?一间装修豪华但是充满蜘蛛网的房间,灰尘的比例是多少?很多的好东西以不恰当的方式放在一起就形成了“垃圾”,百分之一的“垃圾”可能导致一个很好的空间有了“垃圾桶”的感觉。在软件开发活动中也是一样的道理,很多先进的方法和技术以不合理的方式拼凑一起使用,实际上却有了“垃圾”的感觉。重构是清除代码垃圾的一个十分有效的

4、方法。7从思想到实现、距离有多远软件的开发活动是到处闪耀着灵感的火花,而灵感的出现往往带有随机性,有时只是一闪而过,甚至很快想不起来了,有些灵感运气比较好,被记了下来并不断发展乃至成为一种具备系统化特征的思想,比如OOP、AOP、Multi-Tie等。把思想转换为一些比较具体的方法,便于学习和应用,比如设计模式、分析模式、ORM等,有些方法经过更具体的规范化,最终形成了某种可固化的形式,就是技术了,比如技术库、平台、框架等等,从来进一步又演化出各种各样的工具,这就可以形成实际的生产力了。思想到实现的距离还是有些远,有些近。8程序员的职责责任心理解需求构建软件工作验证

5、文档团队协作9责任心职责的首要因素是有心,软件具有诸多不确定因素,很难给程序员一个十分精确的工作任务或者计划,有太多细节无法明确。只有有心的程序员才能负责任地、自觉地向一个并不十分明确的目标努力,并在过程中不断修正工作方向,最终获得一个清晰的目标。10理解需求理解已有的需求验证已有的需求修正需求补充需求11构建软件构建是占用时间最多的一项活动。编码不是唯一的工作,实现级的设计也是构建的工作任务之一。发现程序不合理的时候,及时重构,改善代码质量。单元测试也是构建工作的一部分。12工作验证对已完成的编码工作要有验证,编译、运行、消除警告。对代码设计的基本检查,看是否有明

6、显不合理的设计。验证基本的功能逻辑,看是否和需求一致。验证不是可有可无的,是程序员的一项基本义务。13文档文档是必需的,但不必总是很多的。把文档看作是表达自己想法的一种工具。可以使用一些工具减轻文档的工作量。文档应该经过基本排版的。14团队协作即使只有一个人完成的项目,也有和其它部门协作的工作。协作是程序员的义务,协作有工作流程的衔接和一般工作交流两种类型。衔接往往是因为分工的不同,每个人在一个流程中所处的位置不同,相应的职责也不同。交流则是促进成员相互了解已经提高工作透明度的问题,交流有正式的和非正式的。15学习很多时候,程序员并没有把学习当作一种义务。在传统行业

7、中,这种情况可能影响没那么坏,在软件行业,则是有很大问题的,原因还是软件的不确定性,由于不确定性,所以也不能保证个人的知识和技能在开发活动中总是充足的,所以程序员应该根据实际需求补充学习业务或技术上的东西。16程序员的基本技能和素质程序员的能力是需要修炼的交流和沟通理论功底程序设计需求分析平台、框架和库设计模式工具17如切如磋如琢如磨程序员所应具备的技能,或者最重要的能力是什么?抽象、逻辑、判断、估计、验证综合的技能体现,也就是由许许多多的基本技能融会贯通,综合训练并升华而形成的综合能力,在这个过程中需要理论和实践反反复复的促进和归纳,是一个不是那么轻松的过程,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。