日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UUID正在被NanoID取代?

Android編程精選 ? 來源:Android編程精選 ? 作者:Android編程精選 ? 2022-04-02 14:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

UUID 是軟件開發(fā)中最常用的通用標(biāo)識符之一。然而,在過去的幾年里,其他的競品挑戰(zhàn)了它的存在。 其中,NanoID 是 UUID 的主要競爭對手之一。 因此,在本文中,我們將展開討論 NanoID 的功能、它的亮點以及它的局限性,以便讓我們更好地了解何時使用它。

了解 NanoID 及其用法

對于 JavaScript,生成 UUID 或 NanoID 都非常簡單。它們都有對應(yīng)的 NPM 包來幫助我們實現(xiàn)生成。 我們所需要做的就是運行npm i nanoid命令安裝 NanoID NPM 庫 并在我們的項目中使用它:

import{nanoid}from'nanoid'; model.id=nanoid();

你是否知道 NanoID 每周的 NPM 下載量超過 1175.4 萬,并且運行起來比 UUID 快 60%?

此外,NanoID 比 UUID 年輕了將近 7 年,而且它的 GitHub 星數(shù)已經(jīng)比 UUID 多。 下圖顯示了這兩個之間的 npm 趨勢比較,我們可以看到 NanoID 的上升趨勢與 UUID 的平坦進展有強烈的對比。

e378c2ee-b233-11ec-aa7f-dac502259ad0.png

image.png

https://www.npmtrends.com/nanoid-vs-uuid

我希望這些數(shù)字已經(jīng)說服你去嘗試 NanoID。

但是,這兩者之間的主要區(qū)別很簡單。它歸結(jié)為鍵使用的字母表。

由于 NanoID 使用比 UUID 更大的字母表,因此較短的 ID 可以用于與較長的 UUID 相同的目的。

1. NanoID 只有 108 個字節(jié)那么大

與 UUID 不同,NanoID 的大小要小 4.5 倍,并且沒有任何依賴關(guān)系。此外,大小限制已用于將大小從另外 35% 減小。 大小減少直接影響數(shù)據(jù)的大小。例如,使用 NanoID 的對象小而緊湊,能夠用于數(shù)據(jù)傳輸和存儲。隨著應(yīng)用程序的增長,這些數(shù)字變得明顯起來。

2. 更安全

在大多數(shù)隨機生成器中,它們使用不安全的Math.random()。但是,NanoID 使用crypto module和Web Crypto API,意味著 NanoID 更安全。 此外,NanoID 在 ID 生成器的實現(xiàn)過程中使用了自己的算法,稱為 統(tǒng)一算法,而不是使用“隨機 % 字母表”random % alphabet。

3. 它既快速又緊湊

NanoID 比 UUID 快 60%。與 UUID 字母表中的 36 個字符不同,NanoID 只有 21 個字符。

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz-

此外,NanoID 支持 14 種不同的編程語言,它們分別是:

C#C++、Clojure 和 ClojureScript、Crystal、Dart & Flutter、Deno、Go、Elixir、Haskell、Janet、Java、Nim、Perl、PHP、帶字典的 Python、Ruby、Rust、Swift

4. 兼容性

它還支持 PouchDB、CouchDB WebWorkers、Rollup 以及 React 和 Reach-Native 等庫。 我們可以使用npx nanoid在終端中獲得唯一 ID。在 JavaScript 中使用 NanoID 唯一的要求是要先安裝 NodeJS。

e39d5a14-b233-11ec-aa7f-dac502259ad0.png

image.png

此外,我們還可以在 Redux toolkit 中找到 NanoID,并將其用于其他用例,如下所示;

import{nanoid}from‘@reduxjs/toolkit’ console.log(nanoid())//‘dgPXxUz_6fWIQBD8XmiSy’

5. 自定義字母

NanoID 的另一個現(xiàn)有功能是它允許開發(fā)人員使用自定義字母表。我們可以更改文字或 id 的大小,如下所示:

import{customAlphabet}from'nanoid'; constnanoid=customAlphabet('ABCDEF1234567890',12); model.id=nanoid();

在上面的示例中,我將自定義字母表定義為ABCDEF1234567890,并將 Id 的大小定義為 12。另外,搜索公眾號互聯(lián)網(wǎng)架構(gòu)師后臺回復(fù)“面試”,獲取一份驚喜禮包。

6. 沒有第三方依賴

由于 NanoID 不依賴任何第三方依賴,隨著時間的推移,它能夠變得更加穩(wěn)定自治。 從長遠來看,這有利于優(yōu)化包的大小,并使其不太容易出現(xiàn)依賴項帶來的問題。

局限性和未來重點

