欢迎来到天天文库
浏览记录
ID:8851210
大小:37.00 KB
页数:5页
时间:2018-04-09
《程序员应具备的技能》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、程序员应具备的技能: 有种说法,叫做“技多不压身”。多一项技能总不是坏事。也有一些谚语,说“学 会XXX,走遍天下都不怕”。然而,在知识爆炸、信息爆炸的年代,人的精力是有限的; 个人的时间消耗也应该做一个优先级管理。紧急且重要,重要且必要,有需要,可以要,按这样的顺序来做时间投资,才能有好的回报。 作为或即将作为一个程序员,应该怎样来管理自己的时间投资呢?我想,这应该先 探讨一下程序员应该具备什么样的技能。然后对比自己的现状,排出一个优先级顺序, 然后才是按图索骥,循序渐进地给自己充电。 一个程序员,应该把“创造”出完美的产品作为
2、自己的终极目标;而不是精通某某 技术。创造产品的道路是工程建设的道路,因此软件工程各阶段需要的能力都是程序员 应该具备的技能。而你的专长,则说明你可以在软件开发过程中所能从事的工种。一个 合格的程序员,应该能够胜任软件工程过程中的所有工种。因此一个合格的程序员,应 该具备软件工程工程各工序中的所需要的技能。由于软件工程过程中分工的日益精细, 很多程序员可能常年累月都在很小的领域中耕耘。这对于程序员个人的发展前景,以及 雇主的人力资源管理灵活性来说,都是不利的。 软件工程的流程有很多种,但本质都是围绕着软件开发内容,来调整操作实施的步骤
3、 和方法等等。而软件开发的内容,核心的不外乎四项:需求分析、设计建模、代码实现、 功能验证。 在需求分析上,需要的主要是对目标产品功能、业务的理解和描述能力。产品的功能 是客户最关心的部分,也是最容易产生变化的部分。根据软件产品针对的行业不同,需要 的知识背景也是最不同的。所以通常做需求分析的人,往往是“通才”或者目标产品行业 内的人士——而不单纯是计算机业内人士。这里面,能和程序员的专业技能产生联系的, 是要有严密的逻辑敏感度。在撰写和阅读需求分析相关的资料时,要理解“当且仅当”, “必须”,“至少”,这些词语后面对产品所性能、
4、功能所提出的真实要求。而描述、分 析需求,除了文字之外,通常还会使用UML之类的建模工具来进行辅助。因此,如果有建模 相关的技能,肯定会为从事这类的工作加分。 设计建模,是在抽象逻辑层面上构建产品的框架模型。有两个方面的内容:首先是将 从产品功能、业务角度出发的需求分析转换成从产品实现角度出发的软件规格;其次是, 将产品功能业务的流程,转换成软件模型内部的交互。设计建模即是:根据分析出来的软 件需求,设计并建立符合目标产品功能和业务流程的软件模型。 设计建模要求程序员具备以下能力:设计建模的方法、原则;设计建模的表达;设计 建模的工
5、具。掌握方法,通过工具,用适当的方式表达记录下来,从而完成对现实产品的 软件化抽象。 设计建模的方法和原则,要满足两个功能。一是能构建满足需求规格的软件模型,二 是能够通过软件模型指导后续的实现。实现一个秋千的方法可以有无数种,设计建模的方 法论则是指导怎样建立出美观、结实、省钱、安全的秋千的方法。这个方法论,一是继承 前人的实践经验,总结出来的设计模式;另一个是在产品创造过程中或之后,持续改进, 得到的一些原则。设计模式和系统重构,这个是做设计、建模工作之前,应该了解的。后 来的程序员,总会抱怨早先的程序员设计的模型框架不好;而同时自己
6、往往也会因为时间 因为心情设计出并不完美的模型让后后人唾骂。这是很不完美的现象。 如何表达一个抽象的模型?建房子的,可以用小木片做出一个可感知的模型,做软件 用什么来取代小木片呢?计算机经过几十年的发展,已经有了这样的语言,UML。其实, 这是从业者约定俗成的用来沟通的一套表达方式。因此,表达模型的本质需求是,为了让 你的团队能够对软件模型、设计进行沟通交流。所以,不是简单地制造文档垃圾。基于UML ,首先用UML来表达功能和业务需求流程,再分析设计静态视图、动态视图。由浅入深、 由表及里,逐步细化求精,及至最后完全明了设计框架结构,等待
7、填充code。 动态视图,完成业务语言到软件语言的转换,并设计内部结构关系。 静态视图,设计产出几个模块、一个模块几个文件,文件内几个结构、几个方法。 由静态视图组成骨骼,动态视图形成脉络,最终创造一个活的系统。 学习UML,就是学习一种语言。学会运用UML,就是学会在用语言进行交流、进行创作。 设计建模的工具,是和设计建模的语言相关的。流行的就是RationalRose和 MicroSoft的VISIO。个人感觉还是Rational的产品更专业,而且提供生成代码和从代码 反向工程生成模型的功能。 说到反向工程,又想到另一个方面。设计建
8、模的能力有两个应用场景,一个是建立新 的模型,一个是理解别人建立的模型并改进之。很多时候,由
此文档下载收益归作者所有