抽象能力决定编程能力

2017-05-25 From 程序之心 By 丁仪

程序员的抽象能力是在了解计算机工作原理的基础上,借助于一种或多种编程语言将问题的解决方案抽象为计算机程序的能力。在前文《关于编程能力的思考》中提到了编程能力包括理论基础和系统设计能力,抽象思维能力恰恰就是决定编程能力的关键。

程序的本质是人的意志延伸到计算机的可识别的指令。计算机思维简单仅能识别 0 1 代码,本身不能解决任何问题,只能由人编写程序控制计算机解决问题,因此编程的本质就是人“教会”计算机解决问题。

编写程序总是离不开各种各样的数据结构与算法,其中又蕴含着深刻的数学思想。理解一种数据结构或算法,就是在理解解决方案的一种抽象。

随着业务越来越复杂、需求越来越多,程序总是在扩展和重构之间徘徊,在这个过程中,需要程序员深入理解业务并逐渐优化系统设计。正是在这样逐渐抽象的过程中,诞生了开发框架、中间件和业务框架。有着良好抽象能力的程序员能够根据业务的特点抽象出软件最合理的设计,使得程序具有良好的可读性、性能、扩展性、伸缩性、可用性和可靠性,而抽象能力差的程序员面对复杂的业务逻辑很可能束手无策导致代码臃肿难以维护。

如何提高编程的抽象思维能力,或者抽象能力又具体体现在哪些方面呢?作者认为有三个方面可以参考:善用自顶向下逐层分解的程序设计思想、熟练使用设计模式和对代码进行必要的重构。这三个方面能够体现出优秀程序员的抽象思维能力。

1、善用自顶向下、逐层分解的程序设计思想:

无论阅读或编写什么样的程序,都要始终坚持自顶向下、逐层分解。无论配置多少个显示器,打开多少个编辑器,都不可能一次展示出所有的代码,在阅读或编程时,始终把思维控制在一个屏幕范围内,看不到的代码都当做是黑盒,用抽象的思维去理解代码。小系统总是容易理解,大系统则很难一次把解决方案装入大脑,越大的系统越需要在设计和理解时进行抽象。

2、熟练使用设计模式:

设计模式是程序抽象到一定层次后自然而然产生的多种模式。基于这些模式,可以更好地理解和交流程序的架构和设计,是软件开发的成熟套路。设计模式是面向对象软件能够复用的基础,用好设计模式能培养程序员的抽象思维能力。

3、对代码进行必要的重构:

重构可以改善既有代码的设计,消除代码中的坏味道。任何一段代码都应该经历三个阶段,最初的设计阶段追求多快好省地解决问题,后来的设计优化用于扩展程序的新需求和解决 bug,最后的重构则把重点放在系统设计的优化上。重构是培养抽象能力的好方法,如何用更好的抽象模型描述解决方案以实现更好的扩展性、伸缩性、可用性、可靠性值得每个人深思。

本文来源:程序之心,转载请注明出处!

君子曰:学不可以已。
《软件需求(第3版)》

作为经典的软件需求工程畅销书,经由需求社区两大知名领袖结对全面修订和更新,覆盖新的主题、实例和指南,全方位讨论软件项目所涉及的所有需求开发和管理活动,介绍当下的所有实践。书中描述实用性强的、高效的、经过实际检验的端到端需求工程管理技术,通过丰富的实例来演示如何利用实践来减少订单变更,提高客户满意度,减少开发成本。

发表感想

© 2016 - 2024 chengxuzhixin.com All Rights Reserved.

浙ICP备2021034854号-1    浙公网安备 33011002016107号