Kompaniýanyň Logo Tiger ERP bazasynyň üstündäki analitika serwisi: kassa, bank, hasaplaşyk hasaplary we ammar hereketleri boýunça pullaryň nireden gelendigini we haýsy proýektleri maliýeleşdirendigini dikeldýär.
Meniň rolum
Backend programmist. Baglanyşdyrmak we möçberleri degişli etmek logikasyny, toplumlaýyn işlemegi we hasabat interfeýsini döretdim.
Tehnologiýalar
Go
Echo
GORM
MSSQL
Logo Tiger
WebSocket
Mesele
ERP-de pul kassalaryň, banklaryň, hasaplaşyk hasaplarynyň, geçirimleriň we ammaryň üsti bilen hereket edýär, her resminama bolsa diňe özüne gönüden-göni bagly resminamany bilýär. Ýolbaşçylara proýekt derejesinde jogaplar gerekdi: haýsy girdeji hakykatda haýsy proýekti we näçe möçberde maliýeleşdirdi.
Arhitektura
Serwis ERP-iň MSSQL bazasyndan hereketleri GORM we ýörite view-lar arkaly okaýar, resminamalary pul akymynyň zynjyrlaryna baglanyşdyrýar, möçberleri proýektlere degişli etmek üçin bu zynjyrlary giňligine (breadth-first) aýlanýar we netijeleri toplumlaýyn yzyna ýazýar. Serwerde döredilýän interfeýs (Echo + HTML şablonlary) akym agaçlaryny görkezýär we hasaplamanyň ösüşini WebSocket arkaly iberýär; netijeler Excel-e eksport edilýär.
Esasy çözgütler
01Bir düzgüniň ýerine birnäçe baglanyşdyrma strategiýasy
Näme üçin
Hakyky ERP maglumatlarynda resminamalar dürli usullar bilen baglanyşýar — hasaplaryň arasyndaky geçirimler, ene we çeşme salgylanmalary ýa-da hiç hili aç-açan baglanyşyk ýok. Her ýagdaýyň öz strategiýasy bar, ätiýaçlyk usul hökmünde FIFO boýunça paýlamak ulanylýar.
Kompromis
Ylalaşykly saklamaly düzgünler köpelýär, netijeler bolsa ERP-däki maglumatlaryň hiline bagly.
02Zynjyr boýunça iň dar ýere görä paýlamak
Näme üçin
Birnäçe ädimden geçýän pul öz ýolundaky iň kiçi möçberden köp zady maliýeleşdirip bilmeýär, şonuň üçin aýlanyş her zynjyr boýunça şol minimumy göterýär we diňe şony degişli edýär.
03Ýazmak üçin çäklendirilen concurrency
Näme üçin
Netijeler 4 workerden ybarat kesgitli howuz tarapyndan 1 000 setirlik köp setirli INSERT-ler bilen ýazylýar, ilkinji ýalňyşlyk bolsa context arkaly galanlaryny ýatyrýar. Ýazmak çaltlanýar, ERP bazasyna düşýän ýük bolsa öňünden çaklap bolýan bolup galýar.
Näme döretdim
MSSQL-de Logo Tiger-iň hereket tablisalaryny we ýörite SQL view-laryny okaýar
Dört baglanyşdyrma strategiýasy: geçirimler (virman), ene salgylanma, çeşme salgylanma we FIFO boýunça paýlamak
Pul akymynyň zynjyrlary boýunça möçberleri olaryň iň dar ýerine (bottleneck) görä paýlaýan graf aýlanyşy
Köpçülikleýin ýazmak üçin çäklendirilen worker howuzy: 1 000 setirlik toplumlar, 4 worker, ilkinji ýalňyşlykda ýatyrmak
Uzak hasaplamalaryň dowamynda WebSocket arkaly göni ösüş görkezijisi; akym agaçlary we Excel-e eksport