说到Java的IDE,彷佛eclipse和Idea是目前的主流。然而,OO的课程组却一直在推荐使用eclipse,因而不少人就这样错过了Idea这样强大的IDE工具。本文将会对于Idea和Idea的一些常见(实际上,不少是Jetbrain系列IDE的表明性操做)操做进行一些介绍。php
Jetbrain是捷克的一家企业(Jetbrain官网),目前其主打产品是各个现代主流语言的IDE,包含Python
、Ruby
、PHP
、SQL
等语言(对于企业用户还提供一些teamwork管理工具)。其IDE用过的人都知道,颇具现代感,不少功能解决了令很多程序猿们头疼多年的难题(后面将会详细讲到)。html
Idea则是Jetbrain全家桶的一员(Idea官网),其除了Jetbrain一些共性的王牌功能以外,还针对Java这门语言的一些特性进行了进一步的用户体验优化。(后文也将详细阐述)java
初次打开Idea的下载页面,一会儿就懵了:
git
499刀一年。。。看的有些肾疼。那是否是咱们Idea之旅就要就此止步了呢?Of course, NO!安全
让咱们继续往下看:
markdown
果真,Intellij Idea
和Pycharm
同样,都提供了彻底免费的社区版,能够直接下载使用。网络
然而,对于本科生,咱们依然能够经过注册学生帐号的方式来无偿使用Ultimate版(准确的说,Jetbrain大礼包里面除了彻底面向企业的团队工具以外,全部的专业版工具均可以凭学生优惠免费下载使用)框架
你们能够本身去按照官网的引导或者网上的教程等进行认证操做,本文中再也不赘述。eclipse
笔者作了三次OO做业,看了三份不一样的代码。老实说这三我的的代码思惟能力都是挺不错的,然而,代码风格却不是很能看,或者说,这样的代码即使没有任何bug,也根本不可能用在真正的团队工程中。ide
研读过阿里巴巴java开发代码规范手册的同窗们应该知道,在真正的工程代码中,处于代码可维护性和提升团队合做效率的考量,会有不少代码规范性的要求。
然而,可能很多同窗已经写了规模不小的代码,并且从未参照过代码规范。没必要担忧,jetbrain给咱们提供了很方便的代码风格工具:
能够看到,使用tab
仍是空格缩进,以及缩进几格都是能够自由调整的(实际上,通常企业的代码工程规范是使用4个空格做为缩进)。此外,在别的标签页下,还有不少能够调整的代码风格相关的东西(包括大家圣战了无数年的大括号换行不换行问题)。
而这样的代码习惯调整,只须要Menu -> File -> Settings -> Editor -> Code Style -> Java便可找到并调整(能够看到,除了java还有很是多种的语言。没错,通常的jetbrain IDE都支持多种语言的编辑,若是你有同时使用多种语言的需求的话,能够在其余语言对应的区域进行编辑。)
在咱们调整好了以后,咱们在代码位置按下Ctrl
+Alt
+L
(Pycharm中是Alt
+F8
)便可完成代码规范化(或者Menu -> Code -> Reformat Code),效果以下:
只须要按下Ctrl
+Alt
+L
,代码马上就变成了这样:
代码瞬间变得干净整洁,清清爽爽。
说到代码联想,你们可能对这一律念并不陌生。事实上不少的IDE也都已经在支持这一功能了。
可是,等你一用idea的代码联想功能,你就会再也放不下来了。
说到代码联想,你们确定会很快的想到eclipse的联想功能:
然而,eclipse的代码联想实际上存在一些局限性(以及其余不少的IDE也是这样):
.
以后输入e
,联想到了exit
,但总仍是须要一些比较不优雅的操做(好比鼠标操做,好比并不符合人类直觉的一些其余操做)来快速输入这意味着什么呢?这意味着,当你对一门语言或者某些类不够熟悉(甚至根本不知道它们的存在)时,你连自我尝试和探索的可能性都没有,只能去翻阅冗长且并不友好的java文档,这显然不符合程序猿的探索精神。以及,如此不优雅的快速输入,多年的码农表示怎么用怎么以为别扭。
然而在idea中,这些问题都获得了极大地改善:
LC
后,连咱们的LiftController类都联想到了。是的,idea的代码联想彻底支持英文音序联想。LC
来输入LiftController类的话,你会发现LiftController类会在列表中愈来愈靠前,最多两三次事后就跑到了顶部。有了idea强大的代码联想功能(准确的说,jetbrain全家桶IDE都有这些特性),咱们的代码产出速度能够大幅度提高。
不知道你们有没有遇到过这样的尴尬情况:
public class Scheduelr { // something inside } public abstract class Main { public static void main(String[] args) { Scheduelr s = new Scheduelr(); // execution of the constructor method Scheduelr.someStaticMethod(); // execution of the static method /* LOTS OF CODE HERE THAT USES THE SCHEUDUELR */ } }
没错,细心的你应该已经发现了问题所在——Scheduelr
类名的拼写是错误的,应该是Scheduler
。
按照通常的代码规范,这样的拼写错误绝对是不能够容忍的(就算能够容忍,这样的东西也会致使笔者强迫症大犯 -_-||)。
然而,再一看,可能已经有无数的地方已经在用着这个拼写错误的类名调用。想改?烦得很,并且还很容易错改和漏改。不改?强迫症使我面目全非o(╥﹏╥)o。因而,相信不少人最终的选择仍是——不改,宁肯被本身代码恶心一遍遍也不能有bug。
实际上,idea在这件事情上有很完美的解决方案:
只须要在类名(实际上方法名,变量名等各类名字也均可以这么作)上右键->Refactor->Rename,或者直接Shift
+F6
,便可直接修更名字,并且整个工程中相关的地方也都会一块儿随之改动。
更有趣的是,笔者作了一个实验:
在这样的一个函数中,将第一个for循环内的x
值进行rename操做,效果以下:
能够看出来,idea的rename功能彻底不会误伤到不一样做用域类的同名实体,能够说是作到了精确打击。
此外,Refactor中还提供了Safe delete等人性化的功能,等待你们去尝试(Safe delete是在删除类、方法、变量时,检测是否依然在其余的地方对该实体存在依赖,以达到安全删除的目的)。
在正规的工程代码规范中,还有一项很重要的要求——写文档。
然而,这个文档也是有很严格的规范的,不是不少人认为的那样,随便注释一点就能够当作文档。而这种符合java工程规范的文档形式就称之为javadoc(相似的代码注释规范还有phpdoc等,更多的规则等细节能够自行查阅代码规范手册或者百度,本文中不做过多讲述)
好比,咱们再次来到以前写的test
方法上,打入/
、*
、*
,再按下回车:
而后咱们按照规定的格式来补齐这个javadoc框架:
一个格式规范且很清晰的方法文档就这样生成了。
除此以外,javadoc规范另一个很重要的用途就是能够一键生成html页面版项目文档。点击Menu -> Tools -> Generate Javadoc,便可自动生成完整的javadoc网页版文档(具体操做可参考此教程)
除此以外,Idea实际上也像eclipse同样对于git有完美的图形化支持。然而笔者一直使用git命令行进行全部git相关操做,对这一块暂不是很熟悉。因此还请各位搜集资料并自行探索。
实际上,在这个网络化体系化做战的时代,jetbrain也有不少的在线插件支持。
咱们只须要进入Menu -> File -> Settings -> Plugins,再点击Install Jetbrains plugin...
,便可搜索插件并直接进行在线安装。(实际上,因为大陆内一些神奇的不可言表的缘由,常常会出现链接失败或者下载速度极慢的状况。这时候请自行设置代理,本文再也不赘述)
接下来笔者来安利几款比较好的插件:
对于此次的博客做业,咱们须要用到的代码分析插件。
这个插件没啥别的功能,就是统计代码行数。那意义何在呢?嘿嘿,试想写着代码,看着代码行数不断飚增,是否是一件很带感的事情呢(^▽^)。
这是个管理.gitignore的插件,能够用颜色标记出当前项目下全部文件的git状态(包括Ignored,Untracked,Unmodified,Modified)
对于使用Markdown书写文档的同窗来讲,能有一款优雅可视的内置插件固然是一件很爽的事情。就像这样