#前言
-
- 这是我参与「第四届青训营 」笔记创作活动的第32天,由于我还是一个小白,缺乏实际开发经验,只会一些java基础,所以平时主要在听课,听讲课老师的开发经验,跟着老师走,其中让我受益最大的一节课是段和尘老师讲的“成为一名好的RD,你应该具备的研发素养”。
-1.代码质量
优秀的代码具备明确的语义,代码即注释
阅读代码时,不需要做其他联想,就能知道变量名,便于调试
function getCartTotal(cartItems){ var cartTotal; var itemPosition; for(itemPosition = 0;item < cartItems.length;itemPosition++) { cartTotal += cartItems[itemPosition].price; } return cartTotal; }
比如这段代码,不需要多余的中文注释,便可以快速的看懂代码要实现的功能。
而且优秀的代码还具备功能变更时只需要进行比较小的改动这种优势,在发生异常时能优雅的报错,或者能够自我恢复,并且能够比较好的应对新的场景,也就是软件可信赖,易于维护,Bug比较少。
代码可维护性原则:
统一的编码规范:命名规范,代码格式,注释规范
稳定的工程结构:目录清晰,模块化,组件化,依赖可控,访问权限...
优秀的方案实现:文档,用例,可测性,高内聚低耦合...
段老师给我们讲了一个全新的知识点叫做圈复杂度。
圈复杂度概念:
也称条件复杂度,是一种软件度量手段
圈复杂度 = 边的数量-节点的数量+2
段老师给我们提供了一种简便计算圈复杂度的方法:
圈复杂度 = 判定条件数 + 1
例如:
void sort(int[] array){ int i = 0; int j = 0; int n = len(array); while(i<(n-1)){ j=i+1; while(j<n){ if(array[i]<array[j]){ swap(array[i],array[j]); } } i+=1; } }
圈复杂度=判定条件数+1=3+1=4