技术人员的职业素养.doc_第1页
技术人员的职业素养.doc_第2页
技术人员的职业素养.doc_第3页
技术人员的职业素养.doc_第4页
全文预览已结束

下载本文档

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

文档简介

技术人员的职业素养程序员规范一、程序员的基本任务(1) 基本任务组成:“可执行代码” “程序员任务书”“程序员工作日志”。(2) 编码:根据程序员任务书进行编码。例如,一个“界面”或一个“类”。(3) 日志:每天下班前须填写程序员工作日志,所有记录用语必须简练明确。(4) 测试:完成代码编写后须进行单元测试,代码文档一并上交项目经理。二、程序员的基本素质:(1) 团队精神:我们的理念是“团队协作精神能做出大系统,个人只能做小程序。”(2) 文档习惯:程序员至少有30的时间在写书面文档,没有文档习惯会被淘汰。(3) 规范习惯:没有规范化、标准化的代码编写和文档书写习惯,在团队内部成员之间的开发协作是绝对不可想象的。例如:至少我们整个团队内部在如下这些工作内容上达成一致,界面布局;界面色调;界面命名;界面上操作流程;代码的变量命名;代码内注释格式;甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定。(4) 理解能力:程序员需要理解程序员任务书中模块的需求。很多程序员在写程序时往往只关注其功能需求,而忽视性能指标要求。例如:百万甚至千万数量级的访问情况下的稳定性、并访支撑能力、安全性、潜在的危险、恶意攻击的可能性等。一个成熟的程序员需要评估该模块在系统运营中所处的环境,这一切,程序员至少需要2到3年的项目研发和跟踪经验才有可能总结体会出来得。(5) 测试习惯:一方面是正常测试,也就是看程序是否能在正常调用下完成基本功能;第二方面就是异常测试,比如高压力负荷下的稳定性测试,用户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频发的异常请求阻塞资源时的模块稳定测试等等。并不是程序员要对自己的每段代码都需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到需求理解能力。(6) 学习能力:要善于学习,是因为软件技术更新很快,需要不断学习新的技术、新的技能。要善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样才能逐步提高,从程序员升级为软件设计师、系统分析员、项目经理。设计师规范-设计师的基本素质(1)需求理解能力(属于需求分析)用户提出需求描述往往在文字上很不规范,考虑问题也只局限于非技术因素的操作功能要求。他们不懂得技术性能要求、将来功能扩充、与外系统连通的未来因素。所以,我们的设计师要凭借自己丰富的经验和项目实际,从整体上把握用户的需求。(2)整体框架能力(属于总体设计)软件工程教科书上,总体设计只涉及软件整体可以划分成哪些模块、模块之间组成关系。设计师必须从更广的角度去设计,比如:产品定位、主体思路、公共规则、数据关系、接口约定等等。设计出一份功能完整、性能良好、结构清晰的总体设计报告。这份报告必须考虑三方面的工作,一是,用户所有需求得到满足;二是,有利于项目的分工协作;三是,以便于程序员编码的按部就班。(3)流程处理能力(属于总体设计)流程处理能力非常非常重要!所谓流程处理分两类,一类是,软件系统的工作流程;二类是,项目实施的控制流程。软件的工作流程,就是采用什么设计方法去分解整个软件系统,属于总体设计报告。实施的控制流程,就是系统模块完成?团队资源如何调度?形成项目实施计划书。(4)模块分解能力(属于详细设计)作为系统分析员、设计师,所面对的问题很复杂,需要对“整体系统”进行分解,把一个个“系统部件”分解为若干可复用的“功能模块”和“调用函数”。每个“模块”和“函数”有一个独立的设计文档-详细设计报告。设计师也要考虑:接口约定、模块功能、重要算法、属性、公共规则、数据关系等等。一个大型的、错综复杂的应用系统分解成一些相对独立的、具有高度复用性的、并能仅仅依靠几个参数完成数据联系的模块组合,是我们软件设计师和系统分析员的一项最重要工作,合适的项目设计方法,清晰的流程图,是实现这一目标的重要保证。(5)项目评估能力(属于实施进度)评估项目整体工作量,评估各个模块工作量,评估项目所需的资源,评估项目可能遇到的困难,确定项目工期。(6)组织管理能力(属于组织管理)作为项目的设计者和项目的实施组织管理者,必须做到:一是,工作的量考核化,没有量化就很难做到合适的绩效考核;二是,对团队协作模式的调整,一般而言,程序开发的协作通常分为小组进行,小组有主程序员方式的,也有民主方式的,根据程序员之间的能力水平差距,以及根据项目研发的需求,选择合适的组队方式,并能将责权和成员的工作任务紧密结合,这样才能最大发挥组队的效率。简明软件工程-我喜欢快速原型法(1) 场调研:切记!只有服务于企业、服务于市场的技术和产品才能体现出最大价值。(2) 需求分析:赶快跟客户交流,从客户那里得到他们的需要,分析需求做出五个文档:1、 用户视图:设计出客户端用户界面、后台管理员用户界面的页面样式;2、 操作流程:将所有这些用户界面关联起来,构造出完整的操作流程和条件;3、 数据词典:描述数据之间逻辑关系,数据词典做好了,数据库设计等于完成了一半;4、 操作手册:是用来指导操作流程的说明书;5、 性能需求:(性能需求通常只有懂技术的人能理解);6、 备 注:用户操作流程和用户视图由需求决定,为程序研发提供了约束和准绳。(3) 概要设计:初步划分功能模块,给出合理的研发流程和资源要求。如果采用快速原型设计方法,完成概要设计就可以进入编码阶段。但是完成原型代码后,根据评测结果和经验教训的总结,还要重新进行详细设计的步骤。(4) 详细设计:把具体的模块以最干净的方式(黑箱结构)提供给编码者。1、 一份好的详细设计说明书,可以使编码的复杂性减低到最低;2、 一份严格的详细设计说明书,应当把每个函数的每个参数的明确定义都提供出来;3、 从需求分析到概要设计到完成详细设计,一个软件项目可以说已经完成了一半;4、 换言之,一个大型软件系统在完成了一半的时候,其实还没有开始一行代码工作;5、 详细设计阶段,是考验技术专家设计思维的重要关卡。(5) 代码编写:规范化的研发流程中,编码在整个流程中不会超过1/2,通常在1/3时间。1、 磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高;2、 编码时,模块间的进度协调最需小心,一个模块可能影响整体进度,被迫停工等待;3、 编码时,成员间的沟通应急相当重要,对程序员而言bug永远存在,必须永远面对。(6) 软件测试:是个相当重要的步骤,因为软件永远都会又不可预料的问题存在。一个大型软件,3个月到1年的外

温馨提示

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

评论

0/150

提交评论