Java開發經驗——阿里巴巴編碼規范實踐解析6

摘要

本文深入解析了阿里巴巴編碼規范在數據庫設計和Java開發中的實踐應用。詳細闡述了數據庫字段命名、類型選擇、索引命名等規范,以及Java POJO類的對應規范。強調了字段命名的重要性,如布爾字段命名規則、表名和字段名的命名禁忌等。同時,介紹了主鍵、唯一索引和普通索引的區別,以及小數類型和字符串類型的選擇建議。還提出了表設計的必備字段、邏輯刪除操作、表命名規則、字段注釋更新、冗余字段使用、分庫分表等最佳實踐。

1. 【強制】表達是與否概念的字段,必須使用 is_xxx 的方式命名,數據類型是 unsigned tinyint(1 表示是,0 表示否)。

注意:POJO 類中的任何布爾類型的變量,都不要加 is 前綴,所以,需要在<resultMap>設置從 is_xxx 到 Xxx 的映射關系。數據庫表示是與否的值,使用 tinyint 類型,堅持 is_xxx 的命名方式是為了明確其取值含義與取值范圍。說明:任何字段如果為非負數,必須是 unsigned。

正例:表達邏輯刪除的字段名 is_deleted,1 表示刪除,0 表示未刪除。

1.1. 數據庫字段規范

  • 表示“是/否”概念的字段(即布爾邏輯值),數據庫字段名必須是 is_xxx 的形式
  • 字段類型必須是 TINYINT(1) UNSIGNED
    • 1 表示 是,0 表示 否。
    • UNSIGNED 表示值非負,防止異常數據(如 -1)存入。
  • 示例字段:
is_deleted TINYINT(1) UNSIGNED DEFAULT 0 COMMENT '是否已刪除:0-否,1-是'

1.2. Java 對應 POJO 類中的規范

  • 在 Java Bean 中,不要將布爾變量命名為 isXxx,而是直接命名為 xxx(符合 JavaBean 的 getter/setter 規范)。
  • 對應 MyBatis 的 <resultMap> 中,應將數據庫字段 is_xxx 映射到 Java 字段 xxx

1.2.1. ? 正例示范

數據庫表結構:

CREATE TABLE user (id BIGINT PRIMARY KEY,name VARCHAR(50),is_deleted TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否刪除,0:未刪除,1:已刪除',is_active TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '是否激活,1:是,0:否'
);

Java 實體類:

public class User {private Long id;private String name;private Boolean deleted; // 對應 is_deletedprivate Boolean active;  // 對應 is_active// Getter & Setter
}

MyBatis resultMap 映射:

<resultMap id="userMap" type="com.example.User"><id column="id" property="id"/><result column="name" property="name"/><result column="is_deleted" property="deleted"/><result column="is_active" property="active"/>
</resultMap>

1.2.2. ? 錯誤的數據庫命名:

deleted TINYINT(1)

問題:字段不明確,是否是布爾值?是否為邏輯刪除?不清晰。

1.2.3. ? 錯誤的 Java 命名:

private Boolean isDeleted;

問題:違反 JavaBean 標準(可能會導致序列化、反射或工具類識別異常)。

2. 【強制】表名、字段名必須使用小寫字母或數字,禁止出現數字開頭禁止兩個下劃線中間只出現數字。 數據庫字段名的修改代價很大,因為無法進行預發布,所以字段名稱需要慎重考慮。

說明:MySQL 在 Windows 下不區分大小寫,但在 Linux 下默認是區分大小寫。因此,數據庫名、表名、字段名,都不允許出現任何大寫字母,避免節外生枝。

正例:aliyun_admin,rdc_config,level3_name
----------------------------------------------
反例:AliyunAdmin,rdcConfig,level_3_name

2.1. 字段名、表名的命名規則

要求項

說明

示例

? 必須小寫

表名、字段名全部使用小寫字母

user

, order_detail

? 可包含數字

