【腾讯云 Cloud Studio 实战训练营】用于编写、运行和调试代码的云 IDE泰裤辣

news2024/11/26 4:36:22

文章目录

    • 一、引言✉️
    • 二、什么是腾讯云 Cloud Studio🔍
    • 三、Cloud Studio优点和功能🌈
    • 四、Cloud Studio初体验(注册篇)🎆
    • 五、Cloud Studio实战演练(实战篇)🔬
      • 1. 初始化工作空间
      • 2. 安装 antd-mobile
      • 3. 安装 less 和 less-loader
      • 4. 暴露 webpack 配置文件
      • 5. 修改 config/webpack.config.js 文件
      • 6. 安装 normalize
      • 7. 上传项目需要的素材
      • 9. 创建indes.less文件并上传代码
      • 10. 启动该项目
      • 11. 清理实验
    • 六、Cloud Studio体验心得🫂
    • 七、总结🪢
    • 八、使用过程中常见错误及解决办法✅
      • 问题① dev脚本启用失败❓
      • 问题② img未添加alt属性❓
    • 九、参考链接

一、引言✉️

​ 随着互联网的的普及和发展,越来越多的程序开发项目逐渐在向云端转移,得益于互联网的传输稳定以及安全高效,使得开发人员可以在任何地方进行开发,并且可以方便与其他人员进行协同开发,共同推进项目进度。其次,随着云服务技术的不断发展,有很多的开发工具和开发环境别迁移到云端,云服务商能够提供稳定、高效且安全的云服务,满足程序员随时随地在云端进行开发、测试、部署、调试等一系列工作流程


​ 这些工具可以在云端创建和管理项目,提供在线编辑和调试等功能,使得开发过程更加高效和便捷。从传统开发模式到在线开发方式的转变,传统开发使得一个团队不需要在同一地方进行协作,而在线开发使得团队协作的方式发生了改变,团队成员可以在不同的地点进行协作,会更加灵活,能够适应现代快速变化的项目需求


​ 伴随着开发的方式转变,开发人员不再需要配置本地端的开发环境和开发工具,大大减轻了开发环境,化繁为简,变得更加简单和方便。将开发环境下沉,为开发者们提供了便捷,无需进行复杂的配置。接下来,向大家介绍一个用于编写、运行和调试代码的云IDE—— 腾讯云Cloud Studio🌈

二、什么是腾讯云 Cloud Studio🔍

腾讯云Cloud Studio是一个基于云端的集成开发环境(IDE),它允许开发人员在云端上编写、编译、调试和部署代码。Cloud Studio提供丰富的功能,包括:

  • 支持多种编程语言,包括Python、Java、JavaScript、PHP和Go
  • 内置代码编辑器、调试器和终端
  • 支持Git和Subversion等版本控制系统
  • 支持云端资源管理,包括云服务器、云存储和云数据库
  • 支持自动化部署

Cloud Studio是一个强大的开发工具,它可以帮助开发人员提高开发效率和质量。它适用于所有类型的开发人员,包括初学者、专业开发人员和企业开发人员。
image-20230810162418265

三、Cloud Studio优点和功能🌈

打造了云端开发环境:加速开发流程配置化,用配置定义云端开发环境,提升开发效率,拥有更弹性的云上开发资源。

推出了AI代码助手:直接在 Cloud Studio 里唤起 AI代码助手,让你拥有专业的研发伙伴,与您一起更高质量的完成编码工作,事半功倍。

推进了开发协作:邀请伙伴一起进入开发,解决开发问题,提高开发效率。 或者您也可以创建团队

加速了部署应用:一键部署,智能识别 30+ 主流前后端框架。本地 IDE ,也可以体验,我们已全面支持 VS Code 市场插件。
工作空间

探索未来 协作编码的无限可能🌟

四、Cloud Studio初体验(注册篇)🎆

注册入口👉https://cloudstudio.net/

🧭导航至此界面,点击“注册/登录”。
image-20230810093847190
🔎提供了以下三种注册或登录方式。这边采用“微信”的注册登录方式。
image-20230810094043750
🔓打开微信“扫一扫”的功能,扫码授权即可注册登录。
image-20230810094440299
®️ 微信授权后,界面即刻跳转至如下界面,注册成功。
image-20230810094714962

五、Cloud Studio实战演练(实战篇)🔬

1. 初始化工作空间

