代码的整洁之道

1.函数

  只做一件事情,函数应该做一件事情。做好这件事情。只做这件事情。

 如果函数只是做了该函数名下同一抽象层上的步骤,则函数还是做了一件事。编写函数毕竟是为了把大一些的概念拆分为另一抽象层上的一系列步骤。


 所以要判断函数是否不止做了一件事情,还有一个办法,就是看是否能在拆分有一个函数,该函数不仅只是单纯地重新诠释其实现。


每个函数一个抽象层级


   自顶向下读代码:向下规则


2.用整理代码的决心替代创建废话的冲动。你会发现自己成为更优秀,更快乐的程序员。


3.对象和数据结构

  隐藏实现并非只是在变量之间放上一个函数层那么简单。隐藏实现关乎抽象。类并不是简单地用取值器和复制器将其变量推向外间,而是暴露抽象接口,以便用户无需了解数据的实现就能操作数据本体。

 看看代码清单6-3和6-4。前者使用具象层手段与机动车的原料层通讯,而后者则采用百分比抽象。你能确定前者里面的都是些变量存取器,而却无法得知后者中的数据形态。


   具象机动车

public interface Vehicle{

 double getFuelTankCapacityInGallons();

 double getGallonsOfGasoline();

}


抽象机动车

public interface Vehicle{

double getPercentFuelRemaining();

}


以上两段代码以后者为佳,我们不愿意暴露数据细节,更愿意以抽象形态表述数据。这并不是用接口或复制器就万事大吉。要以最好的方式呈现某个对象包含的数据,需要做严肃的思考,


4.单一全责原则

  内聚

    类应该只有少量实体变量。类中的每个方法都应该操作一个或多个这种变量。通常而言,方法操作的变量越多,就越聚到类上。如果一个类中的每个变量都被每个方法所使用,则该类具有最大的类聚性。

   一般来说,创建这种极大化内聚类是不可取也不可能;另外一方面,我们希望内聚性保持较高位置。内聚性高,意味类中的方法和变量相互依赖,互相结合为有一个整体逻辑。


5.一定要时刻记住保持代码的整洁性。


6.函数名称应该表述其行为

如果你必须查看函数的实现(或文档)才知道它是做什么的,就该换个更好的函数名,或者重新安排功能代码,放到较好名称的函数中。


7.函数只做一件事情


8.函数应该只在一个抽象层级上

函数中的语句应该在同一个抽象层级上,该层级应该是函数名所示操作的下一个层。这可能是最难理解和遵循的启发。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tof21

支持原创

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值