最近接觸到了一款開發(fā)神器,云端IDE,相比于傳統(tǒng)的 IDE,云端 IDE 可以更大程度的提升用戶工作的效率。
帶大家一起了解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ā)體驗 ;
話不多說,接下來以前、后端實戰(zhàn),讓大家感受Cloud Studio的魅力。
點擊官網(wǎng)地址,并點擊“注冊/登錄”。
如圖直接選擇React的空間模板。
antd-mobile 是 Ant Design 的移動規(guī)范的 React 實現(xiàn)
yarn add antd-mobile@^5.32.0
我們在進(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.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ū)域"上傳":
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即可啟動該項目。
寫了三個學(xué)習(xí)示例
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;
}
}
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());
}
}
只要在有網(wǎng)絡(luò)的電腦上,隨時都可以學(xué)習(xí)java,并實戰(zhàn)編碼代碼跑結(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é)作,在線讓大神幫忙處理問題。
哈哈,我是虛竹哥,我們下文見~
聯(lián)系客服