初始化React 的工作空间—React 框架模板
image-20230810113208703
工作开发空间初始化界面,动画演示。
lab1 Rect场景初始化动画

2. 安装 antd-mobile

Ant Design Mobile是Ant Design的移动规范的React实现,是一个基于Preact/React/React Native的UI组件库。它具有高度可配置的UI样式,拓展性更强,可以轻松适应各类产品风格,并服务于蚂蚁及口碑无线业务。

yarn add antd-mobile@^5.32.0

image-20230810114635266

3. 安装 less 和 less-loader

  • Less是一种CSS预处理器,它增加了变量、函数、嵌套和其他高级功能,使得CSS更易于扩展和组织。
  • Less-loader是Webpack的一个模块加载器,它的作用是在Webpack中处理和转换Less文件,将Less代码编译成CSS代码,并加载到页面中。
  • 使用Less-loader之前,需要先安装less和less-loader依赖包。
yarn add -D less@^3.12.2 less-loader@^7.0.1

image-20230810113450438

4. 暴露 webpack 配置文件

yarn eject

image-20230810114131287

完成命令之后,项目根目录会出现一个config文件夹,里面是一些配置相关的脚本,也可以看到 package.json 中多了很多属性值,如 “dependencies”.

5. 修改 config/webpack.config.js 文件

找到 config/webpack.config.js 文件,找到第60行左右,这块是设置 css 相关的代码。

# 复制一下sass的代码,改为less
// style files regexes
const cssRegex = /\.css$/;
const cssModuleRegex = /\.module\.css$/;
const sassRegex = /\.(scss|sass)$/;
const sassModuleRegex = /\.module\.(scss|sass)$/;
// 新增加 Less 代码
const lessRegex = /\.(less)$/;
const lessModuleRegex = /\.module\.(less)$/;

image-20230810114947931
继续向下搜索sass,位置在 510 行左右,能够找到以下代码。

和之前配置一样,仿照sass的配置,进行less的配置。

// less
{
  test: lessRegex,  // 有改动
  exclude: lessModuleRegex,  // 有改动
  use: getStyleLoaders(
    {
      importLoaders: 3,
      sourceMap: isEnvProduction
        ? shouldUseSourceMap
        : isEnvDevelopment,
    },
    'less-loader'  // 有改动
  ),
  sideEffects: true,
},
{
  test: lessModuleRegex,  // 有改动
  use: getStyleLoaders(
    {
      importLoaders: 3,
      sourceMap: isEnvProduction
        ? shouldUseSourceMap
        : isEnvDevelopment,
      modules: {
        getLocalIdent: getCSSModuleLocalIdent,
      },
    },
    'less-loader'  // 有改动
  ),
},

image-20230810115730961

这样就完成了webpack.config.js配置less,可以在项目中使用less样式了。

6. 安装 normalize

Normalize.css 是CSS重置的现代替代方案,可以为默认的HTML元素样式上提供了跨浏览器的高度一致性。相比于传统的CSS reset,Normalize.css是一种现代的、为HTML5准备的优质替代方案。

yarn add -D normalize.css@^8.0.1

image-20230810120125915

7. 上传项目需要的素材

以前上传服务器代码,需要使用 Scp 命令或者装 Remote SSH 插件支持,Cloud Studio 可以很方便默认支持文件上传与下载等常规的操作,与本地 IDE 体验一致:

  • 可以直接拖动文件到 IDE 编辑区域(本文使用方式)
  • 右击 IDE 编辑区域"上传"

直接将 img 文件夹拖动到src目录下即可。(点击下载img压缩包)


如下图演示操作。

lab1 本地img文件夹拖入云端开发平台演示### 8. 替换App.js主文件

以下是点餐系统的主要业务代码,复制到src/App.js直接替换即可。

image-20230810120730795

import './App.css';
import React, { useState } from 'react'
import { NavBar, Toast, Swiper, SideBar, TabBar, Badge } from 'antd-mobile'
import {
  AppOutline,
  ExclamationShieldOutline,
  UnorderedListOutline,
  UserOutline,
} from 'antd-mobile-icons'
import BannerImg from './img/banner.png'
import HotImg from './img/hot.png'
import Food1Img from './img/food1.png'
import Food2Img from './img/food2.png'
import CartImg from './img/cart.png'
import './index.less'
import "normalize.css"

