技术与抽象能力模型

问题域的理解,领域模型的抽象

认识到本质,才能让你的程序具备更大的灵活性和扩展性。在软件开发中,抽象能力体现为对问题域的理解能力,对领域模型抽象。合理的抽象也是代码重构的前提,每一次重构,都是向更好的抽象迈进了一步。这是一个优秀高级程序员所应该具备的能力。

抽象思维

抽象思维就是在不同中找相同,在变化中找不变。把这些相同的和不变的东西理解为共性。而共性的东西是能够共用的。

提高抽象思维的能力就是提高抽取不同事物的共性的能力,不同的事物不仅仅是包括现实中具体的事物。引入到编程语言里:抽象类是一类事物的高度聚合,而接口是定义行为规范。聚合(抽象abstract<——>分解(接口interface)。

 

抽象类是一类事物的高度聚合,而接口是定义行为规范。聚合(抽象abstract)<——>分解(接口interface)。

技术能力模型:

编程语言30% +抽象能力(数据结构50% + 对现实事实的抽象理解能力10% + 设计模式能力10%)70% = 100%。

每个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动,核心是提供了相关问题的解决方案。

高级程序员应具备的素质技能

需求分析能力

需求分析是软件开发流程中非常重要的一个环节。对于研发项目的组织和管理者来说,他们不但要理解客户需求,还要具备把用户需求转化为系统设计的能力。

系统设计能力

高级程序员者必须能够掌握不少于两到三种的项目设计方法(比如自顶至下、快速原型法等设计方法),并能够根据项目需求和资源搭配来选择合适的设计方法进行项目的整体设计。

模块抽象能力和分解能力

高级程序员要有能够把整体系统进行模块化分解的能力,同时还要对分解产生模块的抽象能力的复用性进行考虑。

整体项目评估能力

作为高级程序员,必须能够从全局出发,对项目有整体的清醒认识,包括评估项目整体和各个模块的工作量、评估项目所需的资源等。

项目组织能力

包括工作的量化和分配能力、团队协调能力。没有量化就很难做到合适的绩效考核,而程序量化又不是简单的代码行数可以计算的,因此要求高级程序员能真正评估一个模块的复杂性和工作量。项目组内程序员的水平是有差距的,同时用户需求又在不断变化,高级程序员要有动态调整责权和成员工作状况的能力。一个技术水平高的人,未必能成为一个合格的项目研发主管,这方面的能力欠缺往往是容易被忽视的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值