九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
【騰訊云Cloud Studio實戰(zhàn)訓(xùn)練營】Cloud Studio 快速搭建學(xué)習(xí)分享

文章目錄

零、前言

最近接觸到了一款開發(fā)神器,云端IDE,相比于傳統(tǒng)的 IDE,云端 IDE 可以更大程度的提升用戶工作的效率。
帶大家一起了解Cloud Studio 的神奇之處。

一、Cloud Studio

1.1、Cloud Studio是什么

云 IDE Cloud Studio 作為騰訊云出品的一款在線云端開發(fā)工具,它可以幫助用戶減少安裝 IDE 的成本,提供在線代碼開發(fā)、編譯、運行、存儲的一站式服務(wù)。

基于 Web 端的代碼編輯器,包含代碼高亮、自動補(bǔ)全、Git 集成、終端等 IDE 的基礎(chǔ)功能,同時支持實時調(diào)試、插件擴(kuò)展等,提升開發(fā)、編譯與部署工作效率 ;

支持遠(yuǎn)程訪問云服務(wù)器,為行業(yè)用戶提供開發(fā)-測試-部署完整閉環(huán)的云原生開發(fā)體驗 ;

1.2、Cloud Studio的優(yōu)勢

  • 云端開發(fā)環(huán)境:Cloud Studio是一種基于云的開發(fā)環(huán)境,無需在本地安裝和配置開發(fā)工具,只需通過瀏覽器即可訪問和使用。
  • AI 代碼助手:直接在 Cloud Studio 里喚起 AI代碼助手,讓你擁有專業(yè)的研發(fā)伙伴,與您一起更高質(zhì)量的完成編碼工作,事半功倍。
  • 高度可擴(kuò)展:Cloud Studio提供靈活的擴(kuò)展機(jī)制,可以輕松集成各種開發(fā)工具、插件和庫,以滿足不同項目和需求的開發(fā)要求。
  • 開發(fā)協(xié)作:Cloud Studio支持多人實時協(xié)作開發(fā),團(tuán)隊成員可以同時編輯和共享代碼,提高團(tuán)隊的協(xié)作效率。
  • 部署應(yīng)用:一鍵部署,智能識別 30+ 主流前后端框架。本地 IDE ,也可以體驗,已全面支持 VS Code 市場插件。
  • 數(shù)據(jù)安全性:Cloud Studio提供高級的數(shù)據(jù)安全保護(hù)措施,包括數(shù)據(jù)加密、權(quán)限控制等功能,確保用戶的代碼和數(shù)據(jù)得到有效的保護(hù)。
  • 彈性計算能力:Cloud Studio可以根據(jù)用戶需求動態(tài)調(diào)整計算資源,實現(xiàn)彈性擴(kuò)縮容,提高開發(fā)和部署的效率。

話不多說,接下來以前、后端實戰(zhàn),讓大家感受Cloud Studio的魅力。

二、實戰(zhàn):快速構(gòu)建React完成點餐H5頁面還原

2.1、打開官網(wǎng)

點擊官網(wǎng)地址,并點擊“注冊/登錄”。


Cloud Studio 對所有新老用戶每月贈送 3000 分鐘的工作空間免費時長。免費的就是香~

2.2、選擇React 框架模板

如圖直接選擇React的空間模板。


初始化工作空間的效果:

2.3、編碼部分

安裝 antd-mobile

antd-mobile 是 Ant Design 的移動規(guī)范的 React 實現(xiàn)

yarn add antd-mobile@^5.32.0

安裝 Less

我們在進(jìn)行React項目開發(fā)的時,可能會使用到Less、Sass進(jìn)行樣式開發(fā),默認(rèn) React 是集成Sass的,因此對于習(xí)慣書寫Less的小伙伴十分不友好,所以我們需要在React項目中配置Less。

yarn add -D less@^3.12.2 less-loader@^7.0.1

安裝 normalize

Normalize.css 是CSS重置的現(xiàn)代替代方案,可以為默認(rèn)的HTML元素樣式上提供了跨瀏覽器的高度一致性。相比于傳統(tǒng)的CSS reset,Normalize.css是一種現(xiàn)代的、為HTML5準(zhǔn)備的優(yōu)質(zhì)替代方案。

