Nano ID

Nanoid İle Güvenilir Benzersiz ID Oluşturma

Günümüzde uygulama geliştirirken kayıt altında tutacağımız bilgilere bir kimlik numarası (ID) vermek oldukça önemlidir. Bu ID ile istediğimiz bilgiye rahatlıkla ulaşabiliyoruz. Mesela veritabanında tutulan ürün bilgilerimiz olduğunu düşünelim her ürün için benzersiz bir kimlik no verirsek, o kimlik no ile ürüne çok hızlı şekilde ulaşabilir ve üzerinde işlemler yapabiliriz.

ID oluşturmak için farklı yöntemler bulunur. Mesela en basiti sıralı numara vermektir. Mesela ilk yatın ID değeri 1 sonrakinin 2 … sonraki n şeklinde ilerleyecektir. Dikkat edilmesi gereken benzersiz olmasıdır. Yada romdom bir değer seçilerek de bu işlem yapılabilir.

Fakat günümüzde ID ve benzersiz kelimeler üretmek için farklı araçlar / kütüphaneler mevcuttur. Bunlardan en popüler olanlarından bir tanesi nanoiddir.

Nanoid Nedir?

Nanoid güvenli ve hızlı bir şekilde benzersiz ID değerleri üretmek için geliştirilmiş ücretsiz bir kütüphanedir. Donanım tabanlı (hardware random bytes generation) bir ID oluşturmayı destekler. Bu daha güçlü ve benzersiz ID oluşturmayı sağlar. Küçük boyutlu olmakla beraber çok sayıda programlama dili için paketleri mevcuttur. Kullanımı basit ve güvenlidir.

JavaScript İle Nanoid Nasıl Kullanılır?

Kullanımı oldukça basittir. Öncelikle kütüphaneyi uygulamamıza kurmamız gerekiyor. Bunun için npm paket yönetisini kullanabiliriz.

npm i nanoid

Sonrasında bu paketi uygulamamıza import etmemiz gerekir.

import nanoid from 'nanoid';

Paketi import ettikten sonra benzersiz bir ID oluşturmak istendiğinde aşağıdaki gibi kullanılabilir.

const urunID = nanoid();

Bu kadar basit bir şekilde benzersiz bir kimlik üretebiliriz.

ID Boyutunu Belirleme

Eğer belirli bir uzunlukta ID oluşturmak istiyorsanız bu boyutu nanoidye parametre olarak geçirmek gerekir.

const boyut = 10;
const ID = nanoid(10); // 10 karakter boyutunda id üretir

Belirli Karakterleri Kullanma

Eğer nanoid ile belirli bir karakter kümesini kullanmak istiyorsanız bunu parametre olarak geçmeniz gerekir. Bunun için customAlphabet metodudu kullanıyoruz. Bu metodu import ettikten sonra kullanacağımız karakterleri ve id uzunluğunu parametre geçerek bir fonsiyon dönmesini sağlıyoruz ve bu fonksiyonu kullanarakda ID değerimizi oluşturuyoruz.

import { customAlphabet } from 'nanoid';

const nanoid = customAlphabet('1234567890abcdef', 10);
model.id = nanoid() // Çıktı şuna benzeyecektir "4f90d13a42";

Nanoid vs UUID Karşılaştırma

Nano ID ve UUID karşılaştırması çok yapılmaktadır. Bu konuda nano id tarafından şu şekilde ele alınıyor. Öncelikle nonoid 126 bit ve UUID ise 122 bit kullanıyor. Benzer bir aralıkta çalıştıkları için aynı değere sahip iki IDnin oluşturulması şansı aynı seviyededir.

Temelde üç farklılık vardır.

  • Nano ID daha büyük bir alfabe kullanır.
  • Bu nedenle daha az sembol kullanır, 36 yerine 21.
  • Nano ID yaklaşık olarak 4 kez daha küçük bir boyuta sahiptir ve yaklaşık olarak 130byte kadardır.

Sonuç

Hızlı ve güvenli bir ID oluşturmak için kullanılacak paketlerden bir tanesi nonoiddir. Kullanımı kolay ve esnektir. Ücretsiz, ufak ve çalışırken hızlı bir pakettir. Dökümasyon için Github sayfasına bakabilirsiniz.

Peki siz ID ve benzersiz key üretmek için hangi paketleri kullanıyorsunuz?

Eğer asenkron bir çalışmaya ihtiyacımız varsa bunun için

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir