Que peut-on dire sur l'optimisation du plan de requête? MVCC Il y a une table CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); et une requête qui s'exécute chaque seconde UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; Après quelques jours, vous remarquez: • la taille de la table a beaucoup augmenté • la requête SELECT * FROM orders WHERE id = 1 fonctionne plus lentement Questions pour le candidat 1. Pourquoi la table grossit-elle, même si la ligne est toujours la même? 2. Quel rôle joue MVCC dans cette situation? 3. Que devrait résoudre ce problème?
C#
Qu'est-ce que IAsyncDisposable?
Connaissez-vous vacuum et vacuum full?
Que affichera le programme avec async/await : main affiche A, appelle saySomething (statique, retourne Task), attend 5 secondes, puis D?
Types de transactions / niveaux d'isolation?
Que affichera le programme si throw est décommenté aux endroits indiqués?
Quel est un autre problème de la multithreading dans la méthode Init ?
Ne fonctionnait pas avec Linq2DB?
Comment rendre une classe itérable?
IMemoryCache — qu'est-ce que c'est et quand l'utiliser?
Quelle pile technologique ont-ils utilisée?
Revue : code appliqué La classe contient la logique de traitement des nouvelles commandes. Elle extrait les commandes et les positions de la base de données, puis effectue une requête HTTP vers un microservice externe Stock, qui réserve les produits selon les positions de la commande. Si toutes les réservations sont réussies, le microservice confirme la réservation de la commande dans Stock et marque la commande comme traitée. Le microservice est lancé en plusieurs instances, donc la méthode Process peut s'exécuter en parallèle. Pour éviter de traiter les mêmes lignes, un mécanisme de verrouillage pessimiste dans PostgreSQL Select for update ... skip locked est utilisé. L'implémentation de IBus envoie des messages à RabbitMq. ```csharp public sealed class PendingOrdersProcessor { public async Task PendingOrdersProcessor(ILogger logger, IBus bus, HttpStockService st { var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); var cs = _cs[env]; _db = new OrdersRepository(cs); _bus = bus; logger = logger; ``` ```csharp _stockService = stockService; } private readonly ILogger _logger; private readonly IOrdersRepository _db; private readonly IStockService _stockService; private readonly IBus _bus; private static readonly Dictionary<string, string> _cs = new { { "Development", "User ID=root;Password=myPassword;Host=localhost;Port=5432;Database=myDataBase" }, { "Production", "User ID=root;Password=myPassword;Host=prod-db;Port=5432;Database=" "Pooling=true;Min Pool Size=0;Max Pool Size=1;" } }; ```
Quand se produit la fermeture (closure) ?
Parlez-moi de votre dernier emploi — Severstal. Que faisiez-vous, combien de temps avez-vous travaillé là-bas, quelle technologie utilisiez-vous?
Pourquoi une struct ne peut-elle pas hériter?
Quelle est la taille mémoire d'une instance de Date dans les systèmes 32 et 64 bits?
Comment corriger pour afficher 0-9?
IMemoryCache Quels sont les avantages et inconvénients de l'utilisation de IMemoryCache dans une application? Qu'est-ce que le top 10 d'OWASP? Mesures de code 1. Quelles métriques de qualité de code connaissez-vous? 2. Les avez-vous utilisées? 3. Comment les avez-vous calculées? 4. Sont-elles intégrées dans CI ou sont-elles ad hoc? Charge Que feriez-vous si votre service (page web) se bloque dans un environnement de test ou de charge, mais fonctionne localement?
Comment les transactions fonctionnent-elles avec les versions dans MVCC?
Pourquoi une application avec une base de données fonctionne-t-elle dans un environnement et se dégrade-t-elle dans un autre?