yarn add -D normalize.css@^8.0.1

上傳項目需要的素材

可以直接拖動文件到 IDE 編輯區(qū)域:
直接將 img 文件夾拖動到src目錄下即可。

右擊 IDE 編輯區(qū)域"上傳":

替換App.js主文件

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: '餐牌預(yù)告',
      icon: <ExclamationShieldOutline />,
    },
    {
      key: '我的',
      title: '我的',
      icon: <UserOutline />,
      badge: Badge.dot,
    },
  ]

  const back = () =>
    Toast.show({
      content: '歡迎進(jìn)入點餐系統(tǒng)',
      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;

創(chuàng)建一個 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;
}

復(fù)制完成后,在控制臺中輸入 yarn dev即可啟動該項目。

2.4、成品效果

三、實戰(zhàn):快速搭建java學(xué)習(xí)環(huán)境

3.1、新建java工作空間


填寫工作空間信息

這里我選用gitee的倉庫地址,先創(chuàng)建一個gitee倉庫


設(shè)置為公開倉庫


將工作空間的 SSH Key 添加至對應(yīng)代碼托管平臺的個人公鑰列表。

復(fù)制到Gitee添加SSH公鑰


復(fù)制倉庫地址填到新建工作空間中

3.2、編碼部分

寫了三個學(xué)習(xí)示例

古典問題按兔子的出生和生育規(guī)律,數(shù)兔子

package com.example;
/**
 *古典問題按兔子的出生和生育規(guī)律,數(shù)兔子
 * 題目:古典問題:有一對兔子,從出生后第 三個月起每個月都生一對兔子,小兔子長到第三個月后每個月
    又生一對兔子,假如兔子都不死,問每個月的兔子對數(shù)為多少?
 */
public class Basics01 {

    public static void main(String[] args) {

        //兔子的規(guī)律為數(shù)列 1,1,2,3,5,8,13,21....
        //預(yù)設(shè)顯示的最大月份
        int maxMonth=20;
        int first=1;
        int second=1;
        int third=0;

        for(int i=1;i<=maxMonth;i++) {
            first=second;
            second=third;
            third=first+second;
            System.out.println("第"+i+"月兔子的數(shù)量為="+third+"對");
        }
    }
}


求每次滑動窗口中的最大值(考察隊列)

package com.example;


import java.util.LinkedList;

/**
 * Description: 求每次滑動窗口中的最大值(考察隊列)
 *  題目: 給你一個整數(shù)數(shù)組 nums,有一個大小為 k 的滑動窗口從數(shù)組的最左側(cè)移動到數(shù)組的最右側(cè)。你只可以看到在滑動窗口內(nèi)的 k 個數(shù)字。滑動窗口每次只向右移動一位。
返回 滑動窗口中的最大值 。
 * @author zenghw
 * @version 1.0
 *
 * <pre>
 * 修改記錄:
 * 修改后版本	        修改人		修改日期			修改內(nèi)容
 * 2022/8/20.1	    zenghw		2022/8/20		    Create
 * </pre>
 * @date 2022/8/20
 */
class Solution {

    public static void main(String[] args) {
        int[] nums =new int[]{1,3,-1,-3,5,3,6,7};
        int k =3;
        int[] maxs =  maxSlidingWindow(nums,k);
        for (int max : maxs) {
            System.out.println(max);
        }
    }
    public static int[] maxSlidingWindow(int[] nums, int k) {
        // 用來保存每個窗口的最大值
        int[] result = new int[nums.length - k + 1];
        //本題用雙向隊列來實現(xiàn),存儲數(shù)組的下標(biāo)
        LinkedList<Integer> queueLinkedList = new LinkedList<>();
        // 數(shù)組的下標(biāo)從0開始,遍歷數(shù)組,rightIndex表示滑動窗口右邊界
        for(int rightIndex = 0; rightIndex < nums.length; rightIndex++) {
            // 用while循環(huán),當(dāng)隊列非空時,數(shù)組滑動新的元素大于等于隊尾的元素,則隊尾的元素移掉,因為不是最大值
            // while循環(huán)結(jié)果條件,隊列空了,或者數(shù)組滑動新的元素小于隊尾的元素
            while (!queueLinkedList.isEmpty() && nums[rightIndex] >= nums[queueLinkedList.peekLast()]) {
                queueLinkedList.removeLast();
            }
            // 存儲數(shù)組右劃的下標(biāo)
            queueLinkedList.addLast(rightIndex);
            // 計算窗口左側(cè)邊界
            int leftIndex = rightIndex - k +1;
            // 隊首的元素是整個窗口里最大的,但是當(dāng)數(shù)組滑動時,隊首的元素已經(jīng)不在窗口內(nèi),就要移除掉
            if (queueLinkedList.peekFirst() < leftIndex) {
                queueLinkedList.removeFirst();
            }
            // 因為數(shù)組的下標(biāo)是從0開始,只有窗口右邊界的下標(biāo)+1>=k的值時,才能比較取窗口的最大值(隊首的元素)
            if (rightIndex +1 >= k) {
                result[leftIndex] = nums[queueLinkedList.peekFirst()];
            }
        }
        return result;
    }
}



使用第三方開源工具h(yuǎn)utool相關(guān)的api

pom要引入hutool的依賴

 <dependency>
			<groupId>cn.hutool</groupId>
			<artifactId>hutool-core</artifactId>
			<version>5.6.5</version>
		</dependency>
package com.example;

import cn.hutool.core.date.ChineseDate;
import cn.hutool.core.date.DateUtil;
/**
 * 使用第三方開源工具h(yuǎn)utool相關(guān)的api
 */
public class DateUtilTest {
    public static void main(String[] args) {
        //獲得年的部分
		int year =DateUtil.year(DateUtil.date());
		System.out.println(year);
        //獲得年份生肖
        ChineseDate date = new ChineseDate(DateUtil.parseDate(DateUtil.now()));
        System.out.println("今年的生肖是:"+date.getChineseZodiac());
    }
}


查看git變更

可以commit代碼,和push代碼到遠(yuǎn)程倉庫上。

只要在有網(wǎng)絡(luò)的電腦上,隨時都可以學(xué)習(xí)java,并實戰(zhàn)編碼代碼跑結(jié)果,不受限于電腦的配置,是不是很方便~

四、總結(jié)

經(jīng)過這一次的前后端實戰(zhàn)體驗,感受到云端的IDE Cloud Studio 不輸傳統(tǒng)的IDE,在線編寫代碼,提交遠(yuǎn)程服務(wù)器的操作都很絲滑。無需在本地安裝和配置開發(fā)工具,只需通過瀏覽器即可訪問和使用。這是 Cloud Studio 優(yōu)于傳統(tǒng)IDE的地方。

我最喜歡的多人協(xié)作這個功能,團(tuán)隊成員可以同時編輯和共享代碼,當(dāng)出現(xiàn)解決不了的問題時,可以發(fā)起多人協(xié)作,在線讓大神幫忙處理問題。


本文選了前端React框架,后端java技術(shù)框架,Cloud Studio還包含了 30+ 主流前后端框架,全面支持 VS Code 市場插件,提高開發(fā)效率。
還兼?zhèn)淞嗽品?wù)的彈性計算能力,可以按需進(jìn)行升級配置,實現(xiàn)彈性擴(kuò)縮容,提高開發(fā)和部署的效率。
大家可以去體驗下,真的很不錯。如果你有更多使用技巧,也歡迎跟虛竹哥溝通聊一聊,一起挖掘更多寶藏。

哈哈,我是虛竹哥,我們下文見~

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
【騰訊云 Cloud Studio 實戰(zhàn)訓(xùn)練營】基于Cloud Studio構(gòu)建React完成點餐H5頁面
簡單的原生js輪播圖
【騰訊云 Cloud Studio 實戰(zhàn)訓(xùn)練營】在Cloud Studio上使用React實現(xiàn)學(xué)生管理系統(tǒng)
使用Cloud Studio&Flutter完成全平臺博客網(wǎng)站的搭建
如何在 JavaScript 中創(chuàng)建虛擬鍵盤
JavaScript正則驗證密碼強(qiáng)弱度
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服