根據(jù) StackOverflow 中的許多專家意見,使用 NanoID 沒有明顯的缺點或限制。 非人類可讀是許多開發(fā)人員在 NanoID 中看到的主要缺點,因為它使調(diào)試變得更加困難。但是,與 UUID 相比,NanoID 更短且可讀。 另外,如果你使用 NanoID 作為表的主鍵,如果你使用相同的列作為聚集索引也會出現(xiàn)問題。這是因為 NanoID 不是連續(xù)的。

在將來……

NanoID 正逐漸成為 JavaScript 最受歡迎的唯一 id 生成器,大多數(shù)開發(fā)人員更喜歡選擇它而不是更喜歡 UUID。

e3aadd10-b233-11ec-aa7f-dac502259ad0.png

來源:https://www.npmjs.com/package/nanoid 上述基準(zhǔn)測試顯示了 NanoID 與其他主要 id 生成器相比的性能。

使用默認字母表每秒可生成超過 220 萬個唯一 ID,使用自定義字母表每秒可生成超過 180 萬個唯一 ID。

根據(jù)我使用 UUID 和 NanoID 的經(jīng)驗,考慮到它的小尺寸、URL 友好性、安全性和速度,我建議在任何未來的項目中使用 NanoID 而不是 UUID。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 軟件開發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    715

    瀏覽量

    30161
  • UUID
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    8613

原文標(biāo)題:UUID正在被NanoID取代?

