在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    阿里新規(guī):換掉UUID,NanoID更快更安全

    阿里新規(guī):換掉UUID,NanoID更快更安全

    文章來源:https://c1n.cn/WcAl0

    目錄

    前言

    UUID 是軟件開發(fā)中最常用的通用標識符之一。然而,在過去的幾年里,其他的競品挑戰(zhàn)了它的存在。

    其中,NanoID 是 UUID 的主要競爭對手之一。

    因此,在本文中,我們將展開討論 NanoID 的功能、它的亮點以及它的局限性,以便讓我們更好地了解何時使用它。

    了解 NanoID 及其用法

    對于 JavaScript,生成 UUID 或 NanoID 都非常簡單。它們都有對應的 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 的平坦進展有強烈的對比。

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

    我希望這些數(shù)字已經(jīng)說服你去嘗試 NanoID。但是,這兩者之間的主要區(qū)別很簡單。它歸結為鍵使用的字母表。

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

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

    與 UUID 不同,NanoID 的大小要小 4.5 倍,并且沒有任何依賴關系。此外,大小限制已用于將大小從另外 35% 減小。

    大小直接影響數(shù)據(jù)的大小。例如,使用 NanoID 的對象小而緊湊,能夠用于數(shù)據(jù)傳輸和存儲。隨著應用程序的增長,這些數(shù)字變得明顯起來。

    | 更安全

    在大多數(shù)隨機生成器中,它們使用不安全的 Math.random()。但是,NanoID 使用 crypto module 和 Web Crypto API,意味著 NanoID 更安全。

    此外,NanoID 在 ID 生成器的實現(xiàn)過程中使用了自己的算法,稱為統(tǒng)一算法,而不是使用“隨機 % 字母表” random % alphabet。

    我們創(chuàng)建了一個高質量的技術交流群,與優(yōu)秀的人在一起,自己也會優(yōu)秀起來,趕緊點擊加群,享受一起成長的快樂。

    | 它既快速又緊湊

    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。

    | 兼容性

    它還支持 PouchDB、CouchDB WebWorkers、Rollup 以及 React 和 Reach-Native 等庫。

    我們可以使用 npx nanoid 在終端中獲得唯一 ID。在 JavaScript 中使用 NanoID 唯一的要求是要先安裝 NodeJS。

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

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

    | 自定義字母

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

    如下所示:

    import { customAlphabet } from ‘nanoid’; const nanoid = customAlphabet(‘ABCDEF1234567890’, 12); model.id = nanoid();

    在上面的示例中,我將自定義字母表定義為 ABCDEF1234567890,并將 Id 的大小定義為 12。

    | 沒有第三方依賴

    由于 NanoID 不依賴任何第三方依賴,隨著時間的推移,它能夠變得更加穩(wěn)定自治。

    從長遠來看,這有利于優(yōu)化包的大小,并使其不太容易出現(xiàn)依賴項帶來的問題。

    局限性和未來重點

    根據(jù) StackOverflow 中的許多專家意見,使用 NanoID 沒有明顯的缺點或限制。

    非人類可讀是許多開發(fā)人員在 NanoID 中看到的主要缺點,因為它使調試變得更加困難。但是,與 UUID 相比,NanoID 更短且可讀。

    另外,如果你使用 NanoID 作為表的主鍵,如果你使用相同的列作為聚集索引也會出現(xiàn)問題。這是因為 NanoID 不是連續(xù)的。

    在將來……

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

    https://www.npmjs.com/package/nanoid

    上述基準測試顯示了 NanoID 與其他主要 id 生成器相比的性能:使用默認字母表每秒可生成超過 220 萬個唯一 ID,使用自定義字母表每秒可生成超過 180 萬個唯一 ID。

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

    因此,我邀請您在下一個項目中試用 NanoID,并在評論部分與其他人分享您的想法。

    鄭重聲明:本文內容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權歸原作者所有,如有侵權請聯(lián)系管理員(admin#wlmqw.com)刪除。
    用戶投稿
    上一篇 2022年6月21日 18:18
    下一篇 2022年6月21日 18:19

    相關推薦

    • 30個無加盟費的項目(茶顏悅色奶茶店加盟費多少)

      茶顏悅色又爆了,8月18日,茶顏悅色南京門店正式開業(yè),開張不到半小時,門店就人滿為患,消費者的購買熱情十分高漲,而由于人流量過大造成擁堵,茶顏悅色也不得不暫停營業(yè)。 當然,這里面排…

      2022年11月27日
    • 凈利潤率越高越好嗎(凈利潤率多少合適)

      一、持續(xù)增收不增利,平均凈利潤率首次跌入個位數(shù) 2021年,增收不增利依舊是行業(yè)主流。具體來看,大部分企業(yè)營業(yè)收入呈增長態(tài)勢,E50企業(yè)平均同比增速達到17.3%,但是利潤增速則明…

      2022年11月26日
    • 規(guī)范透明促PPP高質量發(fā)展——16萬億元大市場迎來新規(guī)

      近日,財政部印發(fā)《關于進一步推動政府和社會資本合作(PPP)規(guī)范發(fā)展、陽光運行的通知》,從做好項目前期論證、推動項目規(guī)范運作、嚴防隱性債務風險、保障項目陽光運行四個方面進一步規(guī)范P…

      2022年11月25日
    • 推薦3種白手起家的賺錢項目(白手起家賺錢項目有哪些)

      如今社會壓力非常的大,家有老少要養(yǎng)活,這些都加速了窮人想要創(chuàng)業(yè)的欲望,但是創(chuàng)業(yè)路總是那么的艱難,資金就是創(chuàng)業(yè)的重頭戲,所以選擇一個低成本又賺錢的項目是大多數(shù)人最期望的了,那么有哪些…

      2022年11月25日
    • 百度關鍵詞快速排名的4大原理解析(百度怎么刷關鍵詞)

      近期百度公告驚雷算法2.0,升級之快還是第一次吧,看來百度對于刷點擊行為是零容忍了。之前尹華峰SEO技術博客介紹過一篇如何使用刷點擊工具,其實市面上有很多這類SEO快速排名的軟件,…

      2022年11月25日
    • 閑魚運營的4大技巧解析(閑魚運營怎么做)

      熟悉我又來了,上一次寫的文章是爆出風水項目的潛規(guī)則,但那個項目已經(jīng)涼涼了。 這一次我是要教一些小白,你們第一次做互聯(lián)網(wǎng)的建議做的項目之一,這個項目就是閑魚賣二手物品賺差價了!!! …

      2022年11月24日
    • 2023年農村創(chuàng)業(yè)最好的種植項目有哪些(2023年農村宅基地)

      隨著2023年時間的臨近,有關農村創(chuàng)業(yè)大家也都十分關注。2023年農村創(chuàng)業(yè)最好的種植項目有哪些?新的一年農村創(chuàng)業(yè)到底做什么最能賺錢呢?今天小編整理了一些非常具有發(fā)展?jié)摿Φ霓r村種植業(yè)…

      2022年11月23日
    • 汕梅高速將改擴建為雙向八車道 預計2026年建成通車

      昨日上午,汕梅高速改擴建項目在梅州舉行建設動員會,標志著廣東省首條山嶺重丘區(qū)高速公路改擴建項目將全面開工建設。 汕梅高速是廣東省東北部南北貨運的重要通道,聯(lián)通粵贛閩三省,承擔著粵東…

      2022年11月23日
    • 阿里上線游戲社區(qū)“嗶嗶”

      阿里巴巴旗下app匯總 概要菜鳥裹裹是阿里巴巴旗下手機軟件,網(wǎng)羅國內大部分快遞物流信息,不用進入淘寶即可查快件,建立菜鳥聯(lián)盟,使 淘寶大學App 阿里巴巴旗下app匯總 概要淘寶大…

      2022年11月23日
    • 微信任務平臺(微信任務平臺源碼)

      本文主要講的是微信任務平臺,以及和微信任務平臺源碼相關的知識,如果覺得本文對您有所幫助,不要忘了將本文分享給朋友。 微信推廣任務平臺哪個好? 對于微信推廣任務平臺的來說的話,我覺得…

      2022年11月22日

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息