【备忘】Idea的那些事_第1页
【备忘】Idea的那些事_第2页
【备忘】Idea的那些事_第3页
【备忘】Idea的那些事_第4页
【备忘】Idea的那些事_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、说到Java的IDE,似乎eclipse和Idea是目前的主流。然而,00的课程组却 一直在推荐使用eclipse ,于是很多人就这样错过了 Idea这样强大的IDE工 具。本文将会对于Idea和Idea的一些常见(实际上,很多是Jetbrain系列IDE的代表性操作)操作进行一些介绍。Jetbrain & IdeaJetbrainJetbrain是捷克的一家企业(Jetbrain官网),目前其主打产品是各个现代主 流语言的IDE ,包含Python. Ruby、PHP、SQL等语言(对于企业用户还提供一 些teamwork管理工具)0其IDE用过的人都知道,颇具现代感,很多功能解 决了令不少

2、程序猿们头疼多年的难题(后面将会详细讲到)OIdeaIdea那么是Jetbrain全家桶的一员(Idea官网),其除了 Jetbrain 一些共性的 王牌功能之外,还针对Java这门语言的一些特性进行了进一步的用户体验优 化。(后文也将详细阐述)Idea的那些事初次使用Idea初次翻开Idea的下载页面,一下子就懵了 : public static void Jest() for (int i = 1; i = 10; i-H-) int x = i * i + 2; System. out. print In (x: * x);)for (int i = 1; i = 10; i-H-) i

