美文网首页
编写可读代码的艺术5 - 拆分超长的表达式

编写可读代码的艺术5 - 拆分超长的表达式

作者: DZQANN | 来源:发表于2022-03-20 20:56 被阅读0次

解释变量 总结变量

其实这两个是一个意思,就是在我们编写代码的时候把一些表达式的结果用一个变量先存储起来,这个变量名要取成表达式结果的表意

if (“root”.equals(line.split(“:”)[0])){
 ...
}

String userName = line.split(“:”)[0];
if (“root”.equals(userName)){
 ...
}

这种写法会引入很多的临时变量,会导致一些副作用。我觉得更正确的做法应该是把表达式抽出来一个方法,用方法名表示返回结果的意义。
这种临时变量我一般只有在大的IO和网络开销(ftp、DB等)的时候才会使用。

德摩根定理

德摩根定理就是一组等价的逻辑变换

not(a or b or c) <=> (not a) and (not b) and (not c)
not (a and b and c) <=> (not a) or (not b) or (not c)

在开发中我们应该选择后面的写法,更方便理解。

短路逻辑

这个貌似以前出过一个TT就是因为短路逻辑

if (a || b) {
  
  
}

当a为真的时候,不会去判断b。后来在代码重构的时候把这个表达式拆开了,就导致b一定会执行。

这种写法并不能去评判它的好坏,写法本身确实可以帮助我们省略不少的逻辑,我自己在碰到的时候也肯定会选择这种写法。这种写法最大的缺点就是后面其它人在看的时候容易碰到问题

简化表达式

void addStats(const Stats& add_from, Stats* add_to) {
  add_to -> set_total_memory(add_from.total_memory() + add_to->total_memory());
  add_to -> set_free_memory(add_from.free_memory() + add_to->free_memory());
  add_to -> set_swap_memory(add_from.swap_memory() + add_to->swap_memory());
}

这段代码是用C++写的,所以作者用了宏去这3句大意一样,字段不同的区别。

在Java中我能想到的就是用一个List<Function<Stats, Integer>, BiConsumer<Stats, Integer>>,第一个是get方法,第二个是set方法

相关文章

  • 编写可读代码的艺术

    【代码质量】: 代码行数、时间复杂度、内存消耗,准确率; 《clean code》:在代码阅读过程中人们说脏话的频...

  • 编写可读代码的艺术

    来源 《编写可读代码的艺术》 第2章 把信息装到名字里 1. 选择专业名词 找到更有表现力的词 2. 避免泛泛的名...

  • 编写可读代码的艺术

    以下是书里文字的引用与整理 前言 可读性基本定理:代码的写法应当使别人理解它所需的时间最小化。 一、表面层次的改进...

  • 《编写可读代码的艺术》

    1.调整心态认识到编写可读代码的必要性。在编写可拓展代码,可用代码和可读代码之间的优先级,编写可读代码较高;克服思...

  • 编写可读代码的艺术

    1.写在前面 最近花了一个周的零星时间,看了《编写可读代码艺术》,收获颇多。虽然平时也经常使用书中提到的一些方法编...

  • 编写可读代码的艺术

    "阅读本文大约需要 5 分钟" 很多程序员在学习一门新的编程语言时,会先学习基础的语法和自带的基础库,稍加熟练后便...

  • 编写可读代码的艺术

    先放大佬的视频教学地址:https://github.com/biezhi/write-readable-code...

  • 编写可读艺术的代码

    前言 编写代码,实质是在梳理逻辑,为了完善整个逻辑流程,我们借用编程语言的变量、函数、流程控制、循环、注释、方法等...

  • 代码可读性

    这是一篇结合项目代码与《编写可读艺术的代码》一书结合的读书笔记 代码应当易于理解 《编写可读艺术的代码》这本书告诉...

  • 读《编写可读代码的艺术》

    《编写可读代码的艺术》是与Clean Code相似的书,提供改善“丑陋”代码的技巧。本书193页,共16章内容。 ...

网友评论

      本文标题:编写可读代码的艺术5 - 拆分超长的表达式

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