美文网首页Android开发经验谈
抽象--程序员重要的能力

抽象--程序员重要的能力

作者: Android架构师丨小熊 | 来源:发表于2019-08-27 16:22 被阅读0次

导读:从具体事物抽出,概括出它们共同点如本质属性与关系等而暂不考虑它的细节,不考虑其他因素,这种思维过程,称为抽象。抽象能力尤其对于程序员来说十分重要。

通俗地理解什么是抽象?

抽象从字面上理解,形象被抽掉了只剩下一个概念。生活中我们所感受到的东西都是具体的,把很多相似的具体东西集结起来,抽出它们最本质的东西,忽略掉其他部分就是抽象了。

我们可以换个思考方式,抽象的反义词是具体,这样会更好地理解抽象的含义。

生活中抽象的例子

抽象的例子有很多。这里各位思考尝试一下对“足球运动”和“软件开发”进行抽象。

  • 足球是一个11人团队运动,由前锋、中锋、边锋、中场、边卫、中卫、后卫等多个位置组成,团队成员间需各司其职,默契配合才能创造佳绩。
  • 同理,软件开发也是需要由一个团队成员相互协作完成的一件事情,团队间由项目经理、产品、前端、后台、运维、测试等组成,相互配合才能高效高质量上线产品。

通过对上面两个看似不相关的东西进行抽象,抽出他们的共同点则是需多人参与相互协作的一种活动行为。

建议:锻炼抽象思维可以自己列举出两个物品并进行思考抽象联系。

实际开发中抽象的例子

相信各位在实际开发中应该都会遇到这种现象,随着业务和需求越来越复杂和增多,程序总是需要进行调整、扩展和重构。这个时候如果有良好抽象能力的程序员则能够深入理解业务,并根据业务的特点抽象出软件最合理的设计(可读性、扩展性、伸缩性等)。像设计模式、中间件等也是慢慢在这些抽象的过程中产生。

这里举一个简单的模型设计例子,一个音乐竞赛类APP软件,选手报名比赛会在APP上以点赞数进行排行,粉丝则通过向自己喜欢的偶像点赞,但是点赞是有限制的。主办方想有一个商场系统,用户在商场购买比赛纪念品后可以获取点赞券,该券则可用于增加赞数。

到这里便开始对数据模型进行设计。如果不深入思考抽象,我们很快按需求便设计出一个点赞券模型(点赞数、有效日期、结束日期.等属性),那这样做会有什么问题?假如后期主办方的商城想渐渐拓展业务,想推出打折券、满减券等来吸引用户。那么则时候进行系统代码的修改调整那么工作量将会很大。

问题出在了哪里?

没有很好的对东西进行抽象,没有考虑到可扩展性。现在对打折券、满减券、点赞券进行抽象,三者都是一种优惠券,对于用户来说都是福利的券。那么在一开始的模型设计上如果考虑到了这点,那么将可应对后来的改变。当然这也是一个小小的例子,软件开发抽象之处有很多。

最后

关于抽象的话题,我们就讨论到这里。抽象能力对于程序员来说很重要,不过要注意的是,软件开发并不是仅仅只依靠抽象能力就能完成的,把抽象出来的架构、模型等实现,逻辑思维能力、系统分析能力等占很重要的部分。

漫漫开发之路,我们只是其中的一小部分……只有不断的学习、进阶,才是我们的出路!才跟得上时代的进步!

今年年初我花一个月的时间收录整理了一套知识体系,如果有想法深入的系统化的去学习的,资料免费领取方式:加群:797404811,我会把我收录整理的资料都送给大家,帮助大家更快的进阶。

重要的事说三遍,转发+转发+转发,让更多需要的朋友们都可以看到并且领到!

相关文章

  • 抽象--程序员重要的能力

    导读:从具体事物抽出,概括出它们共同点如本质属性与关系等而暂不考虑它的细节,不考虑其他因素,这种思维过程,称为抽象...

  • 抽象类能否实例化思考

    在软件业,抽象能力的重要性怎么说都不为过。程序员经常需要面对、处理异常复杂的业务和逻辑,如果不具备强大的抽象...

  • 逻辑抽象能力

    逻辑抽象能力是区分一个程序员的hell9o

  • 2022-03-17-📣🐘🐘🐘🐘程序员面试指东

    程序员面试 如果面试一个程序员,我会从以下几个方面入手 1、系统设计:工程能力-优雅和美观的抽象能力,追求代码世界...

  • 优秀架构师必须掌握的架构思维

    一、抽象思维 如果要问软件研发/系统架构中最重要的能力是什么,我会毫不犹豫回答是抽象能力。抽象(abstracti...

  • 优秀架构师必须掌握的架构思维

    一、抽象思维 如果要问软件研发/系统架构中最重要的能力是什么,我会毫不犹豫回答是抽象能力。抽象(abstracti...

  • 优秀架构师必须掌握的架构思维

    一、抽象思维 如果要问软件研发/系统架构中最重要的能力是什么,我会毫不犹豫回答是抽象能力。抽象(abstracti...

  • 优秀架构师必须掌握的架构思维

    一、抽象思维 如果要问软件研发/系统架构中最重要的能力是什么,我会毫不犹豫回答是抽象能力。抽象(abstracti...

  • 优秀架构师必须掌握的架构思维

    一、抽象思维 如果要问软件研发/系统架构中最重要的能力是什么,我会毫不犹豫回答是抽象能力。抽象(abstracti...

  • Python函数入门

    函数可以复用,函数是最基本的一种代码抽象的方式。抽象思维能力是程序员必备的能力之一。 1、内置函数 内置函数的使用...

网友评论

    本文标题:抽象--程序员重要的能力

    本文链接:https://www.haomeiwen.com/subject/xlweectx.html