《软件开发人员能力测评表.docx》由会员分享,可在线阅读,更多相关《软件开发人员能力测评表.docx(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件开发人员能力测评表(每一主颗只能选一个选项)领 域编 号主题级 别能力选项选择程 序 设 计N01需求分析L0接受给定的需求和代码规格OL1能对规格的遗漏提出疑问OL2了解全面情况,提出需要被规格化的整体范围OL3能够提出更好的可选方案,根据经验的浮现给出需求ON02问题分解L0只有直线式的代码,通过复制粘贴来复用OL1能够把问题分散到多个函数中OL2能够想出可复用的函数/对象来解决大的问题OL3使用适宜的数据结构和算法,写出通用的/面向对象的代码来封装问题的易改变的层面ON03交流沟通L0不能向同伴表达想法/主意,拼写和语法的能力欠缺OL1同伴能了解你在说什么,有良好的拼写和语法能力OL
2、2能够和同伴进行高效的交流OL3能够使用清晰的方式了解和交流想法/设计/主意/细节,能适应每种环境的交流ON04同一文件代码组织L0同一文件中组织没有依据OL1按照逻辑性或相似性的方法OL2代码分块,引用其他源文件时有良好的注释OL3文档头部有许可声明、接要、良好注释、一致空格缩进;文档格式优美ON05跨文件代 码组织L0没想过给代码跨文件组织OL1相关文件按文件夹分组OL2每个物理文件都有独立的目的,比方一个类的定义,一个特性的实现等OL3代码在物理层组织紧密,在文件名上与设计和外观相匹配,可以通过文件分布方式洞察 设计理念ON06源码树组织L0一切都放在一个文件夹内OL1初步地将代码分散进
3、对应逻辑的文件夹OL2没有循环依赖,二进制文件,库,文档,构建,第三方的代码都组织进合适的文件夹内OL3源码树的物理布局与逻辑层次、组织方式相匹配;可以通过目录名称和组织方式洞察设 计理念ON07代码可读 性L0单音节的名称(在国内应该是那些类似用汉语拼音命名的习惯)OL1对文件、变量、类、方法等,有良好的命名0L2没有长函数,注释解释非常规代码、bug修复、代码假设OL3代码假设验证使用断言,自然的代码流,没有深层嵌套的条件和方法ON08防御性编码L0不知道这个概念OL1检查代码中所有的参数,对关键的假设进行断言OL2确保检查了返回值和使代码失败的异常OL3有自己的库来帮助防御性编程、编写单
4、元测试模拟故障ON09错误处理L0只给乐观的情形编码OL1基本的代码错误处理,抛出异常/生成错误OL2确保错误/异常留在程序中有良好的状态,资源,连接,内存都有被合适的清理OL3在编码之前发觉可能出现的异常,在代码的所有层次中维持一致性的异常处理策略,提 出整个系统的错误处理准那么ON10IDEL0IDE大局部用来进行文本编辑OL1了解其周围的接口,能够高效地通过菜单来使用IDEOL2了解最常操作的键盘快捷键OL3编写自定义宏ONilAPIL0需要频繁地查阅文档OL1把最频繁使用的API记在脑子里OL2广阔且深入的API知识OL3为了使实际任务中常用API使用更加便捷,编写过API的上层库,填
5、补API之间的缺口ON12框架L0没有使用过主平台外的任何框架OL1听过但没用过平台下流行的可用框架OL2在专业的职位中使用过一个以上的框架,通晓各框架的特色OL3某框架的作者ON13数据库L0认为Excel就是数据库OL1知道基本的数据库概念,规范化、ACID (原子性Atomicity、一致性Consistency、隔离性 Isolation持久性Durability)、事务化,能 够写简单的select语句OL2能够设计良好的规范化数据库模式,精通用户视图,存储过程,触发器和用户定义类型。 知道聚集与非聚集索引之间的差异。精通使用ORM (Object Relational Mappin
6、g对象关系 映射)工具OL3能做基本的数据库管理,性能优化,索引优化,编写高级的select查询,能够使用相关 sql来替换游标,理解数据内部的存储,了解如何镜像、复制数据库;知道两段数据提交 如何工作ON14系统分解L0想不出比单一的文件/类更好的层面OL1如果不在同一平台或没采用相同的技术,能够把问题空间和设计方案分解OL2能够设计跨技术/平台的系统OL3能够在多个产品线和与外部体系一体化中虚拟化和设计复用的系统;同时也能够设计支 持系统监视、报告、故障恢复等O经 验N15专业平台 经验L01OL12-3OL24-5OL36+ON16专业经验L01O年龄L12-5OL26-9OL310+O
7、N17领域知识L0没有该领域的知识OL1在该领域中曾经至少为一个产品工作过OL2在同一领域中为多个产品工作过OL3领域专家:在该领域设计和实现数种产品/方案;精通该领域使用的标准条款和协议O学 识N18工具知识L0仅限于主要的IDE(VS.Net, Eclipse等)OL1知道一些流行和标准工具的备选方案OL2对编辑器、调试器、IDE、开源的备选方案有很好的了解。比方某人了解大多数Scott Hanselman的工具列表中的工具,使用过0RM工具OL3实际地编写过工具和脚本,如果这些被发布那么有加分ON19语言接触L0命令式语言和面向对象语言OL1命令式语言、面向对象语言和说明型语言(SQL)
8、,如果了解静态类型vs动态类型、弱类型 vs强类型那么有加分OL2函数式语言,如果了解延缓求值、局部套用函数、continuations (源于scheme中的一种 高级控制结构)那么有加分OL3并发语言(Erlang, Oz)逻辑语言(Prolog)ON20代码库知识L0从来没有查询过代码库OL1基本的代码库知识,了解如果构建系统OL2良好的代码库工作知识,实现过几次bug修复或者完成了一些细小的特性OL3实现了代码库中多个大型特性,能够轻松地将多数特性的需求变更具体化,沉着地处理 bug修复ON21下一代技 术知识L0从来没听说过即将到来的技术OL1听说过某领域即将到来的技术OL2下载过a
9、lpha /CTP/beta版本,并且读过一些文章和手册OL3试用过预览版而且实际地构建过某物,如果共享给其他人的话那么有加分ON22平台内部L0对平台内部毫无所知OL1有平台基本的内部工作的知识OL2深度的平台内部知识,能够设想平台如何将程序转换成可执行代码OL3编写过增强平台或者为其平台内部提供信息的工具。比方,反汇编工具,反编译工具, 调试工具等ON23书籍L0菜鸟系列,21天系列,24小时系列,蠢货系列,OL1代码大全,别让我思考,精通正那么表达式,OL2设计模式,人件,代码珠矶,算法设计手册,程序员修炼之道,人月神 话,OL3计算机程序设计与解释,事务处理:概念与技术,计算机程序设计
10、模型,计算机 程序设计艺术,数据库系统导论,ON24博客L0听过但是从来抽不出空去接触OL1阅读一些科技/编程/软件工程的博客,并且经常的收听一些播客OL2维护一些博客的链接,收集博主提供的有用的文章和工具OL3维护一个在编程方面,提供有个人见解和思考的博客O软 件 工 程N25源码版本 控制L0通过日期备份文件夹OL1VSS和初级的CVS/SVN用户OL2熟练地使用CVS和SVN特性;知道如何分支和归并,使用程序库补丁安装特性等OL3有分布式CVS系统的知识,尝试过Bzr/Mercurial/Darcs/GitON26自动化编 译L0只知道在IDE下编译OL1知道如何编译在命令行下编译系统O
11、L2能够设计一个脚本构建基本的系统OL3能够设计一个脚本来构建系统并且归档,安装程序,生成发布记录和给源码控制中的代 码分配标签ON27自动化测 试L0认为所有的测试都是测试员的工作OL1能够编写自动化的单元测试,能够为正在编写的代码提出良好的测试用例OL2按照 TDD (Test Driven Development)方式编与代码OL3了解并且能够有效自动化安装,载入/性能和UI测试O计 算 机 科 学N28数据结构L0不知道数组和链表的差异OL1能够解释和使用数组,链表,字典等,并且能够用于实际的编程任务OL2了解基本数据结构时间和空间的折中,比方数组vs链表,能够解释如何实现哈希表和处
12、理冲突,了解优先队列及其实现OL3高等的数据结构的知识,比方B.树、二项堆、斐波那契堆、AVL树、红黑树、伸展树、 跳跃表以及前缀树等ON29算法L0不能找出一个数组各数的平均值OL1基本的排序,搜索和数据的遍历和检索算法OL2树,图,简单的贪婪算法和分而治之算法,能够适度了解矩阵该层的含义OL3能够辨识和编写动态规划方案,良好的图算法知识,良好的数值估算的知识,能够区分 NP问题等ON30编程体系L0不知道何为编译器、链接器和解释器OL1对编译器、链接器、解释器有基本的了解;知道什么是汇编代码以及在硬件层如何工作; 有一些虚拟内存和分页知识OL2了解内核模式vs用户模式,多线程,同步原语以及它们如何实现,能够阅读汇编代码; 了解网络如何工作,了解网络协议和socket级别编程OL3了解整个程序堆栈、硬件(CPU+内存+中断+微码)、二进制代码、汇编、静态和动态链接、 编码、解释、jit (just-in-time)编译、内存碎片回收、堆、栈、存 储器编址O本人根据已掌握的信息对以上目标进行了客观公正的评价。评审人/自评人:年月日