重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
圈复杂度(Cyclomatic Complexity)是一种代码复杂度的衡量标准。它可以用来衡量一个模块判定结构的复杂程度,数量上表现为独立现行路径条数,也可理解为覆盖所有的可能情况最少使用的测试用例数。圈复杂度大说明程序代码的判断逻辑复杂,可能质量低且难于测试和维护。程序的可能错误和高的圈复杂度有着很大关系。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网页空间、营销软件、网站建设、涞源网站维护、网站推广。
两个方法是指类里面有两个函数对吧?!
是的
是要有4个elseif语句么?
不是的,但是如果你写成嵌套的四个else if,那么圈复杂度肯定超过4,圈复杂度的计算用很多工具可以辅助完成,比如eclipse metrics, java ncss等。
人工计算圈复杂度比较复杂,限于篇幅无法详细介绍,网上相关介绍很多,可以直接baidu检索
1. Java语言是不是繁琐呢?手头有一本《Thinking in Java》中文第四版,数了一下正文共22章856页。随手翻一下,示例代码和讲解正文大概比例在1.5 : 1这样。没有真正用Java干过项目的人肯定会大为惊叹:我勒个去,这么多知识点!此为“繁”;
2. 绝大部分搞编程的人,事实上,都是在使用一门语言的某个子集。该子集的形成由项目主导者发起、开发活动参与者共同决定,且相对长期稳定。每一个即将参与该项目的人肯定会先把语言学个大概(其难度参考前一条),然后再根据项目学习该语言子集,最后固化下来。不断使用该子集固然能提升开发效率,但代价不菲,极容易就变成了项目中的一颗镙丝钉(“专家”);
3. 一门语言的设计肯定不会一蹴而就,一步步改良。没记错的话,Java诞生于1995年左右,到今天已经快满20年。在当时那种IT环境和条件下设计出来的语言,必然存在许多妥协、限制与错误,既不能随便将之抹除(可能还有很多工程依赖着),也不能随便更正,只能通过添加新语法、新类库来打补丁,导致语言更“繁”。举个例子,非内建容器类库是一个典型硬伤,再举个例子,时间日期类没见有多好用,也没见有更新过,连替代品都没见过(恕我不写Java,的确没见过);
4. 类库(框架)丰富是好事还是坏事,要看针对同一个任务能找到多少替代品。如果有三到四个,那么肯定是好事,既不会造成单点故障,也不至于造成理解和记忆上的负担。但是类库太多,选择太多,人的幸福感反而会下降,高效率也就无从谈起;
5. 框架真的可以保证快速开发吗?熟悉的话是可以的,专家编程嘛!但是
熟悉之前要花非常多时间学习使用吃闷亏。
框架只能免除掉一部分开发工作量。
框架跟业务总是存在“不合缝”的差异。
只不过将复杂度从开发转移到了部署运维。
依赖性极强。
6. IDE可以提高开发效率吗?仅仅一部分罢了。IDE本身就是个非常复杂的东西,将之调校到符合个人开发步调的进程可能会持续很久,事实上大部分人也只是用一些常用功能罢了。而且
基于图形界面意味着自动化不容易(需要编写额外插件)。
出了问题查找原因不易。
依赖性极强。
7. Java本身是面向系统(机器)的,不是面向开发人员的。这种强设计保证有助于提升目标系统的可靠性,却牺牲了开发人员的幸福感。既然设计得如此严谨规范,为什么不能自动生成Java程序,
怎么判断代码是否是优质量的代码呢?下面河南电脑培训来简单对代码质量的问题进行一个介绍。
代码质量所涉及的5个方面,编码标准、代码重复、代码覆盖率、依赖项分析、复杂度分析。
我们分别来看一下这5方面:编码标准:一般来说,公司都会有一份编码规范,类命名、包命名、代码风格之类的都会有所要求。
代码重复:顾名思义就是重复的代码,如果代码中有大量的重复代码,就要考虑是否将重复的代码提取出来,封装成一个公共的方法或者组件。
代码覆盖率:测试代码能运行到的代码比率,代码经过了单元测试了吗?是不是每个方法都进行了测试,代码覆盖率是多少?这关系到代码的功能性和稳定性。
依赖项分析:代码依赖关系怎么样?耦合关系怎么样?是否有循环依赖?是否符合高内聚低耦合的原则?复杂度分析:如果代码中嵌套了很多层的ifelse,就会让人很难阅读。
要相信越优秀的代码,越容易读懂。