function App() {
  const [activeKey, setActiveKey] = useState('1')

  const tabbars = [
    {
      key: 'home',
      title: '点餐',
      icon: <AppOutline />,
    },
    {
      key: 'todo',
      title: '购物车',
      icon: <UnorderedListOutline />,
      badge: '5',
    },
    {
      key: 'sale',
      title: '餐牌预告',
      icon: <ExclamationShieldOutline />,
    },
    {
      key: '我的',
      title: '我的',
      icon: <UserOutline />,
      badge: Badge.dot,
    },
  ]

  const back = () =>
    Toast.show({
      content: '欢迎进入点餐系统',
      duration: 1000,
    })


  const items = ['', '', '', ''].map((color, index) => (
    <Swiper.Item key={index}>
      <img style={{
        width: '100%'
      }} src={ BannerImg }></img>
    </Swiper.Item>
  ))

  const tabs =  [
    { key: '1', title: '热销' },
    { key: '2', title: '套餐' },
    { key: '3', title: '米饭' },
    { key: '4', title: '烧菜' },
    { key: '5', title: '汤' },
    { key: '6', title: '主食' },
    { key: '7', title: '饮料' },
  ]

  const productName = [
    '小炒黄牛肉',
    '芹菜肉丝炒香干',
    '番茄炒鸡蛋',
    '鸡汤',
    '酸菜鱼',
    '水煮肉片',
    '土豆炒肉片',
    '孜然肉片',
    '宫保鸡丁',
    '麻辣豆腐',
    '香椿炒鸡蛋',
    '豆角炒肉'
  ]
  const productList = productName.map((item, key) => {
    return {
      name: item,
      img: key % 2 === 1 ? Food1Img : Food2Img
    }
  })

  return (
    <div className="App">
      <NavBar onBack={back} style={{
        background: '#F0F0F0',
        fontWeight: 'bold'
      }}>点餐</NavBar>

      <div className='head-card'>
        <Swiper
          style={{
            '--border-radius': '8px',
          }}
          autoplay
          defaultIndex={1}
        >
          {items}
        </Swiper>
      </div>

      <div className='product-box'>
        <SideBar activeKey={activeKey} onChange={setActiveKey}>
          {tabs.map(item => (
            <SideBar.Item key={item.key} title={
              item.key === '1' ? <div>
              <div className='flex-center'>
                <img style={{
                  display: 'block',
                  width: '16px',
                  marginRight: '5px'
                }} src={ HotImg }></img>
                <div>{ item.title }</div>
              </div>
            </div> : item.title
            } />
          ))}
        </SideBar>
        <div className='product-right'>
          <div className='product-title'>热销</div>
          <div className='product-list'>
            {
              productList.map((item, key) => {
                return (
                  <div className='product-item'>
                    <div className='product-item-left'>
                      <img style={{
                        display: 'block',
                        width: '76px',
                        marginRight: '5px'
                      }} src={ item.img }></img>
                      <div className='product-item-left-info'>
                        <div>
                          <div className='product-item-left-info-name'>{ item.name }</div>
                          <div className='product-item-left-info-number'>月售{key + 1}0 赞{key * 5}</div>
                        </div>
                        <div className='product-item-left-info-price'>¥10</div>
                      </div>
                    </div>
                    <div className="cart">
                      <img style={{
                        display: 'block',
                        width: '30px',
                        marginRight: '5px'
                      }} src={ CartImg } onClick = { () =>
                        Toast.show({
                          content: '添加购物车成功'
                        }) }></img>
                    </div>
                  </div>
                )
              })
            }
          </div>
        </div>
      </div>

      <TabBar>
        {tabbars.map(item => (
          <TabBar.Item
            key={item.key}
            icon={item.icon}
            title={item.title}
            badge={item.badge}
          />
        ))}
      </TabBar>
    </div>
  );
}

export default App;

9. 创建indes.less文件并上传代码

在 src 目录下,创建一个 index.less 文件,将以下 less 相关的代码复制到该文件中即可。

lab1 React创建index.less文件

.head-card {
  padding: 10px 20px;
  box-sizing: border-box;
}

.flex-center {
  display: flex;
  align-items: center;
}

.product-box {
  display: flex;
  align-items: center;
  width: 100%;
  height: calc(100vh - 45px - 130px - 50px);
}

.product-right {
  flex: 1;
  height: 100%;
}

.product-title {
  font-family: PingFangSC-Regular;
  font-size: 14px;
  color: #000000;
  text-align: left;
  padding-bottom: 10px;
}

