讲 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 年的押注以及我对未来的期待
发表回复 取消回复您的邮箱地址不会被公开。 必填项已用 * 标注
评论 *
显示名称 *
邮箱 *
网站