Τι μπορούμε να πούμε για τη βελτιστοποίηση του σχεδίου ερωτήματος; MVCC Υπάρχει ένας πίνακας CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); και ένα ερώτημα που εκτελείται κάθε δευτερόλεπτο UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; Μετά από μερικές ημέρες, παρατηρείτε: • το μέγεθος του πίνακα έχει αυξηθεί σημαντικά • το ερώτημα SELECT * FROM orders WHERE id = 1 γίνεται πιο αργό Ερωτήσεις για τον υποψήφιο 1. Γιατί ο πίνακας μεγαλώνει, παρόλο που η γραμμή είναι πάντα η ίδια; 2. Τι ρόλο παίζει το MVCC σε αυτήν την κατάσταση; 3. Τι θα έπρεπε να λύσει αυτό το πρόβλημα;
C#
Τι είναι το IAsyncDisposable;
Ξέρετε τι είναι το vacuum και το vacuum full;
Τι θα εμφανίσει το πρόγραμμα με async/await: η main εκτυπώνει A, καλεί το saySomething (στατικό, επιστρέφει Task), περιμένει 5 δευτερόλεπτα, και μετά D;
Τύποι συναλλαγών / επίπεδα απομόνωσης;
Τι θα εμφανίσει το πρόγραμμα αν το throw σχολιαστεί στις συγκεκριμένες θέσεις;
Ποιο είναι ένα άλλο πρόβλημα με το πολυνηματικό στη μέθοδο Init;
Δεν λειτουργούσε με το Linq2DB;
Πώς κάνω μια κλάση επαναλαμβανόμενη;
IMemoryCache — τι είναι και πότε να το χρησιμοποιήσετε;
Ποιο στοίβα τεχνολογιών χρησιμοποίησαν;
Έλεγχος: εφαρμοσμένος κώδικας Η κλάση περιέχει τη λογική επεξεργασίας νέων παραγγελιών. Εξάγει τις παραγγελίες και τις θέσεις από τη βάση δεδομένων, στη συνέχεια πραγματοποιεί κλήση HTTP σε ένα εξωτερικό microservice Stock, στο οποίο κρατάει τα προϊόντα σύμφωνα με τις θέσεις της παραγγελίας. Αν όλες οι κρατήσεις ολοκληρωθούν με επιτυχία, το microservice επιβεβαιώνει την κράτηση της παραγγελίας στο Stock και σημειώνει την παραγγελία ως επεξεργασμένη. Το microservice τρέχει σε πολλαπλά αντίγραφα, επομένως η μέθοδος Process μπορεί να εκτελείται παράλληλα. Για να αποφευχθεί η επεξεργασία των ίδιων γραμμών, χρησιμοποιείται μηχανισμός απαισιόδοξης κλειδώματος PostgreSQL Select for update ... skip locked. Η υλοποίηση του IBus στέλνει μηνύματα στο 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;" } }; ```
Πότε συμβαίνει το κλείσιμο (closure);
Πες μου για την τελευταία σου δουλειά — Severstal. Τι κάνατε, πόσο καιρό δουλεύατε εκεί, ποιο τεχνολογικό στοίβα χρησιμοποιούσατε;
Γιατί μια δομή δεν μπορεί να κληρονομήσει;
Πόση μνήμη καταλαμβάνει ένα στιγμιότυπο Date σε συστήματα 32 και 64 bit;
IMemoryCache Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα της χρήσης του IMemoryCache σε μια εφαρμογή; Τι είναι το top 10 της OWASP; Μετρήσεις κώδικα 1. Ποιες μετρήσεις ποιότητας κώδικα γνωρίζετε; 2. Τις έχετε χρησιμοποιήσει; 3. Πώς τις υπολογίσατε; 4. Είναι μέρος του CI ή ad hoc; Φόρτωση Τι θα κάνατε αν η υπηρεσία σας (ιστοσελίδα) κολλάει σε ένα περιβάλλον δοκιμής ή φόρτωσης, αλλά τοπικά όλα λειτουργούν;
Πώς να διορθώσετε ώστε να εμφανίζονται 0-9;
Πώς λειτουργούν οι συναλλαγές με τις εκδόσεις στο MVCC;
Γιατί μια εφαρμογή με βάση δεδομένων λειτουργεί σε ένα περιβάλλον και υποβαθμίζεται σε άλλο;