封装一:面向语义

本文探讨了面向语义编程的重要性,通过对比两种不同的做饭算法实现,强调了封装可以提高代码可读性和理解性。面向语义编程的核心思想包括简洁、明确和通俗,提倡使用具有清晰含义的函数和类名,以帮助读者快速理解代码意图。

面向语义:就是尽可能简单的用伪码来描述你的算法逻辑;

 

实现一个函数“做饭”

 实现方法一:

-->拿盆

-->往盆里装米

-->淘米

-->洗锅

-->把米放入锅里

-->放水

-->盖上锅

-->将锅放到灶上

-->打开煤气

 

 实现方法二:

  1. func_淘米
  2. func_入锅
  3. func_点火

func_淘米

-->拿盆

-->往盆里装米

-->淘米

 

func_入锅

-->洗锅

-->把米放入锅里

-->放水

-->盖上锅

 

func_点火

-->将锅放到灶上

-->打开煤气

 

后者的实现,语义的描述上只用了3句话,前提是他做了额外的3次封装;这3次封装带来的好处是:只需要看3句话,我就知道这里是要“做饭”,如果你不关注“做饭”的细节,或者你早已知道这3句话的意义(真实实现),你可以不用看这3句话的封装;

 

 

注意:“做饭”在这里具有递归的性质,如果你对“入锅”不了解,那么你就可以看看func_入锅的实现;哦,哦,原来这样....

 

 

面向语义的中心思想

  • 简洁

无论何时,无论你做怎样的封装,请让你的读者(很有可能是你自己)能够很简单的理解你要做什么!

象实现一中,一上来“拿盆”,天知道你要做什么(假设你没看函数名)!只能接着看第二句,如果算法足够复杂,很有可能看完了都没看明白

  • 明确

实现二中,一上来就告诉大家“淘米”,基本上我都知道你是要做饭了

  • 通俗

尽可能的用已有语义,比如vector中count,你偏要返回一个capacity,看了不晕才怪,要做到这一点就必须大量的积累concept,小学老师教了你多少词汇?你知道多少计算机的词汇?别自己在那里瞎编函数名、类名了;func1,也是没人能看懂的,但是“做饭”,就完全不同了;如果你知道了做饭的实现,那我的那一坨代码你都可以直接略过;这就是为什么经验丰富的人看代码比你快的原因,因为人家知道了大量词汇,词汇的实现基本上被他略过,要是你不按照通俗的语义来写,int i, j, k;高手看代码的速度就跟你一样了;

 

 

 

写代码就像写文章,先积累大量词汇(语义),然后用这些词汇组装成一篇漂亮的文章;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值