文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    移為通信精彩亮相GITEX AFRICA 2026

    在多數(shù)成熟市場,物聯(lián)網(wǎng)的討論往往圍繞數(shù)據(jù)、平臺與智能應(yīng)用展開,但在非洲這樣的新興市場,這一邏輯正在被重新定義。
    的頭像 發(fā)表于 04-17 15:32 ?533次閱讀

    科大訊飛AstronClaw全棧升級發(fā)布

    當(dāng)AI成為“思考的中樞”,硬件成為“行動的觸角”,一個屬于AI Agent的執(zhí)行時代,正在被重新定義!
    的頭像 發(fā)表于 04-16 14:58 ?475次閱讀

    OpenClaw 部署完成后,你的系統(tǒng)正在被 4 萬個攻擊者盯著

    巨大的安全漏洞里裸奔。這不是危言聳聽。以下所有數(shù)據(jù)均有據(jù)可查。01丨三個真實漏洞,三組真實數(shù)據(jù)漏洞一:你的OpenClaw正在被人暴力破解CVE-2026-25253,CVSS評分8.
    的頭像 發(fā)表于 04-15 11:32 ?7741次閱讀
    OpenClaw 部署完成后,你的系統(tǒng)<b class='flag-5'>正在被</b> 4 萬個攻擊者盯著

    未來測試圈新范式:不懂Skills的測試人,正在被AI悄悄淘汰

    最近,在測試圈和AI圈,"Skills"這個概念的熱度高居不下,成為行業(yè)熱議的焦點話題。不少測試工程師和AI愛好者都在詢問我:Skills到底是什么?它和剛推出的MCP(ModelControlPlatform)有什么關(guān)系?作為測試人員有必要學(xué)習(xí)這項技術(shù)嗎?如果是零基礎(chǔ)該如何快速上手?其實,作為測試從業(yè)者,我們學(xué)習(xí)Skills的核心目的極其樸素且實用:用最低
    的頭像 發(fā)表于 04-10 10:02 ?529次閱讀
    未來測試圈新范式:不懂Skills的測試人,<b class='flag-5'>正在被</b>AI悄悄淘汰

    全方位對比:Redis能取代MySQL嗎?看完這篇你就懂了

    Redis能不能取代MySQL?答案很明確:不能取代,但可以互補。
    的頭像 發(fā)表于 04-07 10:50 ?214次閱讀
    全方位對比:Redis能<b class='flag-5'>取代</b>MySQL嗎?看完這篇你就懂了

    固態(tài)變壓器(SST):破解 AI 工廠電力接入瓶頸的“核武器”

    人工智能(Generative AI)、大語言模型(LLM)以及深度學(xué)習(xí)網(wǎng)絡(luò)的指數(shù)級增長,正在對底層的計算基礎(chǔ)設(shè)施提出前所未有的苛刻要求。當(dāng)前,傳統(tǒng)的“數(shù)據(jù)中心”(Data Centers)正在被以智算為主的“AI 工廠”(AI Factories)所
    的頭像 發(fā)表于 03-15 18:09 ?528次閱讀
    固態(tài)變壓器(SST):破解 AI 工廠電力接入瓶頸的“核武器”

    算法一年一變,芯片十年不換:邊緣計算正在被時間差撕裂

    算法迭代速度正在顯著快于硬件更換周期,邊緣GPU正面臨一場日益嚴(yán)峻的考驗。“這款芯片設(shè)計之時,Transformer模型才剛剛進入主流視野;等到芯片完成量產(chǎn)并大規(guī)模裝車,主流算法形態(tài)可能已經(jīng)發(fā)生
    的頭像 發(fā)表于 01-15 11:14 ?633次閱讀
    算法一年一變,芯片十年不換:邊緣計算<b class='flag-5'>正在被</b>時間差撕裂

    一文搞清 BLE 藍牙 UUID

    一文帶你搞清楚藍牙 UUID ...... 矜辰所致
    的頭像 發(fā)表于 12-18 11:23 ?4965次閱讀
    一文搞清 BLE 藍牙 <b class='flag-5'>UUID</b>

    安世正在被一點點吃掉份額?

    行業(yè)資訊
    芯廣場
    發(fā)布于 :2025年12月09日 16:53:49

    輕資產(chǎn)時代來臨!為何UPS租賃正在取代傳統(tǒng)采購模式?

    UPS
    上海優(yōu)比施電子科技有限公司
    發(fā)布于 :2025年12月09日 09:53:35

    AI接手,微博正在重寫廣告的傳播邏輯

    正在被AI改寫為品牌與用戶對話的起點。 微博通過AI原生評論、智能評論引導(dǎo)、微博商搜話題詞、視頻語義套裝等廣告產(chǎn)品,分別切入評論、話題與視頻三大核心場景,為品牌打開了傳播的“后半場”。 它的目標(biāo)很明確:讓廣告不止于被
    的頭像 發(fā)表于 11-21 10:03 ?468次閱讀
    AI接手,微博<b class='flag-5'>正在</b>重寫廣告的傳播邏輯

    在修改廣播內(nèi)容(如名稱、UUID、廣播數(shù)據(jù)等)時是否需要停用當(dāng)前廣播功能

    在修改廣播內(nèi)容(如名稱、UUID、廣播數(shù)據(jù)等)時, 通常需要先停止當(dāng)前廣播,修改參數(shù)后再重新啟動廣播 ,才能確保新配置生效且功能穩(wěn)定。具體邏輯如下: 1. 主流藍牙芯片的操作流程(以 NORDIC
    發(fā)表于 10-31 13:01

    NORDIC藍牙芯片修改廣播內(nèi)容(如名稱、MAC 地址、UUID 等)后是否需要重啟才能生效

    藍牙芯片修改廣播內(nèi)容(如名稱、MAC 地址、UUID 等)后是否需要重啟才能生效,取決于芯片的硬件設(shè)計、固件實現(xiàn)以及具體修改的參數(shù)類型,不能一概而論。以下是常見情況的分析: 1. 大部分廣播參數(shù)
    發(fā)表于 10-31 12:57

    自動駕駛中Transformer大模型會取代深度學(xué)習(xí)嗎?

    [首發(fā)于智駕最前沿微信公眾號]近年來,隨著ChatGPT、Claude、文心一言等大語言模型在生成文本、對話交互等領(lǐng)域的驚艷表現(xiàn),“Transformer架構(gòu)是否正在取代傳統(tǒng)深度學(xué)習(xí)”這一話題一直被
    的頭像 發(fā)表于 08-13 09:15 ?4392次閱讀
    自動駕駛中Transformer大模型會<b class='flag-5'>取代</b>深度學(xué)習(xí)嗎?

    傳統(tǒng)的芯片設(shè)計,正在被顛覆

    幾十年來,半導(dǎo)體開發(fā)一直遵循著24至36個月的穩(wěn)定設(shè)計開發(fā)周期。雖然這種模式在計算需求較低且創(chuàng)新速度更易于管理的情況下運作良好,但人工智能卻創(chuàng)造了一套新的規(guī)則。人工智能的飛速發(fā)展正在迅速超越當(dāng)前芯片
    的頭像 發(fā)表于 06-27 12:38 ?1044次閱讀
    傳統(tǒng)的芯片設(shè)計,<b class='flag-5'>正在被</b>顛覆
    长乐市| 巴马| 武平县| 甘孜| 田阳县| 泰来县| 务川| 永和县| 旌德县| 黔南| 名山县| 长岭县| 遂平县| 屯留县| 霍林郭勒市| 枝江市| 博湖县| 邵阳县| 沙洋县| 苗栗市| 沧州市| 河南省| 正镶白旗| 巫山县| 潼关县| 五指山市| 蓬溪县| 界首市| 菏泽市| 盐津县| 滁州市| 固阳县| 淮南市| 双桥区| 英超| 吕梁市| 成安县| 平原县| 张掖市| 清原| 南部县|