使用Cloud Studio打造自己专属的云端开发环境

Cloud Studio是什么

CODING官网说的最清楚:

  • 完全基于浏览器的 IDE(在线集成开发环境)
  • 由CODING自主研发
  • 能免除了繁杂的本地环境搭建,打开浏览器就能写代码

第一次遇到Cloud Studio是在腾讯云开发者平台,前面不是说Cloud Studio是CODING家的吗?不矛盾,根据腾讯云开发者平台官网可得出两者关系:腾讯云开发者平台是腾讯云与 CODING 共同为开发者打造的云端工具平台,这个平台包括的工具有CODING 个人版、Cloud Studio、CODING 企业版

所以说Cloud Studio有着腾讯的support,实际体验了下后,觉得很强。

为什么要用Cloud Studio

  • Visual Studio现在都已经进化到2019了,但机房电脑的VS往往还是9年前的VS 2010

  • 每回上机都要带电脑,对于懒人很不友好

  • 根据腾讯文档推出的的协同编辑功能,可以预感到Cloud Studio将来在结对合作编程上会不断进化

  • 代码云端自动保存,不用再拿U盘copy来copy去了

如何使用Cloud Studio

要使用Cloud Studio就要先创建工作空间,创建项目有两种方式:基于已有项目创建、从模板创建。这里先以从模板创建为例。

注册账号

https://studio.dev.tencent.com/

简单,跳过

新建工作空间

进入dashboard:https://studio.dev.tencent.com/dashboard/workspace

点击新建工作空间。可以选择的选项有:来源、项目、运行环境。这里来源我选腾讯云开发者平台、项目为从模板(Blank)创建。基于这个模板创建的工作空间中,C/C++的开发环境是已经预置好了的。而基于JavaDemo模板创建,则java的开发环境就不用你再自己配置了。

这里我分别基于这两个模板创建了两个工作空间

编写代码

体验挺不错的,界面和功能简单但不简陋。

编译与执行代码

在Cloud Studio中,要编译和执行代码,目前只能通过在终端输入命令来实现。VS Code中也是默认使用这种方式来编译与执行代码的,只不过有了Code Runner这个插件,直接一个ctrl+alt+n就能编译执行了。以下是编译和执行代码的命令。

C/C++

1
2
3
4
g++ GuessNumber.cpp -o GuessNumber && ./GuessNumber
# 这段代码做了两件事:
# 用g++命令编译GuessNumber.cpp(源文件),得到可执行文件。其中-o用来指定生成的可执行文件名
# 最后,执行可执行文件

要注意./GuessNumber中的./不能省略,否则会提示找不到可执行文件

另外,如果源文件不是放在/home/coding/workspace下,而是放在其子目录下,则要先cd到源文件所在目录。例如GuessNumber.cpp被放在/home/coding/workspace/trial,则上述命令应该修改为:

1
cd trial && g++ GuessNumber.cpp -o GuessNumber && ./GuessNumber

Java

1
2
3
4
javac GuessNumber.java && java GuessNumber
# 这段代码做了两件事:
# 用javac命令编译GuessNumber.java(源文件),得到GuessNumber.class(字节码文件)
# 用java命令执行编译得到的字节码文件

注意点和C/C++一致,不再赘述。下面我们来深入探索下~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
➜  workspace git:(master) ✗ cat /etc/issue # 可见当前这个Java工作空间是基于Ubuntu系统的(之前那个C/C++工作空间也是如此)
Ubuntu 16.04.5 LTS \n \l

➜ workspace git:(master) ✗ sudo apt install tree # 安装tree这个小工具,其作用:list contents of directories in a tree-like format
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
openssh-sftp-server
Use 'sudo apt autoremove' to remove it.
The following NEW packages will be installed:
tree
0 upgraded, 1 newly installed, 0 to remove and 48 not upgraded.
Need to get 40.6 kB of archives.
After this operation, 138 kB of additional disk space will be used.
Get:1 http://mirrors.163.com/ubuntu xenial/universe amd64 tree amd64 1.7.0-3 [40.6 kB]
Fetched 40.6 kB in 7s (5,764 B/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package tree.
(Reading database ... 32133 files and directories currently installed.)
Preparing to unpack .../tree_1.7.0-3_amd64.deb ...
Unpacking tree (1.7.0-3) ...
Setting up tree (1.7.0-3) ...

➜ workspace git:(master) ✗ tree # 查看当前工作空间的目录树
.
├── log.md
├── mvnw
├── mvnw.cmd
├── my
│ ├── demo.java
│ ├── GuessNumber.class
│ ├── GuessNumber.java
│ └── Number.java
├── pom.xml
├── README.md
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── coding
│ │ │ └── studiodemo
│ │ │ └── StudioDemoApplication.java
│ │ └── resources
│ │ ├── application.properties
│ │ └── templates
│ │ └── index.html
│ └── test
│ └── java
│ └── com
│ └── coding
│ └── studiodemo
│ └── StudioDemoApplicationTests.java
└── target
├── classes
│ ├── application.properties
│ ├── com
│ │ └── coding
│ │ └── studiodemo
│ │ └── StudioDemoApplication.class
│ └── templates
│ └── index.html
└── test-classes
└── com
└── coding
└── studiodemo
└── StudioDemoApplicationTests.class

24 directories, 17 files
# 可见目录树是比较复杂的,如果不是实际开发,只是日常写代码,那就用不着这么verbose。所以我创建了my目录,用于上机时随手敲代码。因此使用javac命令编译源文件前,应当cd到源文件所在目录my。
# log.md也是我自己创建的,用于记录对当前工作空间的重要操作,方便日后出问题时溯源

另外

除了Cloud Studio,VS Studio Online也是一个值得观望的云端开发环境。