俗话说,好马配好鞍,才能展现千里马的实力。一名好的开发者,必定要有一套好的开发工具才能打造出最好的产品给用户。要论世界上最好用的 IDE 是哪一种?有人会选择老牌的 Visual Studio 或是 Eclipse;有人会选择一路飙升的 IntelliJ;也有人更偏爱 Google 发布的 Android Studio 等等。
每位开发者按照不同的需求及爱好有各自不同的选择。其中,对于老牌军 Ecplise 来说,众多开发者对其真的是又爱又厌倦。曾几何时,各种昂贵及少量的 IDE 出现,突然有这么一款免费且开源、速度相对更快、Google 支持、各种教科书推行的 IDE,想必不流行也难。但之后各种 IDE 的百花齐放, Ecplise 的卡顿、太大、复杂等弊端逐渐显现,开始走下坡路,一篇《曾经的 Java IDE 王者 Eclipse,它是如何没落的?》文章也对其趋势进行了解析:
虽说其发展趋势不如以前,但根据近几个月的 PYPL 指数来看,Eclipse 也依然保持受欢迎的 IDE 排行榜前三名,且据上个月最新的 PYPL 指数显示,Eclipse 以 24.93 % 的成绩击败了 Visual Studio ,夺下冠军宝座,再次成为最流行的 IDE。
之所以仍受广大开发者的喜爱,这在很大程度上归功于该平台所支持的强大而广泛的插件生态系统。起初它主要作为 Java 的开发工具,而如今越来越多的人将其用于其他编程语言和框架,从 Scala 和 Kotlin 到 JavaScript 和 Node.js。
多语言、多框架的支持得以实现源于 Eclipse 良好的插件体系结构。将大大小小的各种工具添加到你的 Eclipse 中,就可以扩展其功能并对其进行自定义从而满足你的特定开发需求。
下面将介绍多个对于开发者来说非常有用的 Eclipse 插件。这其中有的已流行多年,有的盛行不久,有的界面非常可爱,各种各样插件的存在使得 Eclipse 变得更加强大。
如果你也是那种讨厌白色背景的人,那么肯定不会问我为什么黑屏更好,也不会觉得使用“darkest”修改“dark”是多余的。我相信你一旦用了 Darkest Dark(https://marketplace.eclipse.org/content/darkest-dark-theme) 主题之后一定会爱上它,因为它让你面对一整天电脑屏幕之后的眼睛不那么难受。
我个人非常喜欢 SpotBugs(https://marketplace.eclipse.org/content/spotbugs-eclipse-plugin) 这个工具。我借助它帮我找出我正在写的代码中的错误。与之前使用的 FindBugs 工具类似,SpotBugs 像一个严格的审计人员一样,其内部预编了数百个“bug 匹配模板”。它搜索你的代码,使用bug 模板进行匹配就可以帮助你找到代码中的错误。我相信有一些程序员会对 SpotBugs 工具找出的bug表示怀疑,但是有这么一个工具帮你找出错误,给你一定的参考总是好的。
尽管有时候我像讨厌法西斯主义一样厌恶 Checkstyle(https://marketplace.eclipse.org/content/checkstyle-plug),但是我必须承认,在每个人都遵循相同规则并以同样的方式构建代码的项目工作会更加容易。大脑有一种学习风格的方式,当每个方法的空白处于同一个位置时,大脑就能更快地理解每个人的代码。当然,你可以编写 Checkstyle 插件来执行你自己所喜爱的规则,这意味着你可以自己动手定制自己独特的东西。
如今在版本控制领域 Git 占据的份额越来越大,但是依然有很多人使用 Subversion 工具。对于 SVN 用户来说一般有两个工具可以选择:Subclipse(https://marketplace.eclipse.org/content/subclipse/)和 Subversive(https://marketplace.eclipse.org/content/subversive-svn-team-provider)。这两者都能很好地完成版本控制管理工作,目前它们各自的用户数几乎平分秋色。这两者的差异主要在于信息呈现方式有所不同。具体使用哪一个取决于个人喜好,不过据统计用户在使用这两个工具时都会偶尔遇到一些小问题。
M2Eclipse(https://marketplace.eclipse.org/content/maven-integration-eclipse-luna-and-newer),或者简称 M2E ,是将 Maven 构建工具集成到 Eclipse 的首选方案,这样一来,你的每次保存将触发 Maven 构建项目而不仅仅是 Eclipse。精心设计的 POM(项目对象模型)避免了需要记住 Maven 的 XML 模式的麻烦,当然,你依然可以编辑原始 XML。上图显示了各种代码的依赖关系。
当我们需要清理代码并删除那些不需要的代码碎片时,Unnecessary Code Detector(https://marketplace.eclipse.org/content/unnecessary-code-detector/metrics) 就可以完成这项工作。当你点击按钮该工具就会出现标志来告诉你哪些方法不再使用。此外,这个工具还会标记出其他的编码错误,在将代码提交到仓库之前使用该工具是非常有用的。
解决空格和 Tab 问题是很多程序员都要做的工作,lingting 工具可以帮助我们自动完成这项工作。SonarLint(https://marketplace.eclipse.org/content/sonarlint) 将 lint 的强大功能带到了 Eclipse 中。在检查代码之前,你可以长时间运行 lint 工具,其内部的代码审查机制将帮助你解决空格和 Tab 问题。
调试代码从来都不是一件简单的事,如果你的代码构建非常复杂那么调试起来就更不容易了。JRebel(https://marketplace.eclipse.org/content/jrebel-eclipse) 是一个非常智能的 Java 代理,它可以更改代码并将其插入到已经运行的代码中。我一直以来都在使用 JRebel,它非常强大,在重建或者重新运行代码之前你可以尝试使用一下 JRebel。这对于 Eclipse 来说非常合适,因为 Eclipse 从一开始就已经完成了大部分的工作。
为代码编写好的单元测试可能比编写代码本身更加重要。TestNG(https://marketplace.eclipse.org/content/testng-eclipse/) 将你的测试与 Eclipse 集成在一起,因此你可以很方便地运行它们。编译之后就产生结果,测试的集成度比以往更高。
JSweet(https://github.com/cincheo/jsweet-eclipse-plugin) 可以将 Java 代码转换成 JavaScript 代码。对于那些想要从 Java 转到 JavaScript 的程序员来说可以继续编写Java 代码。如果你不想花太多精力敲代码,那么你可以使用 TypeScript ,当然最终都会转换为 JavaScript。Eclipse 的这款插件让你可以通过 Java 代码实现大部分的功能,然后在最后生成 JavaScript 即可。
大部分程序员都没有契机去了解 Java 堆栈里面到底发生了什么。我们使用高级编程语言就可以实现想要的功能。但是当你想要深入挖掘内部机制试图让代码运行更快时,查看实际的 Java 字节码是非常有用的。如果你是一名真正的程序员,你肯定会对深层次的东西充满兴趣。Bytecode Outline(https://marketplace.eclipse.org/content/bytecode-outline) 正是开启代码灵魂窗口的工具。
如果你对 Python 的普及程序有所怀疑,那么不妨看看 PyDev(https://marketplace.eclipse.org/content/pydev-python-ide-eclipse), 它是一个能够让 Python 开发者告别命令行并享受 Eclipse 的强大插件。它不仅支持基本语法,还支持流行的 Python 的框架,比如 Django, 它能够将 Django 代码推送到 Google App Engine。它对于 Python 开发者来说是一个完整的开发插件。
使用 JavaScript 构建服务器应用程序已经在无数程序员中风靡多时。如今,Nodeclipse(https://marketplace.eclipse.org/content/nodeclipse) 插件让开发者从带有奇怪参数标志以及无数脚本的命令行中解脱出来,取而代之的是非常友好、易用的高度集成化的开发环境。当然,你仍然可以通过命令行和 VI 编辑器编写 Node.js 代码,但是何必要花那么多的精力去记住大量的命令呢?
对于那些喜欢功能性语言的开发者来说,Scala 一直以来都充满吸引力,它提供功能性语言的生产结构和支持,同时可以与来自 Java 世界的庞大代码库一起工作。Scala 在 JVM 上运行,它可以链接任何 JAR 文件。因此,Scala 爱好者为 Eclipse 创建一个 Scala IDE(http://scala-ide.org/) 也就不足为奇了,他们可以利用 Eclipse 的强大功能来构建他们喜欢的应用程序。
很多人把 Kotlin 看成 Java 的简化版。Kotlin 拥有丰富的函数式编程特性,擅长处理空值,具有与 Java 的互操作性,能够生成 JavaScript 和 native 代码,它受到 Android 开发者的强烈追捧。如果你想加入 Kotlin 的潮流, 那么针对 Eclipse 的 Kotlin(https://marketplace.eclipse.org/content/kotlin-plugin-eclipse) 插件将是你的不二选择。
如今并不是所有人都热衷于使用 JSON 格式来存储数据。现今另一个热门的方式是 YAML。树结构一样,数据也几乎相同,它使用缩进而不是大括号。YEdit(https://marketplace.eclipse.org/content/yedit) 是一个简易创建 YAML 文件的工具。它的基本概念不难理解,但有时候对于缩进的使用需要一点帮助。
我至始至终都不明白 UML(统一建模语言)有何吸引力,但是仍然有相当数量的人喜欢它,喜欢使用来自 Obeo 的 Eclipse 插件 UML Designer(https://marketplace.eclipse.org/content/uml-designer)。UML 是用于指定、创建和记录面向对象编程项目元素的标准。当你画出长方形,所有人都能明白你的意图。该插件还让你可以深入定义 UML 的 XML 树形表示。如果你喜欢 UML ,那么你可能也会喜欢UML Lab Class Diagram Editor(https://marketplace.eclipse.org/content/uml-lab-class-diagram-editor/metrics) 和 UML Java Generator(https://marketplace.eclipse.org/content/uml-java-generator/metrics)。
Eclipse 通常情况的使用者是程序员,但是随着计算机渗透到更多科学领域,越来越多科学家+程序员双重身份的人开始涌现。的确,你很难找到一个完全不会写代码的科学家。ImageJ(https://marketplace.eclipse.org/content/imagej-plugin) 是一个强大的图像分析程序,它彻底改变了大量视觉数据的收集方式。如果你在 Eclipse 中运行它,可以编写自定义的代码来自动完成下一篇论文所需的所有数据的收集和整理。