讲 IntelliJ IDEA 的好,带更多人入坑

2025-06-17 17:37:10

讲 IntelliJ IDEA 的好,带更多人入坑

IntelliJ IDEA| 2017-04-19

说几句老实话:

劝别人换 IDE 就像劝一个已婚已久的人士出轨,自己得不到任何好处,别人还可能怪你多管闲事,所以你们都别做,这种痛我来承受就行了。

如果你家老板让我用 Eclipse 工作,我更愿意选择离职。

当你从其他 IDE 换到 IntelliJ IDEA 过程中,在初期你可能会老惦记着旧的各种便利或是习惯,你总会用旧的思维来揣摩新的,总感觉各种不合适,怀疑过去听到的所有各种 IntelliJ IDEA 传说。

当我们觉得某个东西不好用的时候,先问问自己真的弄懂了没。

开篇

请大家先回想下:是否一直觉得即使 IntelliJ IDEA 再智能、再好用,毕竟它是收费的,所以其所占市场份额肯定没法和开源的 Eclipse 相比较?

国内目前还没有相应的数据来回答这个问题,但是国外已经有一份不完全的调查,总结调查成果就是:2016 年 IntelliJ IDEA 份额终于赶超 Eclipse,具体表现如下图。

对于国内,如果有一天 IntelliJ IDEA 要超越 Eclipse 那个人感觉需要做的第一件事就是:大学的计算机老师先用 IntelliJ IDEA(第一印象真的很重要)。

如果国内外这场 IDE 战争能在今年或明年彻底结束,那我们应该疑问的是:已经成立十七年了,为何没有坚强后盾的 JetBrains 就这样活下来,并且活得还这么好?

附上一个 2013 年 JetBrains 圣彼得堡办公室:

正式

我们先回顾下 IDE 这个概念。Wiki 是这样说的:

集成开发环境(Integrated Development Environment,简称IDE,也称为Integration Design Environment、Integration Debugging Environment)是一种辅助程序开发人员开发软件的应用软件,在开发工具内部就可以辅助编写源代码文本、并编译打包成为可用的程序,有些甚至可以设计图形接口。IDE通常包括编程语言编辑器、自动构建工具、通常还包括调试器。有些IDE包含编译器/解释器,如微软的Microsoft Visual Studio,有些则不包含,如Eclipse、SharpDevelop等,这些IDE是通过调用第三方编译器来实现代码的编译工作的。有时IDE还会包含版本控制系统和一些可以设计图形用户界面的工具。许多支持面向对象的现代化IDE还包括了类别浏览器、对象查看器、对象结构图。虽然目前有一些IDE支持多种编程语言(例如Eclipse、NetBeans、Microsoft Visual Studio),但是一般而言,IDE主要还是针对特定的编程语言而量身打造(例如Visual Basic)。

Wiki 的说法和我认可的 IDE 解释基本是一致的,IDE 核心就是用来辅助程序员做开发的,所以个人认为一个好的 IDE 应该是让你忘记 IDE 本身,只让你安静地沉浸在书写代码的过程中(划重点:点题了哦)。

接下来就让我说说 IntelliJ IDEA 是如何友好地做好它的本分。

JetBrains 的友好

个人认为不管是框架、IDE 或是其他技术什么的,好的文档就是成功的一半。我们来看看 JetBrains 是如何做好这一步的。

IntelliJ IDEA 的官网:

https://www.jetbrains.com/idea/

首页简洁明了地告诉了我们它有什么特点,当前最新版本是哪个版本,有哪些新特性,支持哪些框架,告诉我们社区版本和旗舰版有哪些区别差别,哪里可以下载、购买,哪里有学习资料。

对于一个新人来讲,该重点关注的基本都告诉了,现在我帮大家整理了这些友好的细节。

新版本的新特性:https://www.jetbrains.com/idea/whatsnew/

每年新版本的特性都会在这个地址上得到体现,有 Gif 截图,有文字,有的复杂特性还有 YouTube 视频讲解。

IntelliJ IDEA 主要特性介绍:https://www.jetbrains.com/idea/features/

针对新人学习的指导页面:https://www.jetbrains.com/idea/documentation/

YouTube 频道:https://www.youtube.com/user/JetBrainsTV

官网的插件库搜索、插件分类:https://plugins.jetbrains.com/

