偶然间看到了Eclipse又搞出了一个叫Che的幺蛾子,本着程序员的折腾之心,自然要去折腾一下,看看这个是一个很“扯”的东西,还是说会成为日常工作的又一利器
Next-Generation Eclipse IDE
Eclipse Che is a developer workspace server and cloud IDE.
上面是Che官网上的介绍,可以看到Che的定位是一款云IDE,同时,首页的大图也表示,Che运行在浏览器上
下载,开搞
运行Che
跟Eclipse一样,跑起Che来也需要Java,Che很明确的表明了,需要Java8以上的版本,以及Maven 3.3.1,需要注意的是,运行Che还需要安装Docker1.8+
执行bin下的che.sh(win用户对应che.bat),就可以启动Che了。启动的速度很快,startup出现后,打开浏览器,默认配置的话,在localhost:8080就可以看到che的主页了
新建项目
好久没有用过Eclipse,不知道Eclipse现在长什么样子,不过Che的界面,要比我印象中的Eclipse界面显得大方、简洁了许多,印象分先给个好评(个人用过的最新的版本是Kepler)
从图中可以看到,Che提供的配置项还是略少。今天只打算做一个简单的使用,所以这里创建了一个基本的web项目
Workspace
单击新建之后,从日志中可以看到,Che创建了一个codenvy/ubuntu_jdk8的Docker镜像,作为Workspace的Master,一会儿项目运行的时候,也是运行在这个镜像之中。项目的代码被保存在${CHE_HOME}/workspaces下,同时,在Docker镜像的/projects下也会有一份代码
需要注意的一点,由于workspace配置在容器中,maven下载的依赖库,也会下载到workspace的容器中,无法使用本地的库。鉴于某种众所周知的原因,建议大家先配置一下.m2/settings.xml
不知道出于什么考虑,即使是对于同一个Workspace,每次启动的时候也会去创建不同的镜像,对于我本地测试的来说,每次init workspace后,都需要去重新配置settings.xml。如果部署在server上的话,应该就没有这种麻烦了
IDE
感觉IDEA流行起来之后,黑色成为各大IDE的新宠,Che的主色调也是黑色,视觉上还是蛮好看的
updating dependency fail两次之后,终于成功加载Spring依赖,坑爹的是,每次fail之后,没有找到直接update的地方,暂时使用的方法是,在主页面上,选中当前项目,再次选择open in ide,重新update
比较奇怪的一点是,虽然Editor区域会提示报错,但是左侧文件树上,报错的文件没有任何提示,估计这一点后续会有优化
另一个坑的一点是,没能在五分钟之内找到调字体的方式(╯‵□′)╯︵┻━┻(虽然作为一web IDE,是可以通过修改css文件的方式,实现字体的修改)
配置上要比本地的IDE少了很多可选项,很惊喜的是,可以选择Vi或者Emacs模式,作为一Vim党还是激动了一下,然而......光标前面还保留着默认模式的竖线,而且不支持命令模式(输入冒号直接插入了一个“:”),果断换回了默认的模式
可以设置一下本地代码的检查级别,算是一个强迫症福利(如果可以自定义代码检查规则,对于有代码检查的公司来说,也将会是一个福利)
Editor
再来说一下editor本身
我是在本地起的服务,输入代码什么的体验还是很流畅的。需要吐槽的是自动补全的功能,输入了小于号“<”后,自动补出了“<>”,个人认为这是一个值得优化的点
editor本身是支持自动保存的,刚键入的代码,即使刷新之后也不会丢失。而且很好的屏蔽了ctrl + s键,不会出现习惯性的保存之后,弹出保存网页的尴尬
调试
Che的启动是在editor上方,CMI处可以选择启动命令并执行 。默认会配置一些基本的命令,如mvn clean install、catalina.sh run等
为了使用debug模式,需要新建一条debug用命令(其实就是把run的命令copy过来加上jpda)
$TOMCAT_HOME/bin/catalina.sh jpda run
启动上一条命令,待tomcat启动后,选择Run --> Remote debug,我是在本地启动的,所以直接选择localhost:8000就可以了
调试界面的话,相对于本地的ide就要“简朴”了许多,查看、修改变量值,单步调试等都可以实现,不过界面上相对本地IDE来说就不那么友好了
一点总结
本次只是做了一个简单的试用,一些功能如插件安装、git、热部署等未做尝试。整体来说,Che是一款不是很像Eclipse的Eclipse系IDE。相较于我们熟悉的Eclipse IDE(个人用的最后的版本应该是Kepler)来说,变化还是很大。易用性上来说,估计开发、调试一些小项目不成问题,简单的使用中,没有发现太多的不适,优化做的还不错,当然作为第一个Release版本,相信一些小问题后续还有有所改进(并没有对配置进行深入的探究,可能个人认为的“小问题”,实际上是可以通过配置来解决的)
随着近些年网络的飞速发展,很多以前不敢想象的事情慢慢变成了现实。以前很多本地的应用,现在在浏览器上就可以使用,H5等技术赋予了互联网更多的想象力。Chrome OS刚出来的时候,一部分对其不屑一顾,认为一个浏览器能做的事情太少,但我们确实正在迎来一个只使用浏览器就可以完成大部分工作的时代
个人对web IDE这个领域了解的并不多,只是从一个程序员的角度来说,对这一领域还是充满了期待。如果以后真的由一款完全可以满足日用的web IDE,那么我十有八九会使用它,暂时想到的优势如下:
- 不再有繁琐的配置环境的过程,只需要打开浏览器,便能将更多的精力放在代码上面
- 而且利用高性能的服务器,可以获得更好的调试体验
- 通过将workspace部署在云端,用户端只需要一个可以打开浏览器的电脑,也能极大降低用户的终端的成本
当然,现阶段Che也有一些不足:
- 功能有待完善
- 自定义配置显得不足
- 界面体验上相较于IDEA、Eclipse不够友好
- 一些细节能然值得优化
后续我也会在公司的开发机上试用一下Che,测试一下开发稍大一点的项目,Che会有哪些优势与不足
附上Che的一些信息
官网:http://www.eclipse.org/che
文档:https://eclipse-che.readme.io/docs
github:https://github.com/eclipse/che
个人的调试环境:
- Ubuntu 14.04
- Java 1.8.0_60
- Maven 3.3.3
- Docker 1.10.2
使用过程中没出现环境问题