GUID Oluşturma ve İyileştirmeler
Arabirim tanımlayıcısı (IID) gibi bir CLSID guid olduğundan, kim yazarsa yazsın, başka bir sınıf değil, yinelenen bir CLSID'ye sahiptir. Sunucu uygulayıcıları genellikle CoCreateGuid işlevi aracılığıyla CLSID'leri alır. Bu işlevin benzersiz CLSID'ler üretmesi garanti edilir, bu nedenle dünyanın her yanındaki sunucu uygulayıcıları, başkaları tarafından yazılan yazılımlarla yanlışlıkla çakışma korkusu olmadan yazılımlarını bağımsız olarak geliştirebilir ve dağıtabilir.
Benzersiz CLSID'lerin kullanılması sınıflar arasında ad çakışması olasılığını önler çünkü CLSID'ler temel alınan uygulamada kullanılan adlara hiçbir şekilde bağlı değildir. Örneğin, iki farklı satıcı "StackClass" adlı sınıflar yazabilir, ancak her biri benzersiz bir CLSID'ye sahip olur ve bu nedenle karıştırılamaz.
COM genellikle GUID'leri (IID'ler ve CLSID'ler) rastgele olarak büyük bazı diğer değer kümeleriyle eşlemelidir. Uygulama geliştiricisi olarak, uygulamanızın GUID'lerini ardışık değerler bloğu olarak oluşturarak bu tür aramaları hızlandırmaya ve böylece sistem performansını artırmaya yardımcı olabilirsiniz.
Ardışık GUID'lerden oluşan bir blok oluşturmanın en verimli yolu, her biri ilk DWORD değeri bir artırılan UUID bloğu oluşturan -n ve -x anahtarlarını kullanarak uuidgen yardımcı programını çalıştırmaktır.
Örneğin,
uuidgen -n5 -x
uuidgen yardımcı programı aşağıdakine benzer bir UUID bloğu oluşturur:
12340001-4980-1920-6788-123456789012
12340002-4980-1920-6788-123456789012
12340003-4980-1920-6788-123456789012
12340004-4980-1920-6788-123456789012
12340005-4980-1920-6788-123456789012
Projenin tamamı için GUID oluşturma ve izleme yöntemlerinden biri, 500 gibi rastgele olarak çok sayıda UUID'nin bir bloğunu oluşturmakla başlar. Örneğin,
uuidgen -n500 -x > guids.txt
yardımcı programı 500 ardışık UUID oluşturur ve bunları belirtilen metin dosyasına yazar. Daha sonra bu dosyayı kaynak ağacınızda denetleyebilirsiniz ve projede kullanılacak tüm GUID'ler için tek bir depo sağlayabilirsiniz. İnsanlar projenin kendi bölümleri için GUID'lere ihtiyaç duyduğundan, dosyayı kullanıma alabilir, ihtiyaç duydukları sayıda GUID alabilir, bunları alınmış olarak işaretleyebilir ve kodun neresinde veya "belirtim" kullandıklarına dair bir not bırakabilirler.
Sistem performansını iyileştirmeye ek olarak, ardışık GUID'lerin bloklarını bu şekilde oluşturmanın aşağıdaki avantajları vardır:
- Bir uygulamanın tüm GUID'lerini içeren merkezi bir dosya, hangi GUID'lerin ne için ve hangi kişilerin bunları kullandığını izlemeyi kolaylaştırır.
- Belirli bir uygulamayla ilişkili ardışık GUID'ler bloğu, geliştiricilerin ve test edicilerin hata ayıklama sırasında iç GUID'leri tanımasına yardımcı olur ve sırayla depolandığından bunları sistem kayıt defterinde bulmayı kolaylaştırır.
İlgili konular