數字可以出現但不能開頭

level3_name

, config_2025

? 使用下劃線分隔

多個單詞之間用下劃線分隔(snake_case)

user_address

, order_item_detail

? 禁止使用大寫字母

防止 Linux 環境下大小寫敏感導致識別錯誤

AliyunAdmin, RDC_Config(?)

? 禁止數字開頭

SQL 不允許以數字開頭的標識符

3rd_party_data(?)

? 禁止兩個下劃線中只出現數字

防止字段難以理解、閱讀性差

level__3_name(?)

2.2. ? 正確示例

類型

命名示例

說明

表名

aliyun_admin

小寫字母 + 下劃線

表名

rdc_config

多單詞用下劃線分隔

字段名

level3_name

數字不能開頭,不能 _3_

2.3. 🚫 錯誤示例及原因

錯誤命名

原因說明

AliyunAdmin

包含大寫字母,不兼容 Linux 下默認設置

rdcConfig

使用了駝峰命名法,不標準

3rd_party

數字不能開頭

level__3_name

__3_中僅包含數字,閱讀性差

2.4. ?? 補充說明

  • MySQL 在 Windows 是大小寫不敏感,但在 Linux 是敏感的。
  • 表名、字段名一旦設計完成并投入生產,修改代價極大,涉及代碼、SQL、工具等多方調整,無法熱部署、灰度發布
  • 因此在建表、建字段初期就應當一次設計好、長期使用,統一規范是非常重要的。

3. 【強制】表名不使用復數名詞。

說明:表名應該僅僅表示表里面的實體內容,不應該表示實體數量,對應于 DO 類名也是單數形式,符合表達習慣。

4. 【強制】禁用保留字,如 desc、range、match、delayed 等,請參考 MySQL 官方保留字。

5. 【強制】主鍵索引名為 pk_字段名;唯一索引名為 uk_字段名;普通索引名則為 idx_字段名。

說明:pk_即 primary key;uk_即 unique key;idx_即 index 的簡稱。

這條規范強調數據庫索引命名應 遵循統一的命名規則,以提高可讀性、維護性和一致性。主要定義了三類索引的命名方式:

5.1. ? 命名規則說明

索引類型

命名格式

含義

主鍵索引

pk_字段名

Primary Key(主鍵)

唯一索引

uk_字段名

Unique Key(唯一約束)

普通索引

idx_字段名

Index(一般查詢優化用途)

5.2. ? 正確示例

假設我們有一張 user 表,結構如下:

CREATE TABLE user (id BIGINT NOT NULL,username VARCHAR(50) NOT NULL,email VARCHAR(100) NOT NULL,phone VARCHAR(20),PRIMARY KEY (id),UNIQUE KEY uk_username (username),UNIQUE KEY uk_email (email),KEY idx_phone (phone)
);

解讀:

  • pk_id:主鍵索引,命名為 pk_id
  • uk_usernameusername 字段上的唯一約束,命名為 uk_username。
  • uk_emailemail 字段上的唯一約束。
  • idx_phone:普通索引,用于加速對 phone 字段的查詢。

5.3. ? 錯誤示例(不規范命名)

CREATE TABLE user (id BIGINT NOT NULL,username VARCHAR(50) NOT NULL,email VARCHAR(100) NOT NULL,phone VARCHAR(20),PRIMARY KEY (id),UNIQUE KEY unique_user_name (username),UNIQUE KEY EMAIL_UNIQ (email),KEY PHONE_INDEX (phone)
);

問題:

  • 命名不統一,難以快速識別索引用途
  • 存在大小寫混用、冗余命名(如加上 _index

5.4. ? 建議總結

項目

建議命名示例

主鍵

pk_id

唯一索引

uk_usernameuk_email

普通索引

idx_phoneidx_create_time

5.5. ? 小貼士

  • 命名使用 小寫字母 + 下劃線,符合 MySQL 通用命名規范。
  • 如果是聯合索引,命名可組合字段名:idx_userid_orderid
  • 命名規范不僅清晰,還能便于代碼自動生成工具(如 MyBatis Generator)正確識別索引用途。

6. 主鍵(Primary Key)、唯一索引(Unique Key)和普通索引(Index)區別?

主鍵(Primary Key)、唯一索引(Unique Key)和普通索引(Index)是數據庫中三種常見的索引類型,它們的主要區別如下:

6.1. 主鍵(Primary Key)

特點

  • 表中只能有一個主鍵。
  • 不允許為 NULL
  • 自動創建一個唯一索引。
  • 通常用于唯一標識一條記錄。

📌 示例

CREATE TABLE user (id BIGINT NOT NULL,name VARCHAR(50),PRIMARY KEY (id)  -- 主鍵
);

🧠 場景

用作每行數據的唯一標識,例如 id 字段。

6.2. 唯一索引(Unique Key)

特點:

  • 可以有多個唯一索引
  • 所有列的組合值必須唯一。
  • 允許為 NULL(但有數據庫兼容性差異,如 MySQL 可有多個 NULL)。

示例:

CREATE TABLE user (id BIGINT NOT NULL,email VARCHAR(100),username VARCHAR(50),PRIMARY KEY (id),UNIQUE KEY uk_email (email),       -- 唯一索引UNIQUE KEY uk_username (username)  -- 唯一索引
);

場景:適合用于如 郵箱用戶名 等不允許重復的字段。

6.3. 普通索引(Index)

特點:

  • 沒有唯一性限制
  • 可以創建多個普通索引。
  • 主要用于加速查詢,不會約束數據唯一性。

示例:

CREATE TABLE user (id BIGINT NOT NULL,phone VARCHAR(20),PRIMARY KEY (id),KEY idx_phone (phone)  -- 普通索引
);

場景:適用于頻繁用于 WHEREORDER BY 的查詢字段,提高查詢性能。

6.4. 對比總結

項目

主鍵(Primary Key)

唯一索引(Unique Key)

普通索引(Index)

是否唯一

? 唯一

? 唯一

? 不保證唯一

是否可為 NULL

? 不可

? 可為 NULL(MySQL 中)

? 可為 NULL

數量限制

僅 1 個

多個

多個

自動索引

? 是

? 是

? 是

用途

主鍵標識,約束唯一

唯一約束某字段或組合

查詢加速,無約束功能

7. 【強制】小數類型為 decimal,禁止使用float和 double。

說明:在存儲的時候,float 和 double 都存在精度損失的問題,很可能在比較值的時候,得到不正確的結果。如果存儲的數據范圍超過 decimal 的范圍,建議將數據拆成整數和小數并分開存儲。

7.1. ? float / double:

  • 屬于浮點類型,底層是二進制存儲,存在精度誤差
  • 不適合用于表示金額、利率、積分等精準計算數據
  • 比如存入 0.1,取出來可能是 0.100000001,比較時可能出現誤判。

7.2. ? decimal(或 numeric):

  • 定點數類型,可設定精確的小數位數
  • 存儲精度高,不會有精度損失。
  • 非常適合用來表示金額、比例、利率、計量單位等對精度要求高的場景。

7.3. ? 錯誤示例:使用 float

CREATE TABLE order_info (order_id BIGINT PRIMARY KEY,amount FLOAT(10, 2)  -- ? 錯誤,金額不能用 float
);

7.4. ? 正確示例:使用 decimal

CREATE TABLE order_info (order_id BIGINT PRIMARY KEY,amount DECIMAL(10, 2)  -- ? 精確保留 2 位小數,適合金額
);
  • DECIMAL(10, 2) 表示總位數最多 10 位,其中小數位最多 2 位,例如最大可存儲 99999999.99

7.5. 場景舉例

字段名稱

推薦類型

原因

金額

decimal(10, 2)

防止精度誤差

比例

decimal(5, 4)

精確表示 0.1234

積分

decimal(10, 0)

整數,不丟失精度

稅率

decimal(5, 3)

精確控制千分位

8. 【強制】如果存儲的字符串長度幾乎相等,使用 char 定長字符串類型。

  • 如果字符串長度基本一致(差異極小,比如身份證號、手機號、MD5、UUID 等),使用 CHAR(n) 類型
  • 如果長度變化較大(如評論、地址等),使用 VARCHAR(n)

8.1. 為什么選 CHAR 而不是 VARCHAR

  1. CHAR 是定長:數據庫在存儲時預留固定空間,讀取更快。
  2. VARCHAR 是變長:雖然節省空間,但讀取時性能略差(因為存儲時多一個字節表示長度)。
  3. 當字段長度固定或接近固定時,用 CHAR 可以帶來更好的查詢效率和緩存命中率

8.2. ? 正確使用 CHAR

字段用途

示例字段名

推薦類型

理由

身份證號碼

id_card_no

CHAR(18)

長度固定 18 位

手機號

phone_number

CHAR(11)

長度固定 11 位

UUID

uuid

CHAR(36)

固定長度 36 字符

MD5 值

md5_hash

CHAR(32)

MD5 長度恒定為 32 位

CREATE TABLE user_info (id BIGINT PRIMARY KEY,id_card_no CHAR(18) NOT NULL,phone_number CHAR(11),uuid CHAR(36)
);

8.3. ? 錯誤使用 VARCHAR(會增加開銷)

-- 不推薦的寫法
CREATE TABLE user_info (id_card_no VARCHAR(18),phone_number VARCHAR(11)
);
  • 會消耗更多 CPU 來處理長度字段。
  • 在索引上也會影響查詢效率。

9. CHARVARCHARTEXTLONGTEXTJSON類型怎么選擇

在設計數據庫時選擇合適的字符串類型(CHARVARCHARTEXTJSON 等)非常關鍵,它直接關系到性能、存儲、查詢能力和未來擴展性。以下是各類型的適用場景、優缺點和使用建議

9.1. CHAR(n)(定長字符串)

? 使用場景:

  • 字段長度固定或幾乎固定,如:
    • 身份證號(18 位)
    • 手機號(11 位)
    • UUID(36 位)
    • 狀態碼、性別標識、等級標識等短字段

? 優點:

  • 存儲效率高,查詢速度快
  • 內部無需存儲長度信息(相比 VARCHAR
  • 在索引中表現更好

? 缺點:

  • 會浪費空間(不足會用空格填充)

9.2. VARCHAR(n)(變長字符串)

? 使用場景:

  • 字符串長度不固定,但最大長度可預期
    • 姓名、地址、標題、描述、郵箱、URL
    • 用戶備注、標簽、崗位名稱

? 優點:

  • 節省空間
  • 靈活性更高

? 缺點:

  • 查詢性能略差于 CHAR
  • 需要額外字節存儲實際長度

9.3. TEXT(長文本)

? 使用場景:

  • 大段內容存儲,如:
    • 文章正文、博客內容、富文本
    • 聊天記錄、用戶反饋、日志內容

? 優點:

  • 可存儲大容量文本(最大約 64KB)

? 缺點:

  • 不能創建普通索引(要用全文索引 Fulltext)
  • 查詢和排序性能低
  • 不能設置默認值
  • 使用時不走 InnoDB 緩存(頁緩存)

9.4. JSON(MySQL 5.7+ 支持的 JSON 類型)

? 使用場景:

  • 數據結構多變、不固定,但需結構化查詢的字段,如:
    • 可變配置字段
    • 動態參數、擴展字段(metadata)
    • 日志上下文結構、第三方返回結果原始數據

? 優點:

  • 可以使用 JSON 函數查詢子字段
  • 數據結構靈活,不需要頻繁改表
  • TEXT 更可控(支持路徑查詢)

? 缺點:

  • 不適合做頻繁的復雜查詢(特別是多層嵌套)
  • MySQL 不對 JSON 字段做強類型校驗
  • 查詢性能低于結構化字段

9.5. 數據庫字段類型選擇總結對比

類型

可索引

適合場景

是否支持結構化查詢

默認值

備注

CHAR

?

固定長度、標識符

?

?

性能最好,浪費空間

VARCHAR

?

一般字符串

?

?

最常用,平衡空間和性能

TEXT

🚫(支持全文)

大段文本

?

?

不可默認,不能索引排序

JSON

?(僅部分支持)

動態結構、可選字段

?(使用 JSON 函數)

?

查詢略慢,適合擴展字段

MySQL 中的 TEXT 并非只有一種,而是有多個變種,每種容量不同:

類型

最大長度(字符)

最大容量(字節)

描述

TINYTEXT

255 字符

255 字節

非常小的文本數據

TEXT

65,535 字符

64 KB

常用的一般文本

MEDIUMTEXT

16,777,215 字符

16 MB

中等大小文本,如文章、日志等

LONGTEXT

4,294,967,295 字符

4 GB

超大文本,如小說、配置等

9.6. 使用建議(選型規則)

  • 固定長度字段(手機號、身份證) → CHAR
  • 普通內容字段(姓名、地址、標題)VARCHAR
  • 長文本內容(富文本、日志、文章)TEXT
  • 結構不固定字段但需要查詢(配置、上下文參數) → JSON

10. 【強制】varchar 是可變長字符串,不預先分配存儲空間,長度不要超過 5000,如果存儲長度大于此值,定義字段類型為 text,獨立出來一張表,用主鍵來對應,避免影響其它字段索引率。

11. 【強制】表必備三字段:id,create_time,update_time。

說明:其中 id 必為主鍵,類型為 bigint unsigned、單表時自增、步長為 1。create_time,update_time 的類型均為datetime 類型, 如果要記錄時區信息,那么類型設置為 timestamp。

除了【強制】的三大字段 idcreate_timeupdate_time 之外,數據表設計中通常還會包含一些常用的“必要字段”,這些字段能夠增強數據管理、業務邏輯和安全性。下面給你梳理一下常見且推薦的字段:

11.1. 常見數據表必要字段匯總

字段名

類型

作用說明

備注

id

bigint unsigned

主鍵,自增,唯一標識一條記錄

必須

create_time

datetime / timestamp

記錄創建時間

必須

update_time

datetime / timestamp

記錄最后修改時間

必須

is_deleted

tinyint unsigned (0/1)

邏輯刪除標志,1=已刪除,0=未刪除

代替物理刪除,方便數據恢復

create_user

bigint unsigned

記錄創建該條數據的用戶ID

可選,追蹤操作人

update_user

bigint unsigned

記錄最后修改該條數據的用戶ID

可選,追蹤操作人

version

int unsigned

樂觀鎖版本號,用于控制并發更新

預防并發修改沖突

status

tinyint unsigned

業務狀態字段,如激活、禁用、審核中等

業務自定義狀態碼

remark

varchar(255)

備注字段

可存儲補充說明

11.2. 數據庫設計建議

  • 邏輯刪除字段 is_deleted,避免直接物理刪除,方便數據恢復與審計。
  • 操作用戶字段 create_userupdate_user,便于追蹤責任。
  • 樂觀鎖字段 version,防止數據被并發修改導致不一致。
  • 狀態字段 status,統一管理業務狀態,方便業務流程控制。
  • 備注字段 remark,記錄額外信息,便于維護和擴展。
CREATE TABLE example_entity (id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100) NOT NULL,is_deleted TINYINT UNSIGNED NOT NULL DEFAULT 0,create_user BIGINT UNSIGNED, -- 適合采用用戶id 而不是采用字符類型update_user BIGINT UNSIGNED, -- 適合采用用戶id 而不是采用字符類型create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,version INT UNSIGNED NOT NULL DEFAULT 0,status TINYINT UNSIGNED NOT NULL DEFAULT 1,remark VARCHAR(255)
);

12. 【強制】在數據庫中不能使用物理刪除操作,要使用邏輯刪除。

說明:邏輯刪除在數據刪除后可以追溯到行為操作。不過會使得一些情況下的唯一主鍵變得不唯一,需要根據情況來酌情解決。

13. 【推薦】表的命名最好是遵循“業務名稱表的作用”

正例:alipay_task / force_project / trade_config / tes_question

14. 【推薦】庫名與應用名稱盡量一致。

15. 【推薦】如果修改字段含義或對字段表示的狀態追加時,需要及時更新字段注釋。

16. 【推薦】字段允許適當冗余, 以提高查詢性能, 但必須考慮數據一致。 冗余字段應遵循:

  1. 不是頻繁修改的字段。
  2. 不是唯一索引的字段。
  3. 不是 varchar 超長字段,更不能是 text 字段。

正例:各業務線經常冗余存儲商品名稱,避免查詢時需要調用 IC 服務獲取。

17. 【推薦】單表行數超過 500 萬行或者單表容量超過 2GB, 才推薦進行分庫分表。

說明:如果預計三年后的數據量根本達不到這個級別,請不要在創建表時就分庫分表。

這條建議是基于實際項目中分庫分表的復雜度和維護成本而總結的經驗,確實很有參考價值。下面我幫你詳細說明實際情況和背后的考慮:

17.1. 實際情況分析:

單表數據量和性能瓶頸

  • 單表數據量超過 幾百萬行,數據庫的查詢性能、索引維護、備份恢復等都會受到影響,尤其是沒有做合理索引和查詢優化時。
  • 表容量超過 2GB,尤其是普通的 OLTP 場景,可能導致 I/O 壓力變大,查詢響應變慢。
  • 但具體影響還依賴于硬件性能、數據庫版本、存儲引擎(InnoDB等)、緩存配置等。

分庫分表的復雜度

  • 設計分庫分表架構,代碼復雜度大幅提升,開發和運維成本高。
  • 涉及跨庫事務處理難度大,分布式事務開銷大,調試復雜。
  • 預先分庫分表可能帶來不必要的系統復雜度和風險。

業務增長預估與實際

  • 很多項目上線初期數據量較小,提前做分庫分表導致資源浪費和開發負擔。
  • 預測三年后的數據量不到 500 萬或容量不到 2GB,完全可以先用單庫單表,后期再擴展。
  • 可以結合歸檔策略、清理機制等避免數據爆表。

分庫分表時機

  • 實際上很多大公司都是業務增長到瓶頸才開始分庫分表,采用平滑遷移方案。
  • 使用中間件(如 MyCat、ShardingSphere)或自研分片邏輯,逐步遷移。

17.2. 總結建議:

條件

推薦做法

數據量 < 500萬行,容量 < 2GB

單庫單表即可,先保證穩定

數據量接近或超過 500萬行,容量 > 2GB

評估是否做分表,考慮讀寫壓力

業務增長迅速,數據爆發式增長

盡早設計分庫分表方案

17.3. 實際案例

  • 小型項目:幾萬到幾十萬條數據,一張表即可,簡單易維護。
  • 中型系統:百萬級數據,優化索引、分區表,暫不分庫。
  • 大型互聯網應用:幾千萬甚至億級數據,分庫分表必不可少。

博文參考

《阿里巴巴java規范》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/83222.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83222.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/83222.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

筆試筆記(運維)

&#xff08;數據庫&#xff0c;SQL&#xff09; limit1 隨機返回其中一個聚合函數不可以嵌套使用 【^】這個里面的數據任何形式組合都沒有 sql常用語句順序&#xff1a;from-->where-->group by-->having-->select-->order by-->limit 只要其中一個表存在匹…

Codeforces 1027 Div3(ABCDEF)

前言 無敵&#xff01;&#xff01;第一次打Div3&#xff0c;因為之前打Div4賽時也就三四題&#xff0c;所以在打之前根本沒想到自己能做到賽時三題&#xff01;&#xff01;雖然第三題是離結束十幾秒的時候交的&#xff0c;沒想到判完題比賽結束了還不算賽時通過……TvT A. …

第九天:java注解

注解 1 什么是注解&#xff08;Annotation&#xff09; public class Test01 extends Object{//Override重寫的注解Overridepublic String toString() {return "Test01{}";} }2 內置注解 2.1 Override Override重寫的注解 Override public String toString() {ret…

【論文解讀】Deformable DETR | Deformable Transformers for End-to-End Object Detection

論文地址&#xff1a;https://arxiv.org/pdf/2010.04159 代碼地址&#xff1a;https://github.com/fundamentalvision/Deformable-DETR 摘要 DETR最近被提出&#xff0c;旨在消除物體檢測中許多手工設計的組件的需求&#xff0c;同時展示出良好的性能。然而&#xff0c;由于T…

從0到1上手Trae:開啟AI編程新時代

摘要&#xff1a;字節跳動 2025 年 1 月 19 日發布的 Trae 是一款 AI 原生集成開發環境工具&#xff0c;3 月 3 日國內版推出。它具備 AI 問答、代碼自動補全、基于 Agent 編程等功能&#xff0c;能自動化開發任務&#xff0c;實現端到端開發。核心功能包括智能代碼生成與補全、…

Vue項目打包常見問題

vue的前端項目中&#xff0c;有時候需要多個不同項目合并到一起。有時候有一些特殊要求。 1、打包后不允許生成帶 .map的文件 正常使用npm run build命令打包生成的dist文件中&#xff0c;js文件總會生成一個同名的.map文件&#xff0c;原因如下&#xff1a; ?總結?&#xf…

Linux 學習-模擬實現【簡易版bash】

1、bash本質 在模擬實現前&#xff0c;先得了解 bash 的本質 bash 也是一個進程&#xff0c;并且是不斷運行中的進程 證明&#xff1a;常顯示的命令輸入提示符就是 bash 不斷打印輸出的結果 輸入指令后&#xff0c;bash 會創建子進程&#xff0c;并進行程序替換 證明&#x…

GitHub 趨勢日報 (2025年05月31日)

&#x1f4ca; 由 TrendForge 系統生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日報中的項目描述已自動翻譯為中文 &#x1f4c8; 今日獲星趨勢圖 今日獲星趨勢圖 1153 prompt-eng-interactive-tutorial 509 BillionMail 435 ai-agents-for-begin…

“人單酬“理念:財稅行業的自我驅動革命

引言&#xff1a;當薪酬不再是"固定數字"&#xff0c;而是"成長標尺" "為什么有人拼命工作卻收入停滯&#xff1f;為什么企業總在人才流失中掙扎&#xff1f;"這些問題背后&#xff0c;往往隱藏著傳統薪酬體系的僵化。而"人單酬"&…

AI大模型賦能,aPaaS+iPaaS構建新一代數智化應用|愛分析報告

01 aPaaS和iPaaS成為企業用戶關注重點 PaaS市場定義 根據Gartner的定義&#xff0c;PaaS&#xff08;Platform as a Service&#xff09;平臺是應用基礎架構&#xff08;中間件&#xff09;服務的廣泛集合&#xff0c; 包含應用平臺、集成、業務流程管理、數據服務和AI應用等…

WPS快速排版

論文包括&#xff08;按順序&#xff09;&#xff1a;封面&#xff08;含題目&#xff09;、摘 要、關鍵詞、Abstract&#xff08;英文摘要&#xff09;、Keywords、目錄、正文、參考文獻、在讀期間發表的學術論文及研究成果&#xff0c;致 謝 題目&#xff08;黑小一加粗&…

python第39天打卡

1.灰度圖像 作為圖像數據&#xff0c;相較于結構化數據&#xff08;表格數據&#xff09;他的特點在于他每個樣本的的形狀并不是(特征數&#xff0c;)&#xff0c;而是(寬&#xff0c;高&#xff0c;通道數) # 先繼續之前的代碼 import torch import torch.nn as nn import t…

win11小組件功能缺失的恢復方法

問題說明&#xff1a;重置了win11系統&#xff0c;結果小組件功能找不到了&#xff0c;最后用以下辦法解決。 1. 以管理員身份打開 PowerShell 或 CMD。 2. 運行以下命令&#xff1a; winget install 9MSSGKG348SP 注&#xff1a;如果報錯&#xff0c;可嘗試先卸載再安裝…

Kali Linux從入門到實戰:系統詳解與工具指南

一、Kali Linux簡介 Kali Linux是一款基于Debian的Linux發行版&#xff0c;專為滲透測試和網絡安全審計設計&#xff0c;由Offensive Security團隊維護。其前身是BackTrack&#xff0c;目前集成了超過600款安全工具&#xff0c;覆蓋滲透測試全流程&#xff0c;是網絡安全領域…

C語言 — 文件

目錄 1.流1.1 流的概念1.2 常見的的流 2.文件的打開和關閉2.1 fopen函數2.2 fclose函數2.3 文件的打開和關閉 3.文件的輸入輸出函數3.1 fputc函數3.2 fgetc函數3.3 feof函數和ferror函數3.4 fputs函數3.5 fgets函數3.6 fwrite函數3.7 fread函數3.8 fprintf函數3.9 fscanf函數 4…

Pull Request Integration 拉取請求集成

今天我想要把我創建的項目&#xff0c;通過修改yaml里面的內容&#xff0c;讓我在main分支下的其他分支拉取請求的時候自動化測試拉取的內容&#xff0c;以及將測試結果上傳到控制臺云端。 首先我通過修改yaml文件里面的內容 name: Build and Teston:push:branches:- mainjobs:…

NodeJS全棧開發面試題講解——P3數據庫(MySQL / MongoDB / Redis)

3.1 如何用 Node.js 連接 MySQL&#xff1f;你用過哪些 ORM&#xff1f; 面試官您好&#xff0c;我先介紹如何用 Node.js 連接 MySQL&#xff0c;然后補充我常用的 ORM 工具。 &#x1f50c; 原生連接 MySQL 使用 mysql2 模塊&#xff1a; npm install mysql2 const mysql …

Redis最佳實踐——性能優化技巧之數據結構選擇

Redis在電商應用中的數據結構選擇與性能優化技巧 一、電商核心場景與數據結構選型矩陣 應用場景推薦數據結構內存占用讀寫復雜度典型操作商品詳情緩存Hash低O(1)HGETALL, HMSET購物車管理Hash中O(1)HINCRBY, HDEL用戶會話管理Hash低O(1)HSETEX, HGET商品分類目錄Sorted Set高O…

題單:最大公約數(輾轉相除法)

題目描述 所謂 “最大公約數&#xff08;GCD&#xff09;” &#xff0c;是指所有公約數中最大的那個&#xff0c;例如 12 和 1818 的公約數有 1,2,3,6 &#xff0c;所以 12 和 18 的最大公約數為 6 。 輾轉相除法&#xff0c;又名歐幾里德算法&#xff08;Euclidean Algorit…

hadoop完整安裝教程(附帶jdk1.8+vim+ssh安裝)

本篇帶領大家在uabntu20虛擬機上安裝hadoop&#xff0c;其中還包括jdk1.8、ssh、vim的安裝教程&#xff0c;&#xff08;可能是&#xff09;史上最全的安裝教程&#xff01;&#xff01;&#xff01;若有疑問可以在評論區或者私信作者。建議在虛擬機上觀看此博客&#xff0c;便…