Sobes.tech

Πώς διατηρούσες τη συνέπεια της cache στα υπηρεσίες καταλόγου και καλαθιού — όταν ακύρωνες, πώς ήταν οργανωμένο;

Senior
123

Για ποια κατηγορία εργασιών είναι πιο κατάλληλη η ασύγχρονη λειτουργία;

Middle+
123

Πες μου για τους δείκτες στο PostgreSQL: ποιοι υπάρχουν, πότε να τους χρησιμοποιείτε, πότε όχι.

Middle
123

από fastapi εισαγωγή FastAPI, UploadFile, Response από fastapi.responses εισαγωγή StreamingResponse από pydantic εισαγωγή BaseModel, field_validator εισαγωγή base64 app = FastAPI() κλάση PdfSchema(BaseModel): filename: str content_type: str data: str # base64 pdf 10мб @apì.get("/data", response_model=PdfSchema) ασύγχρονη def get_data(): επιστροφή αναμονής service.get_big_data() @apì.get("/download") ασύγχρονη def download(): με ανοιχτό("big.pdf", "rb") ως f: data = f.read() επιστροφή Response(content=data, media_type="application/pdf") def heavy_pdf_parse(data: bytes) -> dict: # CPU-heavy λογική επιστρέφει {"μέγεθος": len(data)} @post("/parse") ασύγχρονη def parse(file: UploadFile): περιεχόμενο = περιμένω file.read() αποτέλεσμα = heavy_pdf_parse(περιεχόμενο) επιστροφή αποτέλεσμα @apì.get("/users") ασύγχρονη def get_users(): χρήστες = αναμονή repo.get_users() αποτέλεσμα = [] για u σε χρήστες: posts = αναμονή repo.get_posts(u["id"]) αποτέλεσμα.append({"user": u, "posts": posts}) επιστροφή αποτέλεσμα @apì.get("/download-two") ασύγχρονη def download_two(): def iterfile(): με ανοιχτό("big.pdf", "rb") ως f: yield from f επιστροφή StreamingResponse(iterfile(), media_type="application/pdf") κλάση service: @staticmethod async def get_big_data(): επιστροφή { "filename": "file.pdf", "content_type": "application/pdf", "data": base64.b64encode(b"fake").decode(), } κλάση repo: @staticmethod async def get_users(): επιστροφή [{"id": 1}, {"id": 2}] @staticmethod async def get_posts(user_id: int): επιστροφή [{"id": 1, "user id": user_id}]

Middle
123

Πώς είναι δομημένοι οι αριθμοί κινητής υποδιαστολής (float);

Senior
123

Σε ποιες γλώσσες προγραμματισμού έχετε γράψει;

Junior
123

Μπορείς να περιγράψεις τα βασικά καθήκοντα και έργα που ανέλαβες στην προηγούμενη εργασία σου;

Junior — Middle
123

Γιατί λειτουργεί ακόμα η πολυνηματικότητα με εργασίες που σχετίζονται με το IO, παρά το GIL;

Middle+
123

Τι είναι η εφαρμοσμένη παρακολούθηση (ελέγχοι υγείας, διαθεσιμότητα μέσω URL);

Middle+
123

Γιατί στη συνάρτηση quicksort η συνθήκη είναι len(arr) <= 1;

Junior
123

Σε ποιες περιπτώσεις πρέπει να κάνετε COMMIT; Στο πλαίσιο των DDL και DML;

Middle+
122

Βρείτε το σύμβολο που εμφανίζεται πιο συχνά διαδοχικά στη σειρά

Senior
122

Ποιος είναι ο τύπος στην Python;

Middle
122

Ποιοι τύποι αιτημάτων HTTP είναι κατάλληλοι για caching στον διακομιστή ή στον πελάτη;

Junior — Middle
122

Τι είναι ένα Dockerfile και ποιος είναι ο σκοπός του;

Middle+
122

Αναφέρετε τους διακοσμητές και τους γεννήτορες. Γράψτε έναν διακοσμητή retry με παραμέτρους.

Middle+
121

Πώς φαίνεται η διαδικασία από το commit μέχρι την ανάπτυξη σε περιβάλλοντα δοκιμών;

Middle+
121

Ποια είναι η αλγοριθμική πολυπλοκότητα της προσθήκης ενός στοιχείου σε μια λίστα Python; Πώς λειτουργεί η προσθήκη στο μέσο και στην αρχή;

Senior
121

Ερώτηση SQL: πώς να εξάγετε χρήστες με ονόματα στα κυριλλικά και λατινικά, ταξινομημένους έτσι ώστε τα κυριλλικά να έρχονται πρώτα, και μέσα στις ομάδες — λεξικογραφικά;

Middle
120

import threading import time μετρητής = 0 def αύξηση(): global μετρητής for _ in range(100): τρέχων = μετρητής time.sleep(0.000001) μετρητής = τρέχων + 1 thread1 = threading.Thread(target=αύξηση) thread2 = threading.Thread(target=αύξηση) thread1.start() thread2.start() thread1.join() thread2.join() print(f"Τελική τιμή μετρητή: {μετρητής}") 150-200

Middle
120
/20