您的位置 : 资讯 > 软件资讯 > 代码越"整洁",性能越"拉胯"?

代码越"整洁",性能越"拉胯"?

来源:菜鸟下载 | 更新时间:2025-04-26

作者 | casey muratori、译者 | 弯月       责编 | 苏宓、出品 | CSDN(ID:CSD

作者 | casey muratori、译者 | 弯月       

责编 | 苏宓、出品 | CSDN(ID:CSDNnews)

编写“整洁”的代码,这是一条反复被人提及的编程建议,尤其是初学者,听得太多耳朵都长茧了。“整洁”的代码背后是一长串规则,告诉你应该怎么书写,代码才能保持“整洁”。

实际上,这些规则中很大的一部分并不会影响代码的运行时间。我们无法客观评估这些类型的规则,而且也没必要进行这样的评估。然而,一些所谓的“整洁”代码规则(其中有一部分甚至被反复强调)是可以客观衡量的,因为它们确实会影响代码的运行时行为。

整理和归纳“整洁”的代码规则,并提取实际影响代码结构的规则,我们将得到:

使用多态代替“if/else”和“switch”;代码不应该知道使用对象的内部结构;严格控制函数的规模;函数应该只做一件事;“DRY”(Don’t Repeat Yourself):不要重复自己。

这些规则非常具体地说明了为了保持代码“整洁”,我们应该如何书写特定的代码片段。然而,我的疑问在于,如果创建一段遵循这些规则的代码,它的性能如何?

为了构建我认为严格遵守“整洁之道”的代码,我使用了“整洁”代码相关文章中包含的现有示例。也就是说,这些代码不是我编写的,我只是利用他们提供的示例代码来评估“整洁”代码倡导的规则。

那些年我们见过的“整洁”代码

提起“整洁”代码的示例,你经常会看到下面这样的代码:

代码语言:javascript代码运行次数:0运行复制

/* ========================================================================   LISTING 22   ======================================================================== */class shape_base{public:    shape_base() {}    virtual f32 Area() = 0;};class square : public shape_base{public:    square(f32 SideInit) : Side(SideInit) {}    virtual f32 Area() {return Side*Side;}private:    f32 Side;};class rectangle : public shape_base{public:    rectangle(f32 WidthInit, f32 HeightInit) : Width(WidthInit), Height(HeightInit) {}    virtual f32 Area() {return Width*Height;}private:    f32 Width, Height;};class triangle : public shape_base{public:    triangle(f32 BaseInit, f32 HeightInit) : Base(BaseInit), Height(HeightInit) {}    virtual f32 Area() {return 0.5f*Base*Height;}private:    f32 Base, Height;};class circle : public shape_base{public:    circle(f32 RadiusInit) : Radius(RadiusInit) {}    virtual f32 Area() {return Pi32*Radius*Radius;}private:    f32 Radius;};

登录后复制

菜鸟下载发布此文仅为传递信息,不代表菜鸟下载认同其观点或证实其描述。

展开
Switch Colors 3D
Switch Colors 3D
类型:休闲益智 运营状态:公测 语言:简体中文
小清新 Q版 萌系 老少皆宜
前往下载

相关文章

更多>>

热门游戏

更多>>

手机扫描此二维码,

在手机上查看此页面

关于本站 下载帮助 版权声明 网站地图

版权投诉请发邮件到 cn486com#outlook.com (把#改成@),我们会尽快处理

Copyright © 2019-2020 菜鸟下载(www.cn486.com).All Reserved | 备案号:湘ICP备2022003375号-1

本站资源均收集整理于互联网,其著作权归原作者所有,如有侵犯你的版权,请来信告知,我们将及时下架删除相应资源