仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 763|回复: 8
打印 上一主题 下一主题

[学习教程] JAVA编程:[InterviewerPortal] Java代码质量办理仓酷云

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:29:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你通过从书的数量和开发周期及运行速度来证明:net网页编程和ruby要比java简单。次要是Java代码的质量办理,分为三个方面:

  • 代码作风
  • 代码静态剖析
  • 单位测试
这恰好是三个递进的条理:代码看起来怎样->代码剖析起来怎样->代码跑起来怎样,Java在这几个方面都供应了十分优异的工具和几近无缝的Eclipse集成。
#代码作风
这个次要由Eclipse办理,设置在Preference/Java/CodeStyle中,包含:


  • Cleanup-主动增加/删除/修正代码以更好的切合代码尺度,能够经由过程选中文件/文件夹,然后右键/Source/Cleanup运转.
  • CodeTemplate-增加代码片断大概正文时利用的模板,正文能够经由过程Alt+Shift+J拔出
  • Formatter-主动格局化代码,与Cleanup分歧的地方是只改动格局,经由过程Ctrl+Shift+F运转,假如要处置收拾项目,能够选中项目文件夹/右键/Source/Format举行格局化,另有个主动化的办法是经由过程SaveAction在保留时主动格局化
  • OrganizeImports-主动增加import,主动排序import,快速键为Ctrl+Shift+O
Eclipse关于代码作风的撑持是云云的壮大以致于你很难写出不切合尺度的代码-这点关于C++来说,VisualStudio的撑持就减色的多了。

#代码静态剖析
-CheckStyle
CheckStyle基于源代码举行剖析,最后版本是供应一些代码作风的反省,但厥后慢慢增添了功效,也会反省一些基础的代码计划上的成绩,好比函数参数应当为final,不必要override的函数,应当是final的之类的。
CheckStyle能够在Preference/CheckStyle中举行设置,假如你想disable某些选项,你必要copy一份本人的设置先,CheckStyleConfiguration对话框便可以用来设置,也是检察各个style注释的尽好中央:

<br>

在开辟的时分间接利用Eclipse编译调试,但在公布的时分,一样平常还会利用ant来编译一个终极的jar大概war出来,何况,假如必要跑CI,ant编译剧本必不成少,checkstyle也供应了anttask:

<br>
  1. <targetname="checkstyle"description="Runcheckstyles"><mkdirdir="${checkstyle.dir}"/><checkstyleconfig="${checkstyleinstall.dir}/sun_checks.xml"><filesetdir="${src.dir}"includes="**/*.java"/><filesetdir="${test.dir}"includes="**/*.java"/><formattertype="plain"/><formattertype="xml"toFile="${checkstyle.dir}/checkstyle_errors.xml"/></checkstyle></target>
复制代码

<br>
-Findbugs
Findbugs基于bytecode剖析,但能够没有sourcecode,它次要是剖析代码中bugpattern(简单激发bug的代码写法),其设置,大概说reference,能够在Preference/Java/Findbugs/DetectorConfiguration中找到,次要包含几个分歧的category:Maliciouscodevulnerability,Dodgecode,Badpractice,Correctness,Internationalization,Performance,Security,Multithreadedcorrectness,Experimental。别的,Findbugs接纳的是pluginarchitecture,用户能够便利的植进本人特定的反省。

<br>
Findbugs还供应了一些annotation,如NonNull,CheckForNull等,经由过程用户的共同举行更好的反省。
除Eclipse的plugin,Findbugs也供应了anttask:

<br>
  1. <targetname="findbugs"depends="jar"><mkdirdir="${findbugs.dir}"/><findbugshome="${findbugs.home}"output="xml"outputFile="${findbugs.dir}interviewerportal-findbugs.xml"><sourcePathpath="${src.dir}"/><classlocation="${target.jar.name}"/></findbugs></target>
复制代码

<br>
#单位测试
天然是JUnit,利用十分复杂,晓得@Test和Assert就能够写testcase了,进一步就是利用TestFixture(@Before,@After,@BeforeClass,@AfterClass)写一拨testcase,其他具体点的,基础看看JUnitFAQ就弄定了:http://junit.sourceforge.net/doc/faq/faq.htm
一样,也能够放到ant中:

<br>
  1. <pathid="classpath"><filesetfile="${target.jar.name}"/></path><targetname="junit"depends="jar"><mkdirdir="${report.dir}"/><junitprintsummary="yes"><classpath><pathrefid="classpath"/></classpath><formattertype="xml"/><batchtesttodir="${report.dir}"><filesetdir="${test.dir}"includes="**/*Test.java"/></batchtest></junit></target><targetname="junitreport"depends="junit"><junitreporttodir="${report.dir}"><filesetdir="${report.dir}"includes="TEST-*.xml"/><reporttodir="${report.dir}"/></junitreport></target>
复制代码

<br>别的,Junit只是个工具,用好工具是一方面,写出好的testcase又是别的一回事,这本小书值得一读:《单位测试之道》,特别是第四章和第五章,讲了怎样来计划测试用例。
第三点,关于究竟该测到甚么水平,征引一下KentBeck的话:
Igetpaidforcodethatworks,notfortests,somyphilosophyistotestaslittleaspossibletoreachagivenlevelofconfidence(Isuspectthislevelofconfidenceishighcomparedtoindustrystandards,butthatcouldjustbehubris).IfIdonttypicallymakeakindofmistake(likesettingthewrongvariablesinaconstructor),Idonttestforit.Idotendtomakesenseoftesterrors,soImextracarefulwhenIhavelogicwithcomplicatedconditionals.Whencodingonateam,Imodifymystrategytocarefullytestcodethatwe,collectively,tendtogetwrong.
Differentpeoplewillhavedifferenttestingstrategiesbasedonthisphilosophy,butthatseemsreasonabletomegiventheimmaturestateofunderstandingofhowtestscanbestfitintotheinnerloopofcoding.Tenortwentyyearsfromnowwelllikelyhaveamoreuniversaltheoryofwhichteststowrite,whichtestsnottowrite,andhowtotellthedifference.Inthemeantime,experimentationseemsinorder
Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发
简单生活 该用户已被删除
沙发
发表于 2015-1-18 13:47:05 来自手机 | 只看该作者
是一种简化的C++语言是一种安全的语言,具有阻绝计算机病毒传输的功能
深爱那片海 该用户已被删除
板凳
发表于 2015-1-22 05:55:18 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
谁可相欹 该用户已被删除
地板
发表于 2015-1-30 23:24:05 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
爱飞 该用户已被删除
5#
发表于 2015-2-2 18:19:23 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
老尸 该用户已被删除
6#
发表于 2015-2-8 04:11:21 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
第二个灵魂 该用户已被删除
7#
发表于 2015-3-7 10:48:27 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
精灵巫婆 该用户已被删除
8#
发表于 2015-3-15 00:12:04 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
分手快乐 该用户已被删除
9#
发表于 2015-3-21 14:57:54 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-27 14:33

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表