3、nt x =: i * i;System. out. print In (x: + x);) j在这样的一个函数中,将第一个for循环内的x值进行rename操作,效果如下:public static vold testO for (int i = 1; i = 10; i+)(int v = i * i + 2; flSystem. out. println(y * y);)for (int i = 1; i = 10; i+)( int x = i i;System. out. printin (x + x):可以看出来,idea的rename功能完全不会误伤到不同作用域类的同名实体, 可

4、以说是做到了精确打击。此外,Refactor中还提供了 Safe delete等人性化的功能,等待大家去尝试(Safe delete是在删除类、方法、变量时,检测是否依然在其他的地方对该实 体存在依赖,以到达平安删除的目的)。javadoc在正规的工程代码规范中,还有一项很重要的要求写文档。然而,这个文档也是有很严格的规范的,不是很多人认为的那样,随便注释一点就可以当做文档。而这种符合java工程规范的文档形式就称之为javadoc(类似的代码注释规范还有phpdoc等,更多的规那么等细节可以自行查阅代码 规范手册或者百度,本文中不作过多讲述) 比方,我们再次来到之前写的test方法上,打入/

5、、*、* ,再按下回车:param gpublic static void test(int n)( for (int i=l; i = n; i+) ( int y = i * i + 2;System out. print In (y * y); )for (int i = l; i = n; i-H-) int x = i * i;Systent out. print In (x + x)|;)然后我们按照规定的格式来补齐这个javadoc框架:/求*本我,E r测风明数JacDaram n要输入的N值关public static void TesT(int n) J-for (inr

6、i = 1; i = n; i+)(int y = i * i + 2;System, our. println(y * y);Jfor (inr i = 1 ; i Tools - Generate Javadoc ,即可自动生成完整的javadoc网页版文档(具体操作可参考此教程)Git除此之外,Idea实际上也像eclipse 一样对于git有完美的图形化支持。然而笔者一直使用git命令行进行所有git相关操作,对这一块暂不是很熟悉。所以 还请各位资料并自行探索。插件实际上,在这个网络化体系化作战的时代,jetbrain也有很多的在线插件支 持。我们只需要进入Menu - File -

7、Settings - Plugins ,再点击 InstallJetbrains plugin.,即可搜索插件并直接进行在线安装。(实际上,由于大 陆内一些神奇的不可言表的原因,经常会出现连接失败或者下载速度极慢的情 况。这时候请自行设置代理,本文不再赘述)接下来笔者来安利几款比拟好的插件:MetricsReloaded对于这次的博客作业,我们需要用到的代码分析插件。Class metricsclassCBODULCOM-NOC 一WMCconfigs.ApplicationConfig8110015144t222一4一o oi3163021Exceptions, application, a

8、rguments. Invalic240 0 3一124o1.21(2300 52exceptions.inputlnputNotStartFromThel230041Statistic这个插件没啥别的功能,就是统计代码行数。那意义何在呢?嘿嘿,试想写着 代码,看着代码行数不断睡增,是不是一件很带感的事情呢(八7八)。StMHtka 一 RwAnHh 0 Refresh on Mitction Setting9Overview css himl S pva Sjs txtSource FileToWLfnesSource Code lines ,Sourer Code lines 阔Comme

9、nt LinesComment lines 阿Bbnk linesBlank lifter f% Mjiin.pva 178 112, 63%“4S, 25%.21 12% Schedulerv9“165 HO 67%, 35, 21%/ 20 12% OuterRqueit.)ava 222, IOS.47%, 86 3殊.31 14% Liftjava 253 99 9%, 128, 51% 26 10% UftController.jdva 258 98. 3S% 134 52%/ 26,10% Aumnti.java 194 92 47% M 43%Z ig 9% InnerfUque

10、itpva, B3 63,47%, 54 41%,16, 12% UfltkJttoni.jova. 119 55 46%, SI.43%# 13,八%. ApplicationConfvg.jdVd 133“ 45, 34% 73/ 55% 15 11% Tol:. 25 J.1132 44聃.1143.45* 289 If击 2t,: 的 e ,,.ignore这是个管理.gitignore的插件,可以用颜色标记出当前工程下所有文件的git状态(包括 Ignored , Untracked , Unmodified , Modified )Markdown support对于使用Markd

11、own书写文档的同学来说,能有一款优雅可视的内置插件当然是一件很爽的事情。就像这样氏 Edit View Navigate Code Analyze Befactor Build Run loots VC$ Window Help* project 3 4 lUADMF.mdB。亨 I * I。G MamjavaQ Lift Buttons javaOHashDefauhM卬B /氏 Edit View Navigate Code Analyze Befactor Build Run loots VC$ Window Help* project 3 4 lUADMF.mdB。亨 I * I。G

12、 MamjavaQ Lift Buttons javaOHashDefauhM卬B / Bi inputO inneReque$tG inputRequest OpeftionRequeitQ OuterRequcst 0RunRequest BiUftORoor0 LiftButtonsG LiftControBef Bl resuK0 Movenient BiKhedukr0 Schedulern.argument$.NoAf( exccp(ioHpplicAtion.lnvd!idOebuglev4X exceptions.input InputNotSUrtfromThelRADME-

13、md 3 AppftcatiooConfig.javdSoaerhing important:* When the request is duplicated, the output should besss Exception Fo/wtWhen there is something abnormal or unformatted in th,Format like this(for example):INVALWCER. 1.0=.Error mess晔s_-v aBecause of some reasons, the type of exception that ca:小.八,出物偏r

14、 q- Lift jdva: I UftActionjavaG Scheduler java View: A E 0 T 5J”bU,9 taiM. When the request is duplicated, the output should be s sameer,i,0 (tor example, begin & end with brackets, a space is between the ai)dsAMt ) and the request should be ignored.Exception FormatWhen there is something abnormal o

15、r unformatted in the request or the process of calculating, theie will be exception output.Fcxmat liko this(for oxamplo):INVAlIDtR,l.O)9 _Error oessages-Exceptions口 ID and Plugin Updates: InteCliJ IDEA is ready to update (toUy 002)口 ID and Plugin Updates: InteCliJ IDEA is ready to update (toMaen. Gr

16、adie. SBTGit, SVN. Mercurial. CVSDetecting Duplicates Porfofco. TFSJavaScript, TypescriptJava EE. Spring. GWT. Vaadin. Play. Grails. Other3Frameworks Database Tools. SQLCompare editions果然,Intellij Idea和Pycharm一样,都提供了完全免费的社区版,可以直接下载使用。然而,对于本科生,我们依然可以通过注册学生账号的方式来免费使用Ultimate版(准确的说,Jetbrain大礼包里面除了完全面向企

17、业的团队工具之外,所有的专业版工具都可以凭学生优惠免费下载使用) 大家可以自己去按照官网的引导或者网上的教程等进行认证操作,本文中不再赘述。代码风格笔者做了三次00作业,看了三份不同的代码。老实说这三个人的代码思维能 力都是挺不错的,然而,代码风格却不是很能看,或者说,这样的代码即便没 有任何bug ,也根本不可能用在真正的团队工程中。研读过阿里巴巴java开发代码规范手册的同学们应该知道,在真正的工程代码 中,处于代码可维护性和提高团队合作效率的考量,会有很多代码规范性的要 求。然而,可能不少同学已经写了规模不小的代码,而且从未参照过代码规范。不必担忧,jetbrain给我们提供了很方便的代

18、码风格工具:I Q SettinEditor Code Style Java Appearance & Behavior Keymap Editor GeneralFont Color Scheme Code StyleScheme: Default IDE *Set from.Tabs and Indents Spaces Wrapping and Braces Blank Lines Java Doc Imports Arrangement Code Generation Java EE NamesUse tab characterSmart tabsTab size:public cla

19、ss Foo public inr X = new int 1. 3, 5, 7, 9. 11);Java Actionscript CFMLCoffeeScript CSSGherkin GroovyGSPHamlHTML JavaScript JSONJSPJSPXKotlinLess PropertiesSassSCSSIndentContinuation indentV Keep indents on empty linesLabel indent: Absolute label indentDo not indent top level class membersUse indent

20、s relative to expression startpublic void foo(boolean a. int x. int y. inr z) label1: do try (if (x 0) int someVariable = a ? x : y;int anotherVariable = a ? x : y:)else if (x 0) int someVariable = (y + z); someVariable = x = x + y; )else label2:for (int i = 0; i File - Settings - Editor -Code Style

21、- Java即可找到并调整(可以看到,除了 java还有非常多种的 语言。没错,一般的jetbrain IDE都支持多种语言的编辑,如果你有同时使用 多种语言的需求的话,可以在其他语言对应的区域进行编辑。)在我们调整好了之后,我们在代码位置按下Ctrl+Alt+L ( Pycharm中是Alt+F8 )即可完成代码规范化(或者Menu - Code - ReformatCode ),效果如下:public static void test(int n) for (inr 1=1;i=n;i+)(int y = i * i + 2: System. out. println(y * y);)fo

22、r (int i=l;i=n:i+) int x=i*i;System. out. println(x + x);)只需要按下Ctrl+Alt + L,代码立刻就变成了这样:public static void tsr (int n) for (int i = 1; i = n; i-H-) int y = i * i + 2;System. out. printlnCy * y):for (int i = 1; i = n; 1-H-) int x = i * i;System. out. println(x + x): )代码瞬间变得干净整洁,清清爽爽。高度智能的联想说到代码联想,大家可能