社区版和旗舰版本的完整对比:https://www.jetbrains.com/idea/features/editions_comparison_matrix.html

官网的博客:https://blog.jetbrains.com/idea/

Markdown 格式的帮助中心:https://www.jetbrains.com/help/idea/2017.1/meet-intellij-idea.html

官网的社区: https://intellij-support.jetbrains.com/hc/en-us/community/topics

官网的 Bug 跟踪:https://youtrack.jetbrains.com/issues/IDEA

请问:这么用心做好文档的的 IDE 团队不多吧?

IntelliJ IDEA 的友好

IntelliJ IDEA 当前最新版本为:2017.1

2017 为大版本号,从 2016 年开始用年份命名,一年一个大版本。

1 小版本号,一般一年下来有 5 ~ 8 次的小版本更新。

IntelliJ IDEA 的友好主要体现在对各类技术的支持,以及一些人性化的辅助操作,只是这些人性化的具体操作太细节我在这里没办法讲,我也在 Github 教程也写过,对那一方面感兴趣的可以直接看下:IntelliJ IDEA 简体中文专题教程,这里我只罗列下 IntelliJ IDEA 对各类技术的支持。

对主流 Java 框架的支持

Spring AOP/@AspectJ

Spring Batch

Spring Boot

Spring Cloud

Spring Data

Spring Integration Patterns

Spring MVC

Spring OSGi

Spring Security

Spring Support

Spring Web Flow

Spring Web Services

Spring WebSocket

Java EE: Batch Applications

Java EE: Bean Validation Support

Java EE: Contexts and Dependency Injection

Java EE: EJB, JPA, Servlets

Java EE: Java Server Faces

Java EE: JMS, JSON Processing, Concurrency, Transaction

Java EE: RESTful Web Services (JAX-RS)

Java EE: Web Services (JAX-WS)

Java EE: WebSockets

Struts

Hibernate

Mybatis(需要第三方插件)

对主流容器的支持

Tomcat

TomEE

Jetty

JBoss

Glassfish

Resin

