java - 引入变量只是为了可读性?

标签 java readability

仅仅为了可读性引入变量是个好主意吗?

示例 1:

while(nameNode1.charAt(0) == nameNode2.charAt(0) && nameNode1.length() > 1 && nameNode2.length() > 1)
{
    nameNode1 = nameNode1.substring(1, nameNode1.length());
    nameNode2 = nameNode2.substring(1, nameNode2.length());
}

示例 2:

boolean letterFromBothNodesAreEqual_andNameHasMoreThanOneLetter = nameNode1.charAt(0) == nameNode2.charAt(0) && nameNode1.length() > 1 && nameNode2.length() > 1;

while(letterFromBothNodesAreEqual_andNameHasMoreThanOneLetter)
{
    nameNode1 = nameNode1.substring(1, nameNode1.length());
    nameNode2 = nameNode2.substring(1, nameNode2.length());
}

这可能是一个极端的例子,但我想你明白了。

我没有在代码中看到这个,我想知道这是否是一种有用的方法?

谢谢

背景:我正在努力从大学过渡到入门级开发人员,目前我专注于简洁的编码。

最佳答案

让代码具有可读性总是更好,只是不要在维护噩梦的地方做太多,尽管大多数干净的代码更容易维护。

我将在这里介绍两个新方法而不是变量,您的代码示例将是:

while(letterFromBothNodesAreEqual() && nameHasMoreThanOneLetter())
{
    nameNode1 = nameNode1.substring(1, nameNode1.length());
    nameNode2 = nameNode2.substring(1, nameNode2.length());
}

将 boolean 条件提取到具有名称的函数中是一种常见的可读性重构。如果一个人在阅读你的代码时遇到一些 if 有一堆条件,他们会想知道它的意义是什么,为什么需要分支或者它代表什么。字段本身可能无法告诉他们答案,但如果条件有名称(函数名称),他们可能知道它代表什么。

关于java - 引入变量只是为了可读性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28091766/

相关文章:

java - 为什么在java中与pip行的字符串连接不返回任何内容(空字符串)?

java - 开发具有复杂(且未定义)规则的游戏?

java - 我的模拟 junit5 无法与我的子类一起使用

java - jsch sftp - 更改到父目录

Java正则表达式根据每个id的重复子字符串提取id字符串

php - 格式化 if 语句以提高可读性

kotlin - 我可以使用 kotlin "also"函数来缩短代码吗?

java - 使代码更具可读性

java - 如何使重要的一元减号在代码中脱颖而出?

java - 二维 switch 语句的可读替代方案?