在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

UUID正在被NanoID取代?

Android編程精選 ? 來源:Android編程精選 ? 作者:Android編程精選 ? 2022-04-02 14:52 ? 次閱讀

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

了解 NanoID 及其用法

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

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

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

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

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 個(gè)字節(jié)那么大

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

2. 更安全

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

3. 它既快速又緊湊

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

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

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

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

6. 沒有第三方依賴

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

局限性和未來重點(diǎn)

根據(jù) StackOverflow 中的許多專家意見,使用 NanoID 沒有明顯的缺點(diǎn)或限制。 非人類可讀是許多開發(fā)人員在 NanoID 中看到的主要缺點(diǎn),因?yàn)樗拐{(diào)試變得更加困難。但是,與 UUID 相比,NanoID 更短且可讀。 另外,如果你使用 NanoID 作為表的主鍵,如果你使用相同的列作為聚集索引也會(huì)出現(xiàn)問題。這是因?yà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 生成器相比的性能。

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

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

審核編輯 :李倩

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

    關(guān)注

    0

    文章

    621

    瀏覽量

    27384
  • UUID
    +關(guān)注

    關(guān)注

    0

    文章

    22

    瀏覽量

    8145

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    KT6368A藍(lán)牙芯片的uuid完整的是多少,以及app或者小程序開發(fā)的注意點(diǎn)

    目前KT6368A藍(lán)牙雙模芯片用的是16位的uuid,當(dāng)然這個(gè)uuid或者特征值有很多種 16位的uuid是最簡單的一種,如下圖所示,當(dāng)然網(wǎng)上隨便搜搜也有很多的介紹,想了解也可以搜搜
    的頭像 發(fā)表于 12-29 09:46 ?129次閱讀
    KT6368A藍(lán)牙芯片的<b class='flag-5'>uuid</b>完整的是多少,以及app或者小程序開發(fā)的注意點(diǎn)

    陶瓷電容取代LDO中的鉭電容

    電子發(fā)燒友網(wǎng)站提供《陶瓷電容取代LDO中的鉭電容.pdf》資料免費(fèi)下載
    發(fā)表于 10-11 09:28 ?0次下載
    陶瓷電容<b class='flag-5'>取代</b>LDO中的鉭電容

    求助,求分享一款可以取代IA2410的運(yùn)放?

    求一款TI的 可以取代IA2410
    發(fā)表于 08-22 06:10

    芯片行業(yè),正在被改寫

    個(gè)性化和以軟件為中心的體驗(yàn)。對于許多行業(yè)專家來說,半導(dǎo)體行業(yè)顯然正在經(jīng)歷一場大規(guī)模的轉(zhuǎn)型,其客戶要求各個(gè)行業(yè)都進(jìn)行變革。在這個(gè)復(fù)雜的領(lǐng)域,出現(xiàn)了一個(gè)新的機(jī)遇——半
    的頭像 發(fā)表于 08-09 08:28 ?299次閱讀
    芯片行業(yè),<b class='flag-5'>正在被</b>改寫

    CPU,正在被AI時(shí)代拋棄?

    大模型生態(tài)要想持續(xù)不斷地往前演進(jìn),無疑要靠一個(gè)個(gè)實(shí)打?qū)嵉男I(yè)務(wù)落地把整個(gè)生態(tài)構(gòu)建起來,英特爾聯(lián)合千帆大模型平臺(tái)正是在幫助企業(yè)以最少的成本落地大模型應(yīng)用,讓他們在探索大模型應(yīng)用時(shí)找到了更具效價(jià)比的選項(xiàng)。
    的頭像 發(fā)表于 07-11 17:14 ?269次閱讀
    CPU,<b class='flag-5'>正在被</b>AI時(shí)代拋棄?

    ESP32如何獲取到要連接的藍(lán)牙uuid

    我現(xiàn)在使用esp32 wroom 32 燒寫了 例程里面的gatt_client 但是我搜索到周邊的藍(lán)牙并且連接上,獲取不到 對方的uuid 如何 獲取到要連接的藍(lán)牙uuid 我看例程里面是寫死
    發(fā)表于 06-24 09:12

    求助,ble_spp_server demo為什么修改不了UUID

    /// SPP Service static const uint16_t spp_service_uuid = 0xFFE0; /// Characteristic UUID #define
    發(fā)表于 06-24 07:28

    ESP32-C3私有服務(wù)的UUID設(shè)置為128bit UUID會(huì)報(bào)錯(cuò)怎么解決?

    esp-idfexamplesbluetoothbluedroidblegatt_server_service_table的DEMO上修改16bit 的私有服務(wù)UUID為128bit的UUID,但改完后燒錄的串口信息會(huì)報(bào)錯(cuò),ble調(diào)試軟件可以連接上藍(lán)牙但是看不到該服務(wù),我
    發(fā)表于 06-20 08:19

    esp32在VSCode ESP-IDF的示例程序中如何更改默認(rèn)的128bit的UUID

    esp32在VSCode ESP-IDF中的示例程序中如何更改默認(rèn)的128bit的UUID
    發(fā)表于 06-07 08:27

    在SimpleCentral_processGATTDiscEvent里面,根據(jù)UUID發(fā)現(xiàn)charHandle,這個(gè)charHandle在UUID改為128bit后是否還是保存為8字節(jié)?

    使用CC2652R7作為BLE主機(jī),在例程simple_central的基礎(chǔ)上修改讀寫數(shù)據(jù)的UUID為128 bit。有三個(gè)問題想要請教一下:1、在
    發(fā)表于 05-30 07:55

    在被超60億美元收購后,日本光刻膠巨頭JSR尋求擴(kuò)大規(guī)模

    在被超60億美元收購后,日本光刻膠巨頭JSR積極尋求擴(kuò)大規(guī)模,以適應(yīng)全球芯片制造行業(yè)的快速發(fā)展。
    的頭像 發(fā)表于 04-29 14:37 ?767次閱讀

    EDA再掀熱潮,中國積極投身其中成為重要參與者

    CPU正在被異構(gòu)計(jì)算所取代,我們看到云成為 CPU、GPU、AI 處理器、定制加速器、FPGA 等的混合體。其中許多新處理器是由初創(chuàng)公司開發(fā)的,這對于提高不同類別計(jì)算的效率至關(guān)重要。
    發(fā)表于 04-17 14:14 ?552次閱讀

    請問CYBLE-214009-00支持支持改uuid嗎?

    如題所述: CYBLE-214009-00支持支持改uuid嗎? 另外我可以在哪里找到CYBLE-214009-00的指令集 Does CYBLE-214009-00 support uuid?
    發(fā)表于 02-21 06:18

    求助,是否可以動(dòng)態(tài)修改藍(lán)牙Service和Characteristic的UUID

    可以通過軟件接口動(dòng)態(tài)修改藍(lán)牙Service和Characteristic的UUID嗎? PSoC6,PSoC Creator,PDL3.1.2
    發(fā)表于 02-18 07:05

    銅纜會(huì)被光纖完全取代嗎?為什么光纖目前取代不了銅纜?

    銅纜會(huì)被光纖完全取代嗎?為什么光纖目前取代不了銅纜? 隨著科技的進(jìn)步和互聯(lián)網(wǎng)的迅猛發(fā)展,數(shù)字通信技術(shù)也取得了巨大的突破。銅纜作為傳統(tǒng)的網(wǎng)絡(luò)連接媒介,在過去幾十年里扮演了重要的角色,但隨著光纖技術(shù)
    的頭像 發(fā)表于 02-04 10:25 ?1449次閱讀
    主站蜘蛛池模板: 国产亚洲精品aa在线看| 伊人婷婷色香五月综合缴激情| 久久久久久噜噜噜久久久精品| 亚洲va中文字幕| 亚洲电影天堂网| 特级毛片永久久免费观看| 鲁丝一区二区三区| 六月丁香激情综合成人| 中文在线 | 中文| aa小视频| 久久精品免看国产| 哥也操| 精品欧美| www.亚洲日本| 色综合天天综合网国产成人网| 一色屋成人免费精品网站| 午夜片网站| 欧美18性精品| 成人久久精品| 国产精品综合色区在线观看| 毛片免| 欧美行爱| 国产亚洲新品一区二区| 亚洲午夜免费视频| 国产午夜免费| 视频免费1区二区三区| 亚洲二区视频| 亚洲大香伊人蕉在人依线| 日本高清黄色| 国产精品免费拍拍拍| 天天干天天拍| 手机看日韩毛片福利盒子| 天天干夜夜曰| 成人窝窝午夜看片| 亚洲女人小便| 男人呻吟双腿大开男男h互攻| 视频一区二区在线播放| 亚洲成人精品在线| 麻豆国产三级在线观看| 五月婷综合网| 美女bbbb视频|