色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

UUID正在被NanoID取代?

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

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

了解 NanoID 及其用法

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

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

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

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

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

image.png

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

我希望這些數字已經說服你去嘗試 NanoID。

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

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

1. NanoID 只有 108 個字節那么大

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

2. 更安全

在大多數隨機生成器中,它們使用不安全的Math.random()。但是,NanoID 使用crypto module和Web Crypto API,意味著 NanoID 更安全。 此外,NanoID 在 ID 生成器的實現過程中使用了自己的算法,稱為 統一算法,而不是使用“隨機 % 字母表”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 的另一個現有功能是它允許開發人員使用自定義字母表。我們可以更改文字或 id 的大小,如下所示:

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

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

6. 沒有第三方依賴

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

局限性和未來重點

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

在將來……

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

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

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

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

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

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 軟件開發
    +關注

    關注

    0

    文章

    624

    瀏覽量

    27390
  • UUID
    +關注

    關注

    0

    文章

    22

    瀏覽量

    8153

原文標題:UUID正在被NanoID取代?

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

收藏 人收藏

    評論

    相關推薦

    KT6368A藍牙芯片的uuid完整的是多少,以及app或者小程序開發的注意點

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

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

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

    求助,求分享一款可以取代IA2410的運放?

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

    芯片行業,正在被改寫

    個性化和以軟件為中心的體驗。對于許多行業專家來說,半導體行業顯然正在經歷一場大規模的轉型,其客戶要求各個行業都進行變革。在這個復雜的領域,出現了一個新的機遇——半
    的頭像 發表于 08-09 08:28 ?310次閱讀
    芯片行業,<b class='flag-5'>正在被</b>改寫

    CPU,正在被AI時代拋棄?

    大模型生態要想持續不斷地往前演進,無疑要靠一個個實打實的小業務落地把整個生態構建起來,英特爾聯合千帆大模型平臺正是在幫助企業以最少的成本落地大模型應用,讓他們在探索大模型應用時找到了更具效價比的選項。
    的頭像 發表于 07-11 17:14 ?279次閱讀
    CPU,<b class='flag-5'>正在被</b>AI時代拋棄?

    ESP32如何獲取到要連接的藍牙uuid

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

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

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

    ESP32-C3私有服務的UUID設置為128bit UUID會報錯怎么解決?

    esp-idfexamplesbluetoothbluedroidblegatt_server_service_table的DEMO上修改16bit 的私有服務UUID為128bit的UUID,但改完后燒錄的串口信息會報錯,ble調試軟件可以連接上藍牙但是看不到該服務,我
    發表于 06-20 08:19

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

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

    在SimpleCentral_processGATTDiscEvent里面,根據UUID發現charHandle,這個charHandle在UUID改為128bit后是否還是保存為8字節?

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

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

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

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

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

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

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

    求助,是否可以動態修改藍牙Service和Characteristic的UUID

    可以通過軟件接口動態修改藍牙Service和Characteristic的UUID嗎? PSoC6,PSoC Creator,PDL3.1.2
    發表于 02-18 07:05

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

    銅纜會被光纖完全取代嗎?為什么光纖目前取代不了銅纜? 隨著科技的進步和互聯網的迅猛發展,數字通信技術也取得了巨大的突破。銅纜作為傳統的網絡連接媒介,在過去幾十年里扮演了重要的角色,但隨著光纖技術
    的頭像 發表于 02-04 10:25 ?1523次閱讀
    主站蜘蛛池模板: 青草在线观看视频 | 色99蜜臀AV无码 | 九色终合九色综合88 | freevideoshd| 精精国产www视频在线观看免费 | 老板揉搓秘书丰满大乳 | 快播黄色电影 | 特污兔午夜影视院 | 18禁国产精品久久久久久麻豆 | 一个人免费完整在线观看影院 | 特大黑人娇小亚洲女mp4 | 亚洲精品国产在线网站 | 幸福草电视剧演员表介绍 | 日日日夜夜在线视频 | 色欲AV精品人妻一区二区三区 | 国产亚洲精品视频在线网 | av影音先锋影院男人站 | 国产午夜永久福利视频在线观看 | 一个人免费视频在线观看高清频道 | 狠狠色欧美亚洲狠狠色www | 韩国污动漫无遮掩无删减电脑版 | 久久精品国产免费播放 | 亚洲日本欧美日韩高观看 | 蜜桃AV色欲A片精品一区 | 国产电影一区二区三区 | 国产免费毛片在线观看 | 国产人妻人伦精品59HHH | 俄罗斯雏妓的BBB孩交 | 偷拍 自怕 亚洲 在线 | 一一本之道高清视频在线观看中文字幕 | 中文在线观看永久免费 | 在线观看亚洲免费人成网址 | 羲义嫁密着中出交尾gvg794 | 天天狠狠色综合图片区 | 国产区在线不卡视频观看 | 日本精品卡一卡2卡3卡四卡三卡 | 免费视频久久只有精品 | 熟妇的味道HD中文字幕 | 亚洲午夜精品A片久久WWW软件 | 日本黄色成年人免费观看 | 超碰在线视频 免费 |