【腾讯云 Cloud Studio 实战训练营】一个新的趋势已来

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。

  • 对于文章中出现的任何错误请大家批评指出,一定及时修改。
  • 有任何想要讨论和学习的问题可联系我:zhuyc@vip.163.com。
  • 发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

【腾讯云 Cloud Studio 实战训练营】一个新的趋势已来

本文关键字:腾讯云、云IDE、Cloud Studio、数据可视化

文章目录

  • 【腾讯云 Cloud Studio 实战训练营】一个新的趋势已来
    • 一、云市场与云开发
      • 1. 云市场的变革
      • 2. 云开发的趋势
    • 二、Cloud Studio
      • 1. 产品介绍
      • 2. 资费介绍
      • 3. 产品特点
      • 4. 使用流程
    • 三、案例应用体验
      • 1. 选择应用
      • 2. 项目初始化
      • 3. 项目运行
      • 4. 工作空间管理
      • 5. SSH连接
    • 四、实时数据可视化
      • 1. 项目创建
      • 2. 数据接口准备
      • 3. 引入需要的组件
      • 4. 编写核心代码
      • 5. 运行结果
    • 五、发布到代码仓库

一、云市场与云开发

1. 云市场的变革

回顾近10年的云市场的发展,可以说是产生了巨大的变化,最早云资源主要专注于服务器、云存储、域名、有限的云服务【如SMS、邮件】等。随着软件、硬件、大数据领域的不断发展,云市场能够提供的服务不断增多,包括云计算、对象存储、云数据库、音视频直播、代码托管等等。不仅如此,每一项产品也都在纵深挖掘,细化和扩充各种服务类别,拿轻量应用服务器来举例,已经可以快速创建网站、Web应用、小程序/小游戏、APP、电商应用、云盘、图床和开发测试环境等等,并且这已经是各大厂商的标配:

笔者也工作了近10年,上面提到的这些变化发生在最近几年,起初并不觉得这会对开发模式或整体的产品开发流程有什么大的影响,只是优化了运维部署以及封装了很多开箱即用的资源,为企业进一步降低了成本。但是最近Serverless、低代码平台、云IDE不断涌现,一次又一次对开发模式产生着冲击。之前在Serverless刚刚推出的时候就在腾讯云上玩耍了一下,不过只限于Demo。数月之前,实现了一个较为完整的案例,使用Amazon的各种云服务来支撑一个常见的电商场景。

整个过程基本不需要代码编写,只需要理清逻辑关系,短短几个小时就可以假设出一个功能较为完善的产品服务端,十分的高效。更重要的是,相当于一并完成了项目开发、部署上线的过程,因为全部流程都是在云端直接完成的。

2. 云开发的趋势

这不禁让我感到一丝担忧,虽然看似还没有大规模的使用,但绝对会成为一个趋势,因为整个流程中涉及到的云服务【云函数、云数据库等】都已经很成熟了,而现在又可以将他们用可视化、非代码的方式连接在一起。诚然,整个流程也许不能应对复杂的业务场景,必须由开发者在代码级别亲自操刀。正在小编感觉松一口气时。。。 云IDE再次出现!起初,我还是将其当作一个玩具来看的,毕竟真正的产品开发可能并不会采用,但是试用过之后,我的想法再一次产生了改变。一个很关键的点,开发者的不可代替性进一步被降低,这里指的是不同语言和技术之间的壁垒。
对于工作多年的开发者来说,学习一门新的语言其实是相对容易的,因为开发者此时已经有了相对完备的编程思维,对于不同编程语言的工作原理也是掌握的比较快的,反而遇到更多的是环境、规范方面的问题,并不是说这些问题有多么的难,而是学习成本主要集中在了这部分。设想一下,假如现在有一个工具,可以一键帮你搞定你需要的项目环境,并且不会搞乱你自己的系统环境,同时,自带一个Demo,让你一目了然项目的基本工作流程,这会是一种什么样的体验?

其实云IDE并不是最近才有的,最早可以追溯到很多年前,当时就已经有了项目管理以及自动化部署的工具,而云IDE本身的意义也不仅仅是将本地的编译器移动到了网页上。对于初学者而言,他们的起跑线已经不一样了,学习门槛也不一样了,感觉马上就要受到后浪又一轮的鞭挞了,好在对于开发者来说只要有意的去学习和留意,是很容易掌握的,而且并没有太多的学习成本。