23、对这一概念并不陌生。事实上很多的IDE也都已经在 支持这一功能了。但是,等你一用idea的代码联想功能,你就会再也放不下来了。说到代码联想,大家肯定会很快的想到eclipse的联想功能:Fie Edit Source Refactor Navigate Search Project Run Window Hdp&jick Access;.&jick Access;. H We write demo 务23hw1,hw2 tfSlowva3 test27 TcstPreject*xx店Man.java 泊1 package test2;a 2*Import jv4.util.0;0public

24、clast Hain (public static void iMin(String() ar(s) System.en : PrmtStream - System xitcinx argO): void maplibraryNam(Stnng Itbname): String &,,t runoTinwO.long,):”(1AfPropeftytStnog mqO) : String ,八。、 oteO : Console公r current T imeMillttO : longgetcnvO : M*刎rinStringA Sy rm“ getenvfStnng argO): Stri

25、ng S. tea getPropettie$O : Properties . teqetPropefty(Strinq key): Strioq,”八vWtnWH/to ilww Tcimteae Proposab8 Task LHterrpoblie static final -errThe -5Undard- enoc output stream. This $tream i$ already open and ready to Mcepx thi$ stream cocre$pon(X to dkplay output or another output destination spe

26、cified by the host environment or uier. By convention, this output stream K used to display error messages or other tnfocmation tht should come to the hnmcdMtr Xtention of a user even if the principal output stream, the value of the varidble Zw been redirected to file or other destination that K typ

27、ically not continuously monitored.Prt from propoMi or dkfc 2 foewS Outline : E 3、7 H tett2v Of n mam(StringQ): void- Z - R 6Q J 4d。,丸,白 匕 J 臼,:,“ :,小De Jarai O ConsoleNo consoles to display at this time.然而,eclipse的代码联想实际上存在一些局限性(以及其他很多的IDE也是这样):写类名的时候没有联想例如,开始写System这个类时,整个过 程不会出现任何的联想联想出来的方法快捷键操作不便

28、例如,当System按下.之后输入 e ,联想到了 exit ,但总还是需要一些比拟不优雅的操作(比方鼠标操作,比方并不符合人类直觉的一些其他操作)来快速输入这意味着什么呢?这意味着,当你对一门语言或者某些类不够熟悉(甚至根本不知道它们的存在)时,你连自我尝试和探索的可能性都没有,只能去翻阅冗 长且并不友好的java文档,这显然不符合程序猿的探索精神。以及,如此不优 雅的快速输入,多年的码农表示怎么用怎么觉得别扭。然而在idea中,这些问题都得到了极大地改善: proct_3 EAton9P*o-dtfWd4U90*prc3jectpcoiecta3) pcoyact 3 - InteW ID

