Qu'est-ce que le TDD et quel est le sens de cette approche?
Python
Prenons l'exemple de n'importe quelle tâche, racontez comment vous avez recherché les points faibles dans les requêtes à PostgreSQL : qu'avez-vous utilisé et comment avez-vous identifié le problème ?
Quelle version de Python avez-vous utilisée dans votre dernière entreprise?
Quelle est la différence entre un générateur et une fonction normale?
Comment l'arbre de syntaxe abstraite (AST) est-il utilisé en Python?
Quels types de tests connaissez-vous?
Dans quels domaines du développement Python vous considérez-vous comme le spécialiste le plus compétent?
Nommez les principes fondamentaux de la POO.
"""Écrivez un code qui extrait les liens du texte brut et les trie selon des règles spécifiques. La liste de liens qui sera renvoyée ne doit pas contenir de doublons. Les règles de tri sont les suivantes : - Priorité 1 : d'abord les premiers liens détectés en quantité de self.first_extracted_links - Priorité 2 : ensuite les liens vers des disques en nuage et des documents (Yandex Disk, etc.) - Priorité 3 : puis les liens vers des fichiers (avec extensions .exe, .pdf, .rar, etc. à la fin du chemin) - Priorité 4 : les autres liens triés par ordre décroissant de longueur de chaîne Il faut également prendre en compte la limite du nombre de liens et implémenter un gestionnaire de contexte. On peut l'exécuter, par exemple, dans [link] En résumé : - 30 minutes sont allouées à l'exécution - Écrire les fonctions apply, process, et celles pour le gestionnaire de contexte - Tous les tests doivent réussir - Les tests ne peuvent pas être modifiés - Il est permis d'utiliser des imports - Après avoir écrit, on peut vérifier en exécutant localement et corriger si nécessaire regex pour rechercher des liens : (?:https?|ftp):\/\/(?:[a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.[a-zA-Z]{2,}(?::\d+)?(?:\/[^\s()]*)?""" class LinkExtractor: DEFAULT_CLOUDS = frozenset(( "drive.google.com", "mediafire.com", "yadi.sk", "disk.yandex.ru", "cloud.mail.ru", "mega.nz" )) # Peut étendre cette méthode ou la réécrire def __init__(self, max_links: int = 7, first_extracted_links: int = 2, clouds = None): # Nombre maximum de liens à retourner self.max_links = max_links # Nombre de liens extraits pour la première condition self.first_extracted_links = first_extracted_links # Liste de domaines considérés comme dans le cloud pour la deuxième condition self.clouds = clouds or self.DEFAULT_CLOUDS self._results = [] # Écrire cette méthode, qui ajoute une partie du texte à analyser def apply(self, text) -> "LinkExtractor": ... return self
Peut-on accéder à un attribut ou une méthode d'une classe commençant par deux underscores ? Quelles sont les particularités ?
Quand et pourquoi choisissez-vous les processus (multiprocessing) ?
Parlez d'un incident intéressant ou d'une situation difficile au travail.
Quelles bonnes choses ont été faites dans l'entreprise [entreprise] ? Racontez des projets intéressants.
Quels types de files d'attente en tant que structures de données connaissez-vous?
Quels outils de profilage en Python connaissez-vous?
Qu'est-ce qui peut causer une fuite de mémoire s'il y a un ramasse-miettes?
Quelle est la différence entre une copie superficielle et une copie profonde (`copy` et `deepcopy`)?
Il y a un module qui a accepté la tâche et est en attente. Que feras-tu?
Comment lutter contre la croissance des tables dans PostgreSQL?
Que feriez-vous si une requête SQL lourde devient un goulot d'étranglement?