`WebLogic“

对 JVM 语言的支持

Java(Java8 / Java9)

Scala

Groovy

Kotlin

对版本控制的支持

Git

SVN

TFS

ClearCase

Mercurial

对构建工具的支持

Maven

Gradle

Ant

对各类 Clouds 工具的支持

Heroku

OpenShift

CloudBees

CloudFoundry

Google APp Engine

对数据库工具的支持

MySQL

PostgreSQL

DB2

H2

SQL Server

对移动端 Hybrid 开发的支持

PhoneGap

Cordova

Ionic

对 Tasks 的支持

JIRA

YouTrack

Redmine

Trello

Gitlab

Github

对 Android 的支持

对 Docker 的支持

对主流前端的支持,在这一点上 Eclipse / MyEclipse 拍马不急 IntelliJ IDEA 啊,毕竟基于 IntelliJ IDEA 架构的还有一个前端 IDE 神器叫做 WebStorm,下面会讲到。

WebStorm 的友好

说了后端 IDE 我们再来说说前端 IDE:WebStorm,来看看 JetBrains 团队的用心。

WebStorm 当前最新版本为:2017.1。

官网特性的说明页面: https://www.jetbrains.com/webstorm/features/coding-assistance.html。

简单的概括就是支持下面列表内容:

构建工具:Grunt、Gulp、npm Scripts

工作流:Yeoman

Hybrid 的支持:PhoneGap、Cordova、Ionic

测试相关:Mocha、Jest

检查相关:ESLint、JSCS、TSLint、Stylelint、JSHint、JSLint

JS 集:JavaScript、ECMAScript 6、TypeScript、CoffeeScript

样式相关:Emmet、Less、Sass、SCSS、Stylus code、PostCSS

JS 库:React、React Native、Angular、Vue.js

框架:Meteor

Trace 工具:spy-js

其他语言支持:Dart

容器:Docker For Node.js

是不是目前流行的前端技能树它基本都囊括了?至于写代码过程的提示、重构、调试这个需要你自己花点时间去感受。

从上面的 IntelliJ IDEA / WebStorm 的友好清单我们可以知道,你目前要用的东西,基本别人都给你准备好了,你是不是只要好好写代码就行了?

所以,把我把它叫做:沉浸式的 IDE,是否有误?(划重点:再次点题)

IntelliJ IDEA 缺点

编辑超大文件不靠谱,易卡顿或直接卡死。

相对于一些专用工具,显得不够专业:比如批量修改项目中的文件编码效果就很差劲。

消耗大量硬件资源:IntelliJ IDEA 要求内存大,并且还要用的流畅还需要固态硬盘辅助。站在个人角度,作为一个开发者,并且打算未来几年继续做开发,如果你连花费点工资把内存升级到 16G、32G 都不愿意,那没人能帮你解决任何问题。特别是做 Java 开发的人员,在做微服务类的项目的时候,一般需要同时启动多个项目,内存一会就上来的,8G 内存完全不够用的。

IDE 看法

说了这么多夸张的 IDE 的友好,有些人会认为钻研这类傻瓜 IDE 是一种奇淫技巧,完全不是一个代码大牛应该做的事情,在这些人眼里一个真正的代码大牛都应该是 Vim、Emacs。

也许这些人是对的,这类高手应该是那种写底层核心关键代码者,或者是某些高级算法核心代码者。我们这类用 IDE 的小白确实没法跟别人比。人跟人是有差别的我们需要承认。

即使目前的现实是残酷的,也得标明我的愿景:作为普通人,我们不应该需要花大量时间去把一个简洁的编辑器 Vim 变成复杂高效 IDE,本身市面上已经有这类 IDE 帮我们很好地做好了这一切,我们只要花时间学习喜欢的开发语言,学习计算机基础知识、背好单词,其他的都交给 IDE 去就行了。

做为一个 Java 开发者,你除了学习 Java 基础、Java 框架、关系型数据库、NoSQL、Linux,可能还要学习前端知识、移动端,这些还是没要求你精通。所以作为一个年轻的开发者,你的学习时间并没有你现象的那么多。

最后

如果开完文章后的你已经开始向往 IntelliJ IDEA,那先提前恭喜你,等你学会了 IntelliJ IDEA 以后,你同时也会了 JetBrains 家其他的 IDE,一个 IDE,N 个 IDE。

请明白,有一种好叫做:同行的衬托。IntelliJ IDEA 的好,也只是因为其他家 IDE 做得还不够。希望未来有更强大的 IDE 诞生,或者 JetBrains 的不断强大。

也许有那么一天,你把 IntelliJ IDEA 当做记事本使用,跟我一样用它写今天这篇文章,那应该说明你已经忘记它就是一个所谓的 IDE。

资料

IDE 份额 1:Java Tools and Technologies Landscape Report 2016

IDE 份额 2:Java Tools and Technologies Landscape Report 2016: Trends and Historical data

Wiki IDE:https://zh.wikipedia.org/wiki/%E9%9B%86%E6%88%90%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83

JetBrains 办公环境: https://blog.jetbrains.com/blog/2013/12/16/jetbrains-st-petersburg-rd-lab-grows-moves-to-new-office/

本文文字及图片出自 gitbook.cn

你对本文的反应是:

0

俺的神呀 0

赞一个 0

飘过~ 0

强 0

很实用 0

好文 0

笑死了 0

mark 0

敬佩 0

垃圾 0

0

看样子你已经点过这个了!

抱歉,你最多只能点三个!

你也许感兴趣的:

Intellij IDEA神器,那些让人爱不释手的提效小技巧

IntelliJ IDEA酷炫插件系列

你们都在用IntelliJ IDEA吗?或许你们需要看一下这篇博文

译 | 5个Eclipse应该向IntelliJ IDEA学习的优秀特性

Intellij IDEA神器那些让人爱不释手的小技巧

为什么比起 IntelliJ IDEA,我仍然更喜欢 Eclipse

谷歌表示,Android开源项目(AOSP)并未被“终止”,尽管Pixel系列的变更影响了自定义ROM开发

Java三十载:缔造科技传奇的“Java之父”

微软希望Windows Update能够管理所有应用程序

对 Rust 10 年的押注以及我对未来的期待

发表回复 取消回复您的邮箱地址不会被公开。 必填项已用 * 标注

评论 *

显示名称 *

邮箱 *

网站

Copyright © 2022 世界杯预选赛欧洲区_世界杯在哪个国家举行 - kd896.com All Rights Reserved.