leader:你的代码太烂了我根本看不懂

布尔相关的命名加上 is、can、should、has 等前缀。

  • 用 min、max 表示数量范围;

  • 用 first、last 表示访问空间的包含范围;

  • begin、end 表示访问空间的排除范围,即 end 不包含尾部。

四、良好的代码风格

=====================================================================

适当的空行和缩进。

排列整齐的注释:

int a = 1; // 注释

int b = 11; // 注释

int c = 111; // 注释

语句顺序不能随意,比如与 html 表单相关联的变量的赋值应该和表单在 html 中的顺序一致。

五、为何编写注释

====================================================================

阅读代码首先会注意到注释,如果注释没太大作用,那么就会浪费代码阅读的时间。那些能直接看出含义的代码不需要写注释,特别是不需要为每个方法都加上注释,比如那些简单的 getter 和 setter 方法,为这些方法写注释反而让代码可读性更差。

不能因为有注释就随便起个名字,而是争取起个好名字而不写注释。

可以用注释来记录采用当前解决办法的思考过程,从而让读者更容易理解代码。

注释用来提醒一些特殊情况。

用 TODO 等做标记:

| 标记 | 用法 |

| — | — |

| TODO | 待做 |

| FIXME | 待修复 |

| HACK | 粗糙的解决方案 |

| XXX | 危险!这里有重要的问题 |

六、如何编写注释

====================================================================

尽量简洁明了:

// The first String is student’s name

// The Second Integer is student’s score

Map<String, Integer> scoreMap = new HashMap<>();

// Student’s name -> Student’s score

Map<String, Integer> scoreMap = new HashMap<>();

添加测试用例来说明:

// …

// Example: add(1, 2), return 3

int add(int x, int y) {

return x + y;

}

使用专业名词来缩短概念上的解释,比如用设计模式名来说明代码。

七、提高控制流的可读性

=======================================================================

条件表达式中,左侧是变量,右侧是常数。比如下面第一个语句正确:

if (len < 10)

if (10 > len)

只有在逻辑简单的情况下使用 ? : 三目运算符来使代码更紧凑,否则应该拆分成 if / else;

do / while 的条件放在后面,不够简单明了,并且会有一些迷惑的地方,最好使用 while 来代替。

如果只有一个 goto 目标,那么 goto 尚且还能接受,但是过于复杂的 goto 会让代码可读性特别差,应该避免使用 goto。

在嵌套的循环中,用一些 return 语句往往能减少嵌套的层数。

八、拆分长表达式

====================================================================

长表达式的可读性很差,可以引入一些解释变量从而拆分表达式:

if line.split(‘:’)[0].strip() == “root”:

username = line.split(‘:’)[0].strip()

if username == “root”:

使用摩根定理简化一些逻辑表达式:

if (!a && !b) {

}

if (!(a || b)) {

}

九、变量与可读性

====================================================================

去除控制流变量 。在循环中通过使用 break 或者 return 可以减少控制流变量的使用。

boolean done = false;

while (/* condition */ && !done) {

if ( … ) {

done = true;

continue;

}

}

while(/* condition */) {

if ( … ) {

break;

}

}

减小变量作用域 。作用域越小,越容易定位到变量所有使用的地方。

JavaScript 可以用闭包减小作用域。以下代码中 submit_form 是函数变量,submitted 变量控制函数不会被提交两次。第一个实现中 submitted 是全局变量,第二个实现把 submitted 放到匿名函数中,从而限制了起作用域范围。

submitted = false;

var submit_form = function(form_name) {

if (submitted) {

return;

}

submitted = true;

};

var submit_form = (function() {

var submitted = false;

return function(form_name) {

if(submitted) {

return;

}

submitted = true;

}

}()); // () 使得外层匿名函数立即执行

JavaScript 中没有用 var 声明的变量都是全局变量,而全局变量很容易造成迷惑,因此应当总是用 var 来声明变量。

变量定义的位置应当离它使用的位置最近。

实例解析

在一个网页中有以下文本输入字段:

现在要接受一个字符串并把它放到第一个空的 input 字段中,初始实现如下:

var setFirstEmptyInput = function(new_alue) {

var found = false;

var i = 1;

var elem = document.getElementById(‘input’ + i);

while (elem != null) {

if (elem.value === ‘’) {

found = true;

break;

}

i++;

elem = document.getElementById(‘input’ + i);

}

if (found) elem.value = new_value;

return elem;

}

以上实现有以下问题:

  • found 可以去除;

  • elem 作用域过大;

  • 可以用 for 循环代替 while 循环;

var setFirstEmptyInput = function(new_value) {

for (var i = 1; true; i++) {

var elem = document.getElementById(‘input’ + i);

if (elem === null) {

return null;

}

if (elem.value === ‘’) {

elem.value = new_value;

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

[外链图片转存中…(img-hH4JkVZR-1715794775950)]

[外链图片转存中…(img-KBdIPWeS-1715794775951)]

[外链图片转存中…(img-d7wKXFVy-1715794775951)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值