Ποια άλλα κριτήρια θα μπορούσατε να αναφέρετε για ένα καλό συστατικό βιβλιοθήκης;
Frontend
Πες μου για τη συγγραφή μονάδων δοκιμών: πότε, κατά τη γνώμη σου, πρέπει μια δοκιμή να αποτύχει; Τι ακριβώς πρέπει να ελέγχει μια μονάδα δοκιμής για μια κλάση που δοκιμάζεται σύμφωνα με το σχολείο του Λονδίνου (με όλες τις εξαρτήσεις να είναι mocked);
Άρχισες να μαθαίνεις React, και το React είναι πιο δημοφιλές και υπάρχουν περισσότερες ευκαιρίες εργασίας. Γιατί τελικά μεταβήκες σε Angular;
Συγκρίνετε την εισαγωγή εξαρτήσεων μέσω παραμέτρων κατασκευαστή και μέσω της λειτουργίας inject: ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα κάθε προσέγγισης;
Αναλύστε αυτήν την προσέγγιση από την άποψη της ανάμειξης ευθυνών: τι έχει γίνει λάθος εδώ και πώς θα το εξηγούσατε από την άποψη των αρχιτεκτονικών αρχών (ειδικά, την Αρχή της Μοναδικής Ευθύνης και τον διαχωρισμό παρουσίασης και μοντέλου);
Μπορείτε να απαριθμήσετε όλες τις τεχνικές λύσεις σε αυτό το πρόβλημα (εκτός από την αντικατάσταση του πεδίου με ένα σήμα);
Πείτε μας περισσότερα για τη χρήση του async pipe και της χειροκίνητης εγγραφής: τι ακριβώς πρέπει να κάνετε ώστε η τιμή να εμφανίζεται σωστά στο πρότυπο (συμπεριλαμβανομένης της εργασίας με την εγγραφή και την ακύρωσή της μέσω takeUntilDestroy ή ngOnDestroy);
Αν το πρότυπο δεν γνωρίζει ότι η τιμή έχει αλλάξει, γιατί η προσθήκη του pipe async στο πρότυπο λύνει το πρόβλημα της αντιδραστικότητας; Πώς λειτουργεί αυτό στο παρασκήνιο;
Έχετε κριτήρια βάσει πρακτικής για το πού είναι κατάλληλο και πού όχι να εφαρμόσετε την κληρονομιά;
Στο βιογραφικό σας αναφέρετε ότι ενημερώσατε το Angular από την έκδοση 14 έως την 20. Περιγράψτε ένα πρόβλημα που προέκυψε κατά την ενημέρωση του Angular σε ένα έργο - μια ιστορία από την πρακτική σας εμπειρία.
Γιατί είναι απαραίτητη η κληρονομικότητα στην αντικειμενοστραφή προγραμματισμό; Δώστε μια αιτιολόγηση γιατί χρησιμοποιείται, αν η εργασία επαναχρησιμοποίησης λογικής μπορεί να λυθεί και με άλλους τρόπους (π.χ., μέσω DI).
Μπορείτε να δώσετε ένα συγκεκριμένο παράδειγμα βιβλιοθήκης που δεν επέτρεπε την ολοκλήρωση της κατασκευής κατά την ενημέρωση του Angular (π.χ., στην έκδοση 16); Ποιο ήταν ακριβώς το πρόβλημα και πώς το λύσατε;
Γιατί όταν χρησιμοποιείτε σήμα και καλείτε τη μέθοδο set, η τιμή ενημερώνεται στο πρότυπο, αλλά όταν απλά αναθέτετε this.token = string - όχι; Εξηγήστε το σε επίπεδο της αντίληψης αλλαγής.
Είστε εξοικειωμένοι με διαγράμματα κλάσεων UML; Έχετε ασχοληθεί με τύπους σχέσεων όπως συσχέτιση, σύνθεση, συσσώρευση, γενίκευση;
Είπατε ότι γράψατε τις δοκιμές με τη βοήθεια ενός νευρωνικού δικτύου. Αν το νευρωνικό δίκτυο δημιούργησε δοκιμές που αποτυγχάνουν με οποιαδήποτε αλλαγή στον κώδικα της κλάσης, επιτυγχάνουν αυτοί οι δοκιμές τον σκοπό τους; Είναι χρήσιμες;
Στην προηγούμενη θέση εργασίας σας, είπατε ότι το μέρος του frontend ήταν σχετικά μικρό, αλλά ασχολούνταν 6 frontend developers. Από πού προήλθε ακριβώς η ομάδα των 6 ατόμων και πώς σχετίζεται με την συνολική ομάδα frontend της εταιρείας;
Γιατί επέλεξες συγκεκριμένα την ανάπτυξη ιστού και Angular, αντί για, για παράδειγμα, την ανάπτυξη κινητών;
Αν έπρεπε να μετρήσετε τον αριθμό των γραμμών κώδικα σε ένα έργο, πώς θα προσεγγίζατε αυτό το έργο; Πώς θα διατυπώνατε ένα ερώτημα για την εύρεση λύσης ή για ένα νευρωνικό δίκτυο;
Φανταστείτε ένα σενάριο: ένας πιο έμπειρος προγραμματιστής λαμβάνει έναν junior με την εργασία να δημιουργήσει ένα Angular συστατικό με ένα πεδίο για την εμφάνιση ενός token και ένα κουμπί 'δημιουργία token'. Όταν πατηθεί το κουμπί, αποστέλλεται ένα αίτημα στον διακομιστή, λαμβάνεται ένα token, και ο junior γράφει this.token = η ληφθείσα συμβολοσειρά, αλλά η τιμή δεν εμφανίζεται και η σελίδα δεν ανανεώνεται. Τι θα προτείνατε για την επίλυση αυτού του προβλήματος και ποιες προσεγγίσεις υπάρχουν για να το διορθώσετε;
Πείτε μας πώς μπήκατε στη βιομηχανία ανάπτυξης: πώς εκπαιδεύτηκατε, πώς βρήκατε την πρώτη σας δουλειά, λαμβάνοντας υπόψη ότι στο βιογραφικό σας αναφέρεται μη τεχνικό επάγγελμα;