Sobes.tech
Middle

Povedz jednu alebo dve zaujímavé technické úlohy, ktoré si riešil v predchádzajúcich projektoch.

sobes.tech AI

Odpoveď od AI

V jednom z mojich projektov som musel implementovať systém cacheovania dát pre API, aby som znížil záťaž na databázu a urýchlil odozvu služby. Použil som vzor "Lazy Loading" a implementoval cache s automatickou aktualizáciou pomocou časovača.

Príklad kódu v C#:

public class DataCache
{
    private Dictionary<string, object> _cache = new Dictionary<string, object>();
    private Timer _timer;

    public DataCache()
    {
        _timer = new Timer(RefreshCache, null, TimeSpan.Zero, TimeSpan.FromMinutes(10));
    }

    private void RefreshCache(object state)
    {
        // Logika aktualizácie cache
    }

    public object GetData(string key)
    {
        if (_cache.ContainsKey(key))
            return _cache[key];
        // Načítanie dát a pridanie do cache
    }
}

Tiež som vyriešil problém optimalizácie viacvláknového prístupu ku spoločným zdrojom pomocou lock a kolekcií Concurrent.