.product-list {
  height: calc(100% - 24px);
  overflow-y: auto;
}

.product-item {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-left: 10px;
  box-sizing: border-box;
  margin-bottom: 10px;
  &-left {
    display: flex;
    &-info {
      padding-left: 3px;
      box-sizing: border-box;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      &-name {
        font-family: PingFangSC-Regular;
        font-size: 14px;
        color: #000000;
        text-align: left;
      }
      &-number {
        padding-top: 3px;
        font-family: PingFangSC-Regular;
        font-size: 11px;
        color: #787878;
        text-align: left;
      }
      &-price {
        font-family: PingFangSC-Regular;
        font-size: 18px;
        color: #FF1800;
        text-align: left;
      }
    }
  }
}

.cart {
  position: absolute;
  right: 10px;
  bottom: 0;
}

image-20230810121357356

复制完成后,在控制台中输入 yarn dev即可启动该项目。

  • Cloud Studio 内置预览插件,可以实时显示网页应用,当代码发生改变之后,预览窗口会自动刷新,即可在 Cloud Studio 内实时开发调试网页了
  • 因为本项目是移动端H5的项目,所以需要打开“toggle device”按钮查看样式。
  • 提供了二唯码在手机端进行调试。

10. 启动该项目

yarn dev

image-20230810161839296

11. 清理实验

  • 先停止项目

image-20230810175155239

  • 再删除项目

image-20230810175232467

六、Cloud Studio体验心得🫂

所见即所得,腾讯云 Cloud Studio泰裤辣

利用云端在线开发环境,为开发者提供便利的同时,业缩短了项目上线的成本。真正做到了“降本增效”

🔍方便的访问:由于Cloud Studio是基于浏览器的,用户可以从任何地方的设备上访问它,只需有网络连接和兼容的浏览器即可。这使得团队成员可以轻松地在不同的位置进行协作和编码。

⚒️集成的工具和功能:Cloud Studio通常提供了一系列内置的工具和功能,如代码编辑器、调试器、版本控制系统(如Git)、终端等。这些集成的工具可以提高开发效率,减少切换不同工具之间的时间和困扰。

🤝协作和共享:Cloud Studio通常支持多人协作,团队成员可以同时在同一个项目中进行编辑和调试。此外,用户可以轻松地共享代码和项目,方便团队成员之间的交流和反馈。

📢 灵活的配置和扩展性:一些Cloud Studio平台允许用户根据自己的需求进行自定义配置,例如选择喜欢的主题、插件和工具集。这使得用户能够根据自己的偏好和需求来打造一个适合自己的开发环境。

七、总结🪢

​ 每个人对Cloud Studio的体验可能会有所不同,这取决于个人的需求、习惯和使用场景。有些人可能喜欢在线编码和协作的便利性,而另一些人可能更喜欢本地安装的IDE。如果你也对Cloud Studio感兴趣,我建议你亲自尝试一下,看看它是否适合你的工作流程和需求。

欢迎大家一起探索 Cloud Studio社区更多的功能,为工作中进行赋能!

八、使用过程中常见错误及解决办法✅

问题① dev脚本启用失败❓

ERROR in ./src/index.js 9:2
Module parse failed: Unexpected token (9:2)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| const root = ReactDOM.createRoot(document.getElementById('root'));
| root.render(
>   <React.StrictMode>
|     <App />
|   </React.StrictMode>

webpack 5.88.2 compiled with 1 error in 352 ms

image-20230810142639540
💢原因分析

“dev” 脚本用于在开发过程中启动开发服务器、监视文件变化并重新编译代码、启动开发工具等。

因为本项目是采用React框架,所以要使用React脚手架(如Create React App)

✅解决:在pakage.json配置文件,定位到scripts,添加如下命令。

"dev": "react-scripts start"

image-20230810151320549

问题② img未添加alt属性❓

image-20230810150452834

WARNING in [eslint] 
src/App.js
  Line 55:7:    img elements must have an alt prop, either with meaningful text, or an empty string for decorative images  jsx-a11y/alt-text
  Line 117:17:  img elements must have an alt prop, either with meaningful text, or an empty string for decorative images  jsx-a11y/alt-text
  Line 136:23:  img elements must have an alt prop, either with meaningful text, or an empty string for decorative images  jsx-a11y/alt-text
  Line 150:23:  img elements must have an alt prop, either with meaningful text, or an empty string for decorative images  jsx-a11y/alt-text

webpack compiled with 1 warnin

✅原因分析及解决办法🌈:

这个警告是由ESLint插件jsx-a11y/alt-text引起的,它要求在<img>元素中添加alt属性,以提供有意义的文本描述或为空字符串以表示装饰性图像。

  1. 找到报错文件src/App.js
  2. 在文件中找到相应的行号,根据警告信息,这些行分别是55、117、136和150。
  3. 对于每个报错的<img>元素,为其添加alt属性。

如下图所示。

image-20230810151320549
image-20230810162127262

欢迎使用腾讯云 Cloud Studio 开启您的云端之旅☁️

九、参考链接

🔴腾讯云活动社区

🟡Cloud Studio_在线编程_在线IDE_WebIDE_CloudIDE_VS Code-腾讯云

🟢腾讯云 Cloud Studio 在线开发平台

🔵腾讯云 Cloud Studio 实战训练营

--------------------------------------🔚完结🔚-----------------------------------------------

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

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

相关文章

(十)人工智能应用--深度学习原理与实战--模型的保存与加载使用

目的:将训练好的模型保存为文件,下次使用时直接加载即可,不必重复建模训练。 神经网络模型训练好之后,可以保存为文件以持久存储,这样下次使用时就不重新建模训练,直接加载就可以。TensorfLow提供了灵活的模型保存方案,既可以同时保存网络结构和权重(即保存全模型),也可…

这回稳了!电力巡检摄像头解决方案全新来袭

最近的狂飙成为大家的话题&#xff0c;现在是互联网的时代&#xff0c;想要的信息总能在互联网获取…这也是我一直喜欢分享科技话题给大家的原因。 疫情已经终于离我们而去&#xff0c;在这春回大地的时候&#xff0c;是时候要分享一下电力行业智能巡检的一些解决方案给大家。这…

从零开始学python(十六)爬虫集群部署

前言 今天讲述Python框架源码专题最后一个部分&#xff0c;爬虫集群部署&#xff0c;前面更新了十五个从零开始学python的系列文章&#xff0c;分别是&#xff1a; 1.编程语法必修篇 2.网络编程篇 3.多线程/多进程/协程篇 4.MySQL数据库篇 5.Redis数据库篇 6.MongoDB数据库篇 …

备战金九银十 I 没有自动化测试项目经验的测试人快快看过来!

学习自动化测试最难的是没有合适的项目练习。测试本身既要讲究科学&#xff0c;又有艺术成分&#xff0c;单单学几个 API 的调用很难应付工作中具体的问题。 你得知道什么场景下需要添加显性等待&#xff0c;什么时候元素定位需要写得更加优雅&#xff0c;为什么需要断言这个元…

idea 加入 .so文件

背景 做项目的时候&#xff0c;遇到需要查看native 方法 涉及到c源码的查看&#xff0c;因此需要加载.so文件去查看。 操作 idea-file-project structure 找到lib&#xff0c;把你的.so文件添加进来就可以啦 然后你就可以查看对应的源码了。

【WebService】使用postman调用WebService方法

1、需求 公司原来有一个项目使用的是WebService&#xff0c;想模拟一下怎么调用WebService的方法&#xff0c;使用postman调用怎么调用。 2、postman方式 接口&#xff1a;http://127.0.0.1:8080/SecurityWebService/SecurityCommand?wsdl 对应你的代码配置&#xff1a; …

Java课题笔记~ Response响应

1.响应消息格式 HTTP响应也由四个部分组成&#xff0c;分别是&#xff1a;状态行、消息报头、空行和响应正文。 响应消息&#xff1a;服务器端发送给客户端的数据 数据格式说明&#xff1a; 1. 响应行 ​ 1. 组成&#xff1a;协议/版本 响应状态码 状态码描述 ​ 2. …

差异性分析傻瓜版

path1输入你的第一个Excel path2输入你的第二个Excel DEG.dig <- function(path1,path2) { require(xlsx) require(tidyverse) require(limma) require(edgeR) E<- read.xlsx (path1,sheetIndex 1,header 1) %>% column_to_rownames(var &…

六、web应用程序技术——编码

文章目录 一、状态与会话二、编码方案2.1 URL编码2.2 Unicode编码2.3 HTML编码2.4 Base64编码2.5 十六进制编码 一、状态与会话 web应用程序服务器和客户端组件除了以各种方式进行数据交换和处理&#xff0c;应用程序还需要追踪每位用户通过不同的请求与应用程序交互的状态。例…

appuploader使用教程

转载&#xff1a;appuploader使用教程 目录 问题解决秘籍 登录失败 don’t have access,提示没权限或同意协议 上传后在app管理中心找不到版本提交 不是等待上传状态 提示已经上传过包 上传提示tcpPort or udpPorts错误 上传提示已经有进程在上传 保存上传专用密码提示…

Oracle 开发篇+Java通过DRCP访问Oracle数据库

标签&#xff1a;DRCP、Database Resident Connection Pooling、数据库驻留连接池释义&#xff1a;DRCP&#xff08;全称Database Resident Connection Pooling&#xff09;数据库驻留连接池&#xff08;Oracle自己的数据库连接池技术&#xff09; ★ Oracle开启并配置DRCP sq…

通义千问开源模型部署使用

首先可以参考modelScope社区给出的使用文档&#xff0c;已经足够全面 通义千问-7B-Chat 但在按照文档中步骤部署时&#xff0c;还是有些错误问题发生&#xff0c;可以搜索参考的解决方式不多&#xff0c;所以记录下来 个人电脑部署 这里不太建议使用自己的笔记本部署通义千…

【墙裂推荐!】十款开源测试开发工具(自动化、性能、造数据、流量复制)​

目录 1、AutoMeter-API 自动化测试平台 2、QA Wolf 浏览器自动化测试工具 3、Mimesis 用于 Python 的高性能虚假数据生成器 4、Ddosify 高性能负载测试工具 5、AutoCannon HTTP/1.1 基准测试工具 6、Sharingan 流量录制回放工具 7、randdata 随机测试数据生成工具 8、D…

【求两个数二进制中不同位的个数】

求两个数二进制中不同位的个数 1.题目 编程实现&#xff1a;两个int&#xff08;32位&#xff09;整数m和n的二进制表达中&#xff0c;有多少个位(bit)不同&#xff1f; 输入例子:1999 2299 输出例子:7 2.题目分析 先将m和n进行按位异或&#xff0c;此时m和n相同的二进制比特位…

多线程知识点总结

这个更清晰一点 JAVA多线程-ProcessOnhttps://www.processon.com/mindmap/64d06633b9f7806c73e70d92

统计列表加小计

提供个思路&#xff0c;欢迎其他大佬指正 注意使用 排序&#xff08;seq&#xff09;&#xff0c;group by&#xff0c;union all SELECTf.* FROM(SELECTcus_id,max( cusname ) cusname,NULL dodate,sum( money ) sumMoney,NULL payed,NULL unpayed,1 seq FROMtb_outbase GRO…

如何在群辉NAS系统下安装cpolar套件,并使用cpolar内网穿透?

如何在群辉NAS系统下安装cpolar套件,并使用cpolar内网穿透&#xff1f; 文章目录 如何在群辉NAS系统下安装cpolar套件,并使用cpolar内网穿透&#xff1f;前言1. 在群辉NAS系统下安装cpolar套件2. 管理隧道列表3. 创建固定数据隧道 前言 群晖作为大容量存储系统&#xff0c;既可…

uniapp开发小程序-分包(微信错误码:800051)

在使用uniapp开发小程序时&#xff0c;上传的时候因为文件过大&#xff0c;显示上传失败。 以下是开发过程中遇到的问题及解决方法&#xff1a; 1. 问题一&#xff1a;因为文件过大&#xff0c;显示上传失败 ①尝试过把本地使用的图片压缩到最小&#xff1b; ②把图片转换为网…

某运动APP的登录协议分析

前言 最近在尝试逆向方向相关的探索&#xff0c;针对某款运动APP的登录协议进行了分析&#xff0c;此文记录一下分析过程与结果&#xff0c;仅供学习研究&#xff0c;使用的工具较少&#xff0c;内容也比较简单&#xff0c;新手项&#xff0c;大佬请跳过。针对密码登录模块进行…

SpringBoot整合WebSocket实现定时任务消息推送

在平时项目开发中&#xff0c;肯定有很多小伙伴会需要实现定时向某个页面推送消息的功能&#xff0c;为了解决大家无从下手的问题&#xff0c;加哥今天展示一套简单的代码解决方案。 1.创建WebSocketConfig配置类 在这个类中注入ServerEndpointExporter&#xff0c;这个bean会…