29、A- O XEiie Edit ViewCode Analyze Refactor Build Run look VCS Window Helpfej project 3 wc 0 M ”tP PfO093 HdshDefadtMopBi inputO InnerHeque5t mputRequest OpecationRequestO OutefRequcit0 RunReque4tBi lift9 Floor Quti G Lift Buttons O UhContfoUetIB rcsuK0 MovementBBschedukr。Schedulef0 tjitignore fBtci.p

30、y3 ifttXte postS .n!A READMLhimJREADMEmd Olli External bbr4fe5M*trto ChkSv4M* Kvwfttfproy*ctIS Main ! B - U b 9 住 QO。I * f- Q J G liftButtonfeva 雪 README.md *3* AppficatiooConfig javaG lift 浓aO LiftActioc.pvj 9 Schedule* jiv G InnerRequest.jawa上*房PMMT /.-4pplic4tion.rgumeouinv4k240031exceptiomppiiCA

31、taon.Afgument%.No/Uc240021evccptionvAppficAtion InvalidOcbuglrw230052XexcepbomJnputJnputNotSUfTfroml hei230041Q IDE and Plugin Upcktes: IntellU IDEA is ready to update, (today (h02)s o 1 公 f O F 5 a.从输入类名的第一个字起,就可以进行智能的联想仔细观察上图 的话还可以发现一件有趣的事情,输入LC后,连我们的 LiftController类都联想到了。是的,idea的代码联想完全支持英 文音序联想。根

32、据用户近期使用的情况来智能调节联想顺序这是idea代码联想 另一个很神奇很贴心的feature ,如果你近期频繁使用LC来输入 LiftController类的话,你会发现LiftController类会在列表中越 来越靠前,最多两三次过后就跑到了顶部。可以直接按上下键和车来进行快速键入这一点相比eclipse等其他ide有了非常大的改善,整个过程非常符合一般人的操作直觉,且全过程不依赖任何键盘以外的操作。有了 idea强大的代码联想功能(准确的说z jetbrain全家桶IDE都有这些特 性),我们的代码产出速度可以大幅度提升。批量修改不知道大家有没有遇到过这样的尴尬状况:public cl

33、ass Scheduelr / something insidepublic abstract class Main public static void main(StringEJ args) Scheduelr s = new Scheduelr();/ execution of the constructor methodScheduelr. someStaticMethod();/ execution of the static method/*LOTS OF CODE HERE THAT USES THE SCHEUDUELR*/) )Scheduelr类名的拼写是错误Schedue

34、lr类名的拼写是错误没错,细心的你应该已经发现了问题所在 的,应该是 Scheduler。按照一般的代码规范,这样的拼写错误绝对是不可以容忍的(就算可以容忍,这样的东西也会导致笔者强迫症大犯-| ) 0然而,再一看,可能已经有无数的地方已经在用着这个拼写错误的类名调用。想改?烦得很,而且还很容易错改和漏改。不改?强迫症使我面目全非。(不一 ir)oo于是,相信很多人最终的选择还是不改,宁可被自己代码恶心一遍 遍也不能有bug。实际上,idea在这件事情上有很完美的解决方案: project s EAtongfNio dtfVSdaUVoo-prcjjectKprofectB) * .vcmodk*chtdultfScbeduler.jvA (project) inteHU IDEAP*e Edit View (kvigexe Code Analyze Refactor BwM Run looh VCS Window Helpproject 3 wc IS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论