二、Cloud Studio

之前试用过不止一个云IDE产品,来介绍一下本文的主角:腾讯云 Cloud Studio。

1. 产品介绍

以下简介来自官方:

  • Cloud Studio 是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用 Cloud Studio 时无需安装,随时随地打开浏览器就能在线编程。
  • Cloud Studio 作为在线 IDE,包含代码高亮、自动补全、Git 集成、终端等 IDE 的基础功能,同时支持实时调试、插件扩展等,可以帮助开发者快速完成各种应用的开发、编译与部署工作。

直接的感受就是把VS Code搬到了云端,并且支持我们需要的所有常用功能,我们也可以像在本地那样方便的拖拽窗口。同时,在项目运行过程中,可以随时访问,虽然没有绑定域名,但是却十分的方便。

2. 资费介绍

目前Cloud Studio每月赠送3000分钟标准型工作空间,也就是50小时,可以说是十分良心了,不知道会持续多久,大家趁现在赶快体验!

  • 标准型
    • CPU:2核/4GB
    • 存储:8GB
    • 资费:0.1 元/分钟
  • 计算型
    • CPU:4核/8GB
    • 存储:16GB
    • 资费:0.2 元/分钟
  • 专业性
    • CPU:8核/16GB
    • 存储:32GB
    • 资费:0.4 元/分钟

3. 产品特点

  • 应用场景【来自官方描述】
    • 快速启动项目:使用 Cloud Studio 的预置环境,您可以直接创建对应类型的工作空间,快速启动项目进入开发状态,无需进行繁琐的环境配置。
    • 实时调试网页:Cloud Studio 内置预览插件,可以实时显示网页应用。当您的代码发生改变之后,预览窗口会自动刷新,这样您就可以在 Cloud Studio 内实时开发调试网页了。
    • 远程访问云服务器:Cloud Studio 支持您连接自己的云服务器,这样就可以在编辑器中查看云服务器上的文件,进行在线编程和部署工作。
  • 支持语言
    • C语言
    • C++
    • C#
    • Java
    • Python
    • JavaScript
    • Go
    • R
    • Rust

4. 使用流程

  • 官方地址:https://www.cloudstudio.net
  • 注册登录


这里可以使用多种方式登录,支持微信、Github和CODING,其中CODING可以用于企业级项目管理和开发,提供了一套完整的在线项目管理功能,这里不多赘述。这里需要注意,如果使用Github登录,在使用之前需要先完成实名认证,入口在右上角的用户设置:

  • 功能界面

主要的工作界面十分简洁,我们首先需要创建一个工作空间,可以使用模板创建,也可以手动创建。手动创建适用于想要导入已有的项目,或者连接到已有的云服务器。本文将主要演示通过模板创建,并在其基础上进行开发,最后发布到Git仓库。

三、案例应用体验

1. 选择应用

应用推荐中我们可以直接体验一些完整的应用,当然在此之上修改也是可以的,比如我们打开一个贪吃蛇游戏:

2. 项目初始化

然后我们点击Fork按钮,开始初始化的流程。一般会根据项目空间的配置自动打开README.md文档,并且执行初始化的命令,我们只需要等待完成即可。

3. 项目运行

有些项目需要使用外置浏览器打开,现在我们已经完成了项目的初始化,并且正在运行中。

如果内置浏览器不能正常预览【重新打开也是一个有效的方法】,可以切换到端口标签页,然后选中正在运行的进程,再点击使用浏览器打开:

此时,只要保证项目运行,我们就可以随时访问了,十分的方面,效果如图:

4. 工作空间管理

创建一个工作空间后,我们可以随时关闭标签页,并在开发空间页面找到正在运行中的实例:

在这个界面中我们可以升级配置或终止实例,最后删除。

5. SSH连接

如果需要SSH链接,可以按如下操作:

粘贴到本地终端执行即可【第一次连接输入yes】,然后我们可以在如下路径找到当前的项目:

四、实时数据可视化

接下来,使用一个最基础的模板写一个比较实用的案例。从公共的天气数据接口获取数据,然后每分钟进行更新,同样也适用于其它类型的数据可视化。

1. 项目创建

空间模板中选择Python,然后等待项目启动。这是一个基础的Python Web Demo,主要修改其中的index.html文件:

2. 数据接口准备

OpenWeather是一个免费的天气查询接口,我们可以从其中获取数据,然后做分钟级的数据更新【这主要受限于数据接口本身的数据更新频率以及实际的需要】。

  • 接口注册地址

https://openweathermap.org,注册后邮件验证即可使用【可能需要等待30分钟来激活】。

  • 接口调用样例

https://api.openweathermap.org/data/2.5/weather?lat=40.7128&lon=-74.0060&units=metric&appid={YOUR_KEY}&lang=zh_cn

  • 数据返回样例
{"coord": {"lon": -74.006,"lat": 40.7128},"weather": [{"id": 800,"main": "Clear","description": "晴","icon": "01d"}],"base": "stations","main": {"temp": 30.09,"feels_like": 29.68,"temp_min": 28.3,"temp_max": 31.72,"pressure": 1007,"humidity": 39},"visibility": 10000,"wind": {"speed": 8.23,"deg": 300,"gust": 12.35},...
}

我们可以使用温度、体感温度、湿度、风速等维度来构建一个不断更新的折线图。对应的字段为:main.temp,main.feels_like,main.humidity,wind.speed。

3. 引入需要的组件

关于图表部分,使用Echarts来完成,首先在页面中引入:

<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.4.2/echarts.min.js"></script>

然后初始化一个div,作为图表的显示区域:

<div id="main" style="width: 1200px; height: 800px;"></div>

4. 编写核心代码

删除页面中不需要的部分,然后编写核心的功能代码,同时修改一些样式【此处略去】:

let myChart = echarts.init(document.getElementById('main'));let dataX = [];  let dataTemp = [];  let dataFeelsLike = [];  let dataHumidity = [];  let dataWindSpeed = [];  function fetchDataAndUpdateChart() {// 如不工作,此处替换API KEYconst API_URL = 'https://api.openweathermap.org/data/2.5/weather?lat=40.7128&lon=-74.0060&units=metric&appid=a36f2258e0dfa67b4e2ec2dc19cdc4c7&lang=zh_cn';fetch(API_URL).then(response => response.json()).then(data => {let currentTime = new Date(data.dt * 1000).toLocaleTimeString();dataX.push(currentTime);dataTemp.push(data.main.temp);dataFeelsLike.push(data.main.feels_like);dataHumidity.push(data.main.humidity);dataWindSpeed.push(data.wind.speed);if (dataX.length > 10) {dataX.shift();dataTemp.shift();dataFeelsLike.shift();dataHumidity.shift();dataWindSpeed.shift();}let option = {title: {text: 'Weather Data in ' + data.name},tooltip: {trigger: 'axis'},legend: {data: ['温度', '体感', '湿度', '风速']},xAxis: {type: 'category',data: dataX},yAxis: [{type: 'value',name: '温度 (°C)'},{type: 'value',name: '风速 (m/s)',position: 'right'},{type: 'value',name: '湿度 (%)',position: 'right',offset: 80}],series: [{name: '温度',type: 'line',data: dataTemp},{name: '体感',type: 'line',data: dataFeelsLike},{name: '湿度',type: 'line',yAxisIndex: 2,data: dataHumidity},{name: '风速',type: 'line',yAxisIndex: 1,data: dataWindSpeed}]};myChart.setOption(option);}).catch(error => {console.error("Error fetching data:", error);});}// 初始加载数据并设置图表fetchDataAndUpdateChart();// 每分钟刷新一次数据setInterval(fetchDataAndUpdateChart, 60000);

5. 运行结果

代码编写完成后,我们在底部的终端窗口使用Ctrl + C终止进程,然后使用以下命令重新启动服务:

python ./app.py

最终结果如下:

五、发布到代码仓库

提交到代码库前要注意是否需要修改README和yml两个文件,然后按如下步骤操作即可:

授权通过后选择账号信息,然后再次点击该按钮,选择公有仓库或私有仓库。选择需要提交的文件,再次点击Publish Branch按钮:

最终效果如下:https://github.com/zhu123759/cloud-studio-python-data-view【提交到仓库时可以为项目重命名】

扫描下方二维码,加入CSDN官方粉丝微信群,可以与我直接交流,还有更多福利哦~
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/29926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二分法的应用

文章目录 什么是二分法&#x1f3ae;二分查找的优先级二分查找的步骤&#x1f4a5;图解演示&#x1f9e9; 代码演示&#x1fad5;python程序实现&#x1f408;‍⬛C程序实现&#x1f415;‍&#x1f9ba;C程序实现&#x1f42f;Java程序实现&#x1f433; 非常规类二分查找&…

vue3 - 使用reactive定义响应式数据进行列表赋值时,视图没有更新的解决方案

文章目录 1&#xff0c;问题2&#xff0c;原因3&#xff0c;解决方案一、再封装一层数据&#xff0c;即定义属性名&#xff0c;在后期赋值的时候&#xff0c;对此属性进行直接赋值三、使用数组的splice来直接更改原数组三、使用 ref 来定义数据 1&#xff0c;问题 在Vue 3.0 中…

【VS Code插件开发】通用功能(二)

&#x1f431; 个人主页&#xff1a;不叫猫先生&#xff0c;公众号&#xff1a;前端舵手 &#x1f64b;‍♂️ 作者简介&#xff1a;2022年度博客之星前端领域TOP 2&#xff0c;前端领域优质作者、阿里云专家博主&#xff0c;专注于前端各领域技术&#xff0c;共同学习共同进步…

word横向页面侧面页码设置及转pdf后横线变竖线的解决方案

在处理材料的时候&#xff0c;会遇到同一个文档里自某一页开始&#xff0c;页面布局是横向的&#xff0c;这时候页码要设置在侧面&#xff0c;方法是双击页脚&#xff0c;然后在word工具栏上选择“插入”——>“文本框”——>“绘制竖版文本框”&#xff0c;然后在页面左…

Python-OpenCV中的图像处理-几何变换

Python-OpenCV中的图像处理-几何变换 几何变换图像缩放图像平移图像旋转仿射变换透视变换 几何变换 对图像进行各种几个变换&#xff0c;例如移动&#xff0c;旋转&#xff0c;仿射变换等。 图像缩放 cv2.resize() cv2.INTER_AREAv2.INTER_CUBICv2.INTER_LINEAR res cv2.r…

岩土工程仪器多通道振弦传感器信号转换器应用于桥梁安全监测

岩土工程仪器多通道振弦传感器信号转换器应用于桥梁安全监测 桥梁作为交通运输的重要节点&#xff0c;其安全性一直备受关注。不同于其他建筑物&#xff0c;桥梁所处的环境复杂多变&#xff0c;同时&#xff0c;其所需承受的负荷也相对较大&#xff0c;这就需要对桥梁的安全进…

北京多铁克FPGA笔试题目

1、使用D触发器来实现二分频 2、序列检测器&#xff0c;检测101&#xff0c;输出1&#xff0c;其余情况输出0 module Detect_101(input clk,input rst_n,input data, //输入的序列output reg flag_101 //检测到101序列的输出标志 );parameter S0 2d0;S1 2d1;S2 2d2;S4 …

2023-08-07 LeetCode每日一题(反转字符串)

2023-08-07每日一题 一、题目编号 344. 反转字符串二、题目链接 点击跳转到题目位置 三、题目描述 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、…

SpringBoot3文件管理

标签&#xff1a;上传.下载.Excel.导入.导出&#xff1b; 一、简介 在项目中&#xff0c;文件管理是常见的复杂功能&#xff1b; 首先文件的类型比较多样&#xff0c;处理起来比较复杂&#xff0c;其次文件涉及大量的IO操作&#xff0c;容易引发内存溢出&#xff1b; 不同的…

redis的配置和使用、redis的数据结构以及缓存遇见的常见问题

目录 1.缓存 2.redis不仅仅可以做缓存&#xff0c;只不过说他的大部分场景&#xff0c;是做缓存。本地缓存重启后缓存里的东西就没有了&#xff0c;但是redis有。 3.redis有几个特性:查询快&#xff0c;但是是放到内存里的〈断电或者重启&#xff0c;数据就丢了)&#xff0c…

Vue组件化开发思想;Vue的全局组件;Vue的局部组件;Vue的开发模式和解析;Vue CLI安装和使用;Vue项目的创建方式–Vite

目录 1_Vue组件化开发思想1.1_认识组件化开发1.2_Vue的组件化1.3_注册组件的方式 2_Vue的全局组件3_Vue的局部组件4_Vue的开发模式和解析4.1_Vue的开发模式4.2_单文件的特点4.3_如何支持SFC4.4_VSCode对SFC文件的支持 5_Vue CLI安装和使用5.1_Vue CLI脚手架5.2_Vue CLI 安装和使…

基于react-native的简单消息确认框showModel

基于react-native的简单消息确认框showModel 效果示例图组件代码ShowModel/index.jsx使用案例device.js安装线性渐变色 效果示例图 组件代码ShowModel/index.jsx import React, {forwardRef, useImperativeHandle, useState} from react; import {View,Text,Modal,TouchableOp…

06微服务间的通信方式

一句话导读 微服务设计的一个挑战就是服务间的通信问题&#xff0c;服务间通信理论上可以归结为进程间通信&#xff0c;进程可以是同一个机器上的&#xff0c;也可以是不同机器的。服务可以使用同步请求响应机制通信&#xff0c;也可以使用异步的基于消息中间件间的通信机制。同…

Vue2-简介、模板语法、数据绑定、MVVM、数据代理、事件处理

&#x1f954;&#xff1a;成功之后就能光明正大地回望所有苦难 VUE-Day1 Vue简介1、Vue是什么&#xff1f;2、谁开发的&#xff1f; 发展历程&#xff1f;3、Vue的特点4、容器和实例、实例中的el和data总结 Vue模板语法插值语法指令语法 数据绑定1.单向数据绑定&#xff08;v-…

51单片机学习--DS18B20温度读取温度报警器

需要先编写OneWire模块&#xff0c;再在DS18B20模块中调用OneWire模块的函数 先根据原理图做好端口的声明&#xff1a; sbit OneWire_DQ P3^7;接下来像之前一样把时序结构用代码模拟出来&#xff1a; unsigned char OneWire_Init(void) {unsigned char i;unsigned char Ac…

opencv基础49-图像轮廓02-矩特征cv2.moments()->(形状分析、物体检测、图像识别、匹配)

矩特征&#xff08;Moments Features&#xff09;是用于图像分析和模式识别的一种特征表示方法&#xff0c;用来描述图像的形状、几何特征和统计信息。矩特征可以用于识别图像中的对象、检测形状以及进行图像分类等任务。 矩特征通过计算图像像素的高阶矩来提取特征。这些矩可以…

Towards Open World Object Detection【论文解析】

Towards Open World Object Detection 摘要1 介绍2 相关研究3 开放世界目标检测4 ORE:开放世界目标检测器4.1 对比聚类4.2 RPN自动标注未知类别4.3 基于能量的未知标识4.4 减少遗忘 5 实验5.1开放世界评估协议5.2 实现细节5.3 开放世界目标检测结果5.4 增量目标检测结果 6 讨论…

VoxWeekly|The Sandbox 生态周报|20230807

欢迎来到由 The Sandbox 发布的《VoxWeekly》。我们会在每周发布&#xff0c;对上一周 The Sandbox 生态系统所发生的事情进行总结。 如果你喜欢我们内容&#xff0c;欢迎与朋友和家人分享。请订阅我们的 Medium 、关注我们的 Twitter&#xff0c;并加入 Discord 社区&#xf…

【Vue3】keep-alive 缓存组件

当在 Vue.js 中使用 <keep-alive> 组件时&#xff0c;它将会缓存动态组件&#xff0c;而不是每次渲染都销毁和重新创建它们。这对于需要在组件间快速切换并且保持组件状态的情况非常有用。 <keep-alive> 只能包含&#xff08;或者说只能渲染&#xff09;一个子组件…

CANoe通过Frame Histogram窗口统计报文周期(方便快捷)

文章目录 效果展示1.插入Frame Histogram窗口2.Activate3.运行CANoe&#xff0c;停止后查看write窗口 效果展示 统计报文周期信息输出在write窗口。 1.插入Frame Histogram窗口 2.Activate 3.运行CANoe&#xff0c;停止后查看write窗口 统计报文周期信息输出在write窗口。