Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Minu esimene NuGet - ULID! (C#/.NET) märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 11.02.2025 12:31:35 Minu esimene NuGet - ULID! (C#/.NET) vasta tsitaadiga

Hei,

Soovin teiega jagada oma rõõmu esimese avatud lähtekoodiga ja vabavaralise arendusega kõigile kasutamiseks.

Projektiks on ULID implementatsioon C#/.NET platvormil. ULID on teatud tüüpi identifikaator, mis peaks omama kõiki häid külgi ja mitte ühtegi halba külge võrreldes alternatiividega nagu näiteks GUID/UUID või integer ID.
Alguses hakkasin kirjutama seda puhtalt selleks, et ise täpselt aru saada, mis see ULID on. Aga jõudsin sinna maale, et tegemist on nüüd sellel platvormil kõige kiirema ja kõige stabiilsema ULID implementatsiooniga. icon_smile.gif

Seega võtsin kätte ja vormistasin asja korralikult ära.

GitHub: https://github.com/ByteAether/Ulid
Blogipost: https://byteaether.github.io/2025/announcing-byteaetherulid-v100-a-high-performance-net-ulid-library-for-modern-applications/

EDIT: Väike "järjejutt" ka:
https://byteaether.github.io/2025/an-introduction-to-ulids-a-modern-identifier-for-software-systems/

EDIT2: Ja veel järjejuttu:
https://byteaether.github.io/2025/uuid-vs-ulid-vs-integer-ids-a-technical-guide-for-modern-systems/

EDIT3: ... ja veel icon_smile.gif
https://byteaether.github.io/2025/ulids-as-the-default-choice-for-modern-systems-lessons-from-shopifys-payment-infrastructure/

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 110 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 102
tagasi üles
vaata kasutaja infot saada privaatsõnum
RassK
HV Guru
RassK

liitunud: 17.01.2007



Autoriseeritud ID-kaardiga

sõnum 11.02.2025 14:11:57 vasta tsitaadiga

thumbs_up.gif github star'i väärt. Endale ka uus asi.

Mis muud öelda kui tugevat närvi maintainimisel icon_smile.gif
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 101
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 18.03.2025 11:13:06 vasta tsitaadiga

Olen vahepeal veel 2 abistavat vidinat kokku keevitanud. Kui ULID on väga back-end teema, siis need 2 vidinat on front-end ja full-stack sfääris pigem.

ByteAether.QueryLink: https://github.com/ByteAether/QueryLink
Väike post ka sel teemal: https://byteaether.github.io/2025/seamlessly-connecting-frontend-and-backend-data-in-net-applications-a-new-paradigm-for-effortless-integration/

ByteAether.WeakEvent: https://github.com/ByteAether/WeakEvent
Ja postitus ka selle kohta: https://byteaether.github.io/2025/harnessing-weak-referenced-event-managers-and-publish-subscribe-patterns-in-net/

Tegemist on "vidinatega", mida igas projektis, oma või tööalane, olen pidanud uuesti ja uuesti implementeerima. Nüüd saab aga nuget'i pakina selle kiirelt projekti sisse võtta ja vastava teema päevakorras maha võtta.

Ehk tuleb kasuks. icon_smile.gif

EDIT: QueryLink jõudis versioonini v1.0.0: https://byteaether.github.io/2025/announcing-querylink-v100-simplify-your-ui-and-data-integration/

EDIT2: Ja võib-olla veidi provokatiivsem post nüüd ka: https://byteaether.github.io/2025/hyperaction-api-a-reimagined-approach-to-http-api-design/

EDIT3: Viimane "vidin" jõudis ka v.1.0.0 versioonini. icon_smile.gif https://byteaether.github.io/2025/announcing-byteaetherweakevent-v100/

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 110 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 102
tagasi üles
vaata kasutaja infot saada privaatsõnum
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 23.03.2025 16:40:22 vasta tsitaadiga

Lugesin kirjeldust ja ei saanudki väga hästi aru, mis seal niiväga uut ja head on. Põhimõtteliselt timestamp ja UUID/GUID ühte välja topitud.
Kirjete loomise kuupäeva järgi sortides/otsides on ju mugavam toimetada kui timestamp(no ei pea olema unix timestamp, võib ka datetime vms. tüübiga olla) on eraldi veerus.
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 60
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 23.03.2025 22:36:42 vasta tsitaadiga

napoleon kirjutas:
Lugesin kirjeldust ja ei saanudki väga hästi aru, mis seal niiväga uut ja head on. Põhimõtteliselt timestamp ja UUID/GUID ühte välja topitud.
Kirjete loomise kuupäeva järgi sortides/otsides on ju mugavam toimetada kui timestamp(no ei pea olema unix timestamp, võib ka datetime vms. tüübiga olla) on eraldi veerus.


Lihtkeeli, klassikalised andmebaasid vajavad "defragmentimist", kui primary key on random. ULID'i puhul seda probleemi pole, kuna iga uus kirje tuleb indeksi lõppu. (UUIDv7 suuresti lahendab ka selle probleemi ära, ent monotoonsus puudub)
See on päris karm perf loss, kui andmeid mõnuga peale voolab. Omal ajal sai sellega maadeldud ilma päriselt aru saamata veel, miks andmebaas ise-enesest aina aeglasemaks jääb ja miks peab mingi cron'iga vmt asjaga indekseid rebuild'ima, et kiirus "tagasi saada".
Ma näen just selles osas kõige suuremat kasu. Crockford'i Base32 on mu silmis ka ilusam, aga see on väike asi. icon_smile.gif

Igapäevast järjestamist tuleb ette igasuguse data osas, seega see, et ID järgi saab ajalise järjestuse näiteks ekraani peale kuvamiseks, ei ole minu arust väga teemaks. Ekraani peal on tavaliselt nupud sorteerimaks tabeleid iga tulba järgi ja seega pole mõtet ennast ID külge "kinni kirjutada". Selles osas sinuga igati nõus, et ajaväärtused üldjuhul on ikka kasulik konkreetselt eraldi hoida. (Või siis projetseerida virtuaalne property/column juurde, mis on tuletatud IDst) Küll aga näiteks finantsis/raamatupidamises võib osutuda mõistlikuks "CreatedAt" ära unustada (seda asendab ID) ja ainult "ValueDate" alles jätta. (bi-temporal andmebaasid, mis raamatupidamises jmt on kohustuslik muster)

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 110 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 102
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Minu esimene NuGet - ULID! (C#/.NET)
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.