JavaRush /Java 博客 /Random-ZH /罗伯特·马丁,《干净的代码》。给开发者的“功夫代码”书评
Artem Murk
第 35 级
Днепр

罗伯特·马丁,《干净的代码》。给开发者的“功夫代码”书评

已在 Random-ZH 群组中发布
你好,Javarashevites!本文是对 Robert Martin 所著《Clean Code》一书的评论。我们将一起研究改进和优化代码的方法,最后,一个小但有趣的任务等待着您。
罗伯特·马丁的《整洁代码》。 给开发者的“功夫代码”书评——1
每天,当我们打开代码编辑器时,我们都会遇到许多类、函数和变量。最好的选择是,如果这是您从头开始编写的代码,编写一次,其中只有几行,您独自处理它,没有编辑,也没有客户的进一步支持。但!正如实践表明的那样,是的,我想你自己也明白这种情况不会发生。基本上,我们必须以某种方式与团队成员进行交互,维护“Hindu”代码,并将产品解析为数百万行。我经常听到我的培训同事这样回答:“这段代码是我写的,我不会向任何人展示它”,但是当我在 Help for Help 上看到此类代码的请求时,需要很长时间时间(有时真的很长一段时间)去深入研究和理解这个人想告诉我什么,我什至想说“擦掉并重新重写”!感谢那些愿意帮助你、正确写作的人的时间和精力,如果你不知道如何做,学习永远不会太晚。Robert Martin 的书在这种格式的书籍中脱颖而出,因为它包含许多 Java 示例。这对我来说可能有点狂热,但它是用 OOP 风格编写的,即以零件和章节的形式编写。这本书易于理解和阅读,很容易在旅途中或晚上睡前阅读。Clean Code 分为 3 部分。在第一部分中,我们被要求浏览本书的理论,了解设计模式和良好礼仪的规则。第二部分邀请我们练习重构和写作,第三部分是示例中代码“味道”的最终总结。嗯,作者涉及了许多主题,您主要需要 Java Core 的知识,但也有专门介绍 JUnit 单元测试、Log4j 日志记录、设计中最简单模式的知识的部分(但正如我上面所说,没有其中很多,所有难以理解的内容都可以成功地用谷歌搜索,是的,并在 JavaRush 课程中对其进行分析)。本书各章节之间没有关联,您可以顺利地从您喜欢的章节开始阅读。我从书中学到的主要思想的简要总结。我将感谢您对它们的评论,您可以在评论中分享您自己对这些陈述的看法。

1.评论==邪恶。

在大多数情况下,注释是我们试图掩盖糟糕代码的拐杖。在某些情况下,如果存在持续的代码重构,他们还会谎报方法或变量的用途。

2.注释代码,死代码。

将这些代码留在您的应用程序中无异于垃圾。未使用的代码会随着时间的推移而积累,并干扰应用程序的清洁度,请不时检查此类模块的代码。

3. 方法、类和变量的标题。

值得单独撰写文章来讨论这个主题。不要偷懒,写下可以说明其用途的名称。了解拼写标题的一些标准。该主题是详细研究的“必备”主题。

4. 每个方法和变量在类层次结构中都有其位置。

通常,类可以具有变量和方法(静态和非静态)、构造函数、嵌套类和内部类以及枚举。总之,信息量很大,需要确定每个人在班级中的位置。如果你看一下java核心类,你会发现结构是清晰的,我们可以看到每个部分在它的位置,当然在你的项目中它可以在项目内改变,但不能在每个类中改变。对于我自己,我定义了以下构造结构:在类的开头,我有静态变量,然后是对象变量+枚举(如果存在)。在变量之后,我定义类构造函数。然后我编写处理该类的方法。在方法之后我编写 getter 和 setter。最后我有内部课程。您可以使用我的结构或在评论中编写您自己的结构。

5. 方法的抽象级别。

对我来说,这是第一大发现。每个方法仅包含一个抽象级别的运算符。您不应该将多级操作混合在一起。

6.错误处理。

Checked 和 Unchecked Exception,在项目中使用哪个更好(你觉得怎么样?写评论)?我是checked 的支持者,但这本书有助于从外部看待Unchecked Exceptions。事实上,未经检查的异常不会破坏方法签名,特别是考虑到异常一次“刺穿”多个层。最小的变化带来的不便导致在捕获它之前重新定义整个方法链,这在很多情况下对于开发来说是极其不方便的。

7. 代码格式化。

格式正确的代码不仅清晰,而且可读性强。你会立即了解括号和里面的动作。使用 if, else 结构中的条件示例,您不应该将所有内容写在一行中,最好移动长链。

8. 条件的否定。

尽量避免在条件下否认,这更多的是心理因素,我们的大脑不能很好地感知否认,是的!之前的表达可能不会被注意到。例如,否定 if (!condition.isTrue) 更好地重写该方法,它会让像这样 (condition.isFalse) 更容易

9. 函数必须执行一项操作。

如果您的方法执行许多操作,则将它们划分为单操作方法。这些方法非常容易支持、易于测试,并且在必要时可以替换或删除。

10.不要重复自己的话。

不要重复代码 DRY(不要重复自己)。这是将显着减少代码的基本规则之一,请记住这一点。尝试将所有重复的代码放入一个单独的函数中。当然,我们可以更多地谈论DRY、KISS(Keep it simple Stupid)、SOLID、YAGNI。这些术语对于理解和设计至关重要。它们值得单独写一篇文章,也许我会再次写它们,因为本文专门回顾《干净代码》一书。
罗伯特·马丁的《整洁代码》。 开发者“功夫码”书评——2
正如所承诺的,这对您来说是一项小而容易的任务。该程序必须根据给定的数据计算肥胖指数。在注释中写下代码中的错误数量和修复。附:如果使用正确,该代码可以正常工作并执行其功能。
//Weight in kg.
//Height in metres.
public class sample {
    public static void main (String[] args) {
        humanIMB humanIMB = new humanIMB(80,1.52);
        System.out.println(humanIMB.Result());
    }
}
class humanIMB {
    public double W; //Weight Human
    public double H; // Height Human
    private static double imb;
    public humanIMB(double w, double h) {
        W = w;
        H = h;
        imb = W / (H * H);
    }
    public double takeW() {
        return W;
    }
    public void putW(double w) {
        W = w;
        imb = W / (H * H);
    }
    public double takeH() {
        return H;
    }
    public void putH(double h) {
        H = h;
        imb = W / (H * H);
    }
    public static double takeImt() {
        return imb;
    }
    public static String Result() {
        String  string = null;
        if (imb >=18.5 & imb <25) {
            string ="Норма, ты в форме!";
        }
        if (imb >=25 & imb <30) {
            string ="Предожирение. Эй, поосторожнее с пирожными ";
        }
        if (imb >=30) {
            string ="Ожирение. SCHWEINE! Хватит жрать, иди на треню!";
        }
        if (imb <18.5) {
            string ="Дефицит массы тела. В модели решил переквалифицироваться?";
        }
        return string;
    }
}
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION