Μια εσωτερική ματιά στη διαδικασία ανάπτυξης εφαρμογών του Facebook για κινητά

Συγγραφέας: Laura McKinney
Ημερομηνία Δημιουργίας: 4 Απρίλιος 2021
Ημερομηνία Ενημέρωσης: 1 Ιούλιος 2024
Anonim
Ο Φεβρουάριος του 2022 είναι ένας μοιραίος μήνας. Τι να περιμένετε και τι να προετοιμαστείτε
Βίντεο: Ο Φεβρουάριος του 2022 είναι ένας μοιραίος μήνας. Τι να περιμένετε και τι να προετοιμαστείτε

Περιεχόμενο


Πρόσφατα, επισκέφτηκα την έδρα του Facebook στο Λονδίνο για να μάθω για τη διαδικασία ανάπτυξης και συντήρησης της εφαρμογής κινητού Facebook. Πολλά περισσότερα πηγαίνουν εδώ από ό, τι πιθανώς συνειδητοποιείτε: μερικές από τις εφαρμογές του Facebook αντιμετωπίζονται εδώ στο σύνολό τους, όπως το WhatsApp για επιφάνεια εργασίας και η εφαρμογή Workplace προσανατολισμένη στις επιχειρήσεις.

Τα γραφεία είναι ακριβώς αυτά που θα περίμενε κανείς από την εικόνα του Facebook, αν και ίσως δεν είναι αρκετά στο επίπεδο του κοινωνικού δικτύου. Αυτός είναι ένας τόπος όπου γίνεται σοβαρή δουλειά, αλλά υπάρχει μια μοντέρνα, ιδιόμορφη και χαλαρή ατμόσφαιρα παρόλα αυτά. Οι εργαζόμενοι μπορούν να μεταφέρουν φορητούς υπολογιστές για να εργαστούν όπου κι αν επιλέξουν, υπάρχει ένας χώρος εκτύπωσης για την παραγωγή αφισών (μόνο επειδή), ανέθεσε έργα τέχνης σε μερικά από τα τείχη, και μια γιγαντιαία χελώνα Ninja - ποτέ δεν έλαβα μια απάντηση για το γιατί.

Ω, και το φαγητό είναι απίστευτο. Ήμουν εκεί κατά τη διάρκεια της κινεζικής Πρωτοχρονιάς και είχα πολλαπλούς χοιρινές κοιλιές. Καλές στιγμές.


Ωστόσο, δεν ήμουν εκεί για να απολαύσω τη διακόσμηση και την κουζίνα, ήμουν εκεί για να μάθω για το Facebook στο κινητό. Πιο συγκεκριμένα: πώς στη Γη μάλιστα πάτε για τη διατήρηση ενός έργου αυτού του μεγάλου και φιλόδοξου; Το backend του Facebook εξυπηρετεί πάνω από δύο δισεκατομμύρια ανθρώπους και μόνο η εφαρμογή Android βλέπει μια νέα έκδοση που κυκλοφορεί κάθε εβδομάδα.

Πώς διαχειρίζεστε μια εφαρμογή με έναν τόσο φιλόδοξο αριθμό λειτουργιών

Μίλησα με τον Tal Kellner μέσω του ίδιου του τηλεοπτικού συστήματος του Facebook. Ο Tal είναι τεχνικός διευθυντής προγράμματος, υπεύθυνος της ομάδας μηχανικών απελευθέρωσης που εδρεύει στο γραφείο μηχανικής του Τελ Αβίβ. Ήταν περισσότερο από ευτυχής να μοιραστεί τις λεπτομέρειες.

Η Tal και η ομάδα της που ανεβάζουν την έκδοση Lite του Facebook στο iOS για πρώτη φορά


Αυτό που έμαθα ήταν αρκετά συναρπαστικό τόσο από την προοπτική του προγραμματιστή όσο και ως χρήστης. Εδώ βρήκα αυτό που έμαθα.

Διαχείριση έργου στο Facebook - Γιατί Scrum> Καταρράκτης

Κατά την εξέταση οποιουδήποτε μεγάλου έργου, θα πρέπει να εξετάσετε την προσέγγιση της διαχείρισης του έργου σας. Ένα τέτοιο παράδειγμα ονομάζεται διαχείριση έργου "καταρράκτη". Αυτή είναι μια διαδοχική και γραμμική προσέγγιση όπου εργάζεστε σε μια συγκεκριμένη φάση με τη σειρά της, όπως πηγαίνοντας από ιδεασμό σε εφαρμογή έως δοκιμές για απελευθέρωση.

εταιρείες όπως το Facebook επιλέγουν αντί για μια πιο σύγχρονη προσέγγιση στη διαχείριση έργων που ονομάζεται "scrum"

Βασικά, με αυτήν την προσέγγιση δεν ξεκινάτε την επόμενη φάση μέχρι να ολοκληρωθεί η προηγούμενη φάση. Το σύστημα προέρχεται από την κατασκευή, όπου ορισμένα στάδια συχνά βασίζονται στο προηγούμενο στάδιο: πρέπει να προμηθεύεστε τούβλα για να φτιάξετε τοίχο!

Όσον αφορά το λογισμικό, η προσέγγιση αυτή είναι περιοριστική. Στη χειρότερη περίπτωση, μια ενημέρωση μπορεί να διαρκέσει τόσο πολύ για να κυκλοφορήσει, είναι παρωχημένη από τη στιγμή που φθάνει. Duke Nukem Για πάντα κάποιος;

Έτσι, ορισμένες εταιρείες λογισμικού επιλέγουν αντί για μια πιο σύγχρονη προσέγγιση που ονομάζεται "scrum", η οποία είναι μια ευέλικτη μεθοδολογία. Αυτή η μέθοδος δίνει προτεραιότητα στο έργο που έχει μεγαλύτερη σημασία και το σπάει σε αρθρωτά κομμάτια. Βασίζεται στην επικοινωνία μεταξύ των εσωτερικών τμημάτων και ακόμη και των μεμονωμένων παραγόντων που εργάζονται μόνοι τους στις δικές τους γωνιές του κώδικα.

Το αποτέλεσμα, θεωρητικά, είναι ότι όλοι μπορούν να δουλέψουν σε αυτό που τους πιέζει συνεχώς και ότι κάθε άλλο μέρος της επιχείρησης ξέρει τι κάνουν. Υπάρχει ένα υψηλό επίπεδο ιδιοκτησίας για κάθε μηχανικό και όλοι είναι τελικά υπεύθυνοι για τη δουλειά τους. Όχι μόνο αυτό κάνει την εταιρία πιο ευέλικτη, αλλά και ελπίζει ότι θα αυξήσει την ικανοποίηση στο χώρο εργασίας. Κανείς δεν είναι απλώς ένα γρανάζι στο μηχάνημα.

ο καθένας από οπουδήποτε μέσα στον οργανισμό μπορεί να προτείνει μια ιδέα για ένα νέο χαρακτηριστικό

Ήμουν πολύ εντυπωσιασμένος που ακούω ότι ο καθένας από οπουδήποτε μέσα στον οργανισμό θα μπορούσε να προτείνει μια ιδέα για ένα νέο χαρακτηριστικό και στη συνέχεια να δουλέψει σε αυτό εάν δοθεί το πράσινο φως. Μερικές φορές αυτό μπορεί να εξελιχθεί ακόμη και σε δική του ξεχωριστή εφαρμογή! Το Facebook είναι πολύ πιο συνεργατικό έργο από ό, τι το επάνω όραμα που επιβάλλεται από μερικούς ανθρώπους (ή ένα άτομο) είναι συχνά απεικονίζεται ως.

Αυτό επιτρέπει στο Facebook να εφαρμόσει ένα εξαιρετικά γρήγορο αναπτυξιακό κύκλο, επιτρέποντας μια νέα ενημέρωση για κινητά κάθε εβδομάδα και χιλιάδες δεσμεύσεις (προτεινόμενες αλλαγές κώδικα). Αν νομίζετε ότι είναι εντυπωσιακό, η έκδοση ιστού (η πίσω έκδοση της οποίας εξυπηρετεί επίσης την εφαρμογή για κινητά) ενημερώνεται μία φορά κάθε δύο έως τρεις ώρες!

Το Facebook υποστηρίζει γενικά νέες ιδέες και νέες επιχειρήσεις. Έχει ακόμη και μια πρωτοβουλία που ονομάζεται LDN LAB αφιερωμένη στην υποστήριξη νέων ιδεών και επιχειρήσεων.

Εύρεση ισορροπίας

Λαμβάνεται από τις διαφάνειες του Tal

Φυσικά, εξακολουθεί να υπάρχει πάντα ένα όριο όταν πρόκειται για το τι μπορεί να χειριστεί μια εταιρεία. Με αυτό τον πολύ κώδικα υπάρχει πάντα περιθώριο βελτίωσης, αλλά πρέπει να έρθει μια εποχή που η έκδοση θεωρείται "αρκετά καλή".

Εκεί μπαίνει στο παιχνίδι το "χρυσό τρίγωνο". Τα τρία σημεία αυτού του τριγώνου αντιπροσωπεύουν χαρακτηριστικά, ποιότητα και χρόνο. Κάθε εταιρεία έχει την επιλογή να κάνει εδώ: όταν πρόκειται για χρονοτριβή χρόνου, δίνετε προτεραιότητα σε νέα χαρακτηριστικά σε βάρος της λήψης λίγο περισσότερο; Επιτρέπετε να μετατοπιστεί ένα μικρό υπάρχον σφάλμα μέσω του δικτύου, αν σημαίνει ότι μπορείτε να προσθέσετε περισσότερες δυνατότητες; Όταν δεν μπορείτε να κάνετε τα πάντα, είστε αναγκασμένοι να δώσετε προτεραιότητα.

Στο Facebook, οι προτεραιότητες είναι η ποιότητα και ο χρόνος. Αν μια ενημερωμένη έκδοση πέφτει πίσω από το παραχωρημένο παράθυρο, πιθανότατα θα εμφανιστεί μια λειτουργία. αντί να κόψει μια γωνία ή να καθυστερήσει η ενημέρωση.

Έλεγχος έκδοσης και αλλαγές στο juggling

Για το χειρισμό αυτών των ενημερώσεων και αλλαγών στον κώδικα, το Facebook χρησιμοποιεί τη δική του τροποποιημένη έκδοση του Mercurial. Αυτό είναι αντί του πολύ ευρέως χρησιμοποιούμενου Git, το οποίο προφανώς δεν κλιμακώθηκε και για τους σκοπούς της εταιρείας. Το Phimbator είναι το ισοδύναμο του GitHub και χρησιμοποιεί πολλά plugins για να συμβάλλει στη βελτιστοποίηση της ροής εργασίας και μερικές φορές μόνο για να κάνει τα πράγματα λίγο πιο διασκεδαστικά (το Facebook μοιάζει με τα memes του).

Για τους μη προγραμματιστές εκεί έξω, το Mercurial, όπως το Git, είναι ένα σύστημα ελέγχου έκδοσης. Επιτρέπει σε μεγάλο αριθμό ανθρώπων να εργάζονται σε ένα μόνο κομμάτι λογισμικού και να πραγματοποιούν αλλαγές και επιδιορθώσεις χωρίς να θέτουν σε κίνδυνο την έκδοση της κύριας έκδοσης που ονομάζεται "κύριος κλάδος". Αυτά τα εργαλεία βοηθούν στην αποφυγή συγκρούσεων κώδικα και επιτρέπουν πειραματισμό. Μόλις μια αλλαγή έχει εγκριθεί πλήρως σε ένα δοκιμαστικό υποκατάστημα, τότε θα δεσμευτεί στον πλοίαρχο.

Φανταστείτε εάν κάποιο φτωχό προγραμματιστή έκανε ένα τυπογραφικό λάθος που έσπασε ολόκληρο τον κώδικα και υπήρχε μόνο μία έκδοση! Αυτή θα ήταν μια κακή μέρα για όλους.

Εργαλεία όπως το Mercurial καθιστούν δυνατή την εφαρμογή της προσέγγισης Scrum με σχετική ευκολία, επιτρέποντας σε όλους να δουλεύουν σε συγκεκριμένα χαρακτηριστικά και σφάλματα ταυτόχρονα προτού τα συγχωνεύσουν όλα μαζί σε ένα μεγάλο δοχείο.

Μια φορά την εβδομάδα, ένας υποψήφιος απελευθέρωσης θα αποκοπεί από τον πλοίαρχο και αυτό θα περάσει στη φάση της δοκιμής. Οι κωδικοποιητές που έχουν περάσει όλη την εβδομάδα που εργάζονται για διορθώσεις σφαλμάτων ή νέα χαρακτηριστικά θα σταδιαστούν στα δάχτυλά τους ελπίζοντας ότι η εργασία τους θα γίνει στη νέα ενημέρωση.

Οποιεσδήποτε διορθώσεις της τελευταίας στιγμής ή αλλαγές που γίνονται από τα μέλη της ομάδας απαιτούν την επιλογή "κερασιών" για να συμπεριληφθούν στο νέο υποκατάστημα από τους υπεύθυνους. Σύμφωνα με πληροφορίες, είναι γνωστό ότι χρησιμοποιούν δωροδοκίες με τη μορφή σοκολάτας και οινοπνευματωδών που έχουν δωρίσει στους υπεύθυνους λήψης αποφάσεων.

Για να μεταγλωττίσετε, το Facebook χρησιμοποιεί ένα άλλο εργαλείο που ονομάζεται Buck. Αυτό το ενιαίο εργαλείο δημιουργίας μπορεί να χτίσει τίποτα όταν πρόκειται για τη συσκευασία της εφαρμογής. Δεν χρειάζεται ξεχωριστές επιλογές, όπως το Gradle ή το Ant, όταν στοχεύετε σε διαφορετικές πλατφόρμες.

Πιάσε τα σφάλματα εγκαίρως

Με όλους όσους εργάζονται σε διαφορετικά πράγματα και τόσες πολλές ενημερώσεις που κυκλοφορούν σε τακτική βάση, είναι πολύ σημαντικό οι εταιρείες να βεβαιωθούν ότι το λογισμικό τους λειτουργεί και δεν έχει σοβαρά σφάλματα. Ως επί το πλείστον, το Facebook έχει ένα αρκετά καλό ιστορικό της διατήρησης των πραγμάτων.

Για το σκοπό αυτό, η ομάδα χωρίζει τις δοκιμές λογισμικού σε επίπεδα, που αναφέρονται ως C1, C2 και C3.

Το C1 είναι εσωτερική δοκιμή και όλοι οι εργαζόμενοι θα τρέξουν αυτή την έκδοση. Κατά τη διάρκεια του C2, η έκδοση διατρέχει το 2% του κοινού και το C3 είναι παραγωγή. Πρέπει να βρεθεί κάτι πραγματικά σοβαρό, κάθε εργαζόμενος να έχει πρόσβαση σε ένα κουμπί διακοπής έκτακτης ανάγκης για να φέρει την παραγωγή σε αδράνεια.

Οι εθελοντές που έβαλαν τον εαυτό τους προς τα εμπρός για να διατηρήσουν τις προόδους προχωρούν με το όνομα "αγκάθια των δέντρων" (επειδή τα υποκαταστήματα), και το κάνουν αυτό πάνω από τις κανονικές θέσεις εργασίας τους.

Στο Κινητό, παρόμοια επίπεδα ονομάζονται άλφα, beta και prod. Το Alpha σημαίνει μια εσωτερική δοκιμασία, την οποία θα εκτελέσουν όλοι οι εργαζόμενοι. Η διαδικασία κάθε εταιρείας που χρησιμοποιεί τα δικά της προϊόντα με τον τρόπο αυτό ονομάζεται "dogfooding" - από την "κατανάλωση της δικής σας τροφής για σκύλους".

Οι δοκιμαστές έχουν επίσης μερικά μοναδικά και ενδιαφέροντα εργαλεία στη διάθεσή τους για την ταχεία αναφορά σφαλμάτων. Το ένα είναι το "Rageshake", όπου απλά κουνώντας τη συσκευή με απογοήτευση θα επιτρέψει μια αναφορά σφάλματος, όπως και με τους Χάρτες Google.

Οι δοκιμαστές έχουν επίσης μερικά μοναδικά και ενδιαφέροντα εργαλεία στη διάθεσή τους για την ταχεία αναφορά σφαλμάτων

Κατά τη διάρκεια του άλφα - το οποίο αναφέρεται ουσιαστικά σε οποιαδήποτε εσωτερική δοκιμή - το Facebook χρησιμοποιεί επίσης αυτόματες δοκιμές για να εκτελέσει την εφαρμογή. Για παράδειγμα, ένα πρόσφατα αποκτημένο κομμάτι λογισμικού που ονομάζεται "Sapienz" λειτουργεί ουσιαστικά κάνοντας κλικ σε κάθε κουμπί και χρησιμοποιώντας κάθε δυνατότητα σε μια τυχαία επίθεση μέχρι να ενεργοποιηθεί μια συντριβή. Στη συνέχεια καταγράφει το ίχνος της στοίβας, καταγράφει τη δράση και αναφέρει τις αναφορές.

Η εφαρμογή beta (η έκδοση που δοκιμάζεται από το ευρύ κοινό) περνάει από ένα μικρό υποτομέα (~ 2%) του κοινού. Αυτό το μικρό απόσπασμα θα λάβει την ενημέρωση μπροστά από το χρόνο, παρέχοντας το Facebook με πραγματικά σχόλια. Εάν όλα φαίνονται καλά, η ενημέρωση βγαίνει σε ολόκληρο τον πληθυσμό και η διαδικασία ξεκινά εκ νέου.

Ισχυρά εργαλεία για αυτοματισμό και πολλαπλασιασμό δύναμης

Για να διατηρηθεί αυτή η όλη διαδικασία όσο το δυνατόν πιο γρήγορη και ομαλή, το Facebook χρησιμοποιεί ένα μεγάλο αριθμό διαφορετικών εργαλείων. Έχουμε ήδη δει πώς χρησιμοποιεί η εταιρεία το Phambator και το Sapienz, αλλά διαθέτει και άλλα εργαλεία και πρόσθετα για άλλα στάδια.

Ένα εργαλείο που ονομάζεται Picknic συγκεντρώνει όλα τα αιτήματα έλξης (αλλαγές που έχουν κάνει οι εργαζόμενοι) σε ένα μέρος για γρήγορη και εύκολη αναθεώρηση.

Όταν η δοκιμή εκτοξεύει ένα λάθος, ένα bot που ονομάζεται Nagbot ενημερώνει τους υπεύθυνους και απαλά προτρέπει τους να πάρουν το έργο. Χρησιμοποιώντας ένα υποτυπώδες AI για να χειριστεί αυτή τη διαδικασία όχι μόνο εξασφαλίζει την εργασία γίνεται, αλλά και επιτρέπει στον διαχειριστή να αποφύγει να είναι ο "κακός τύπος" συνεχώς γκρίνια!

όταν ο έλεγχος εκλύει ένα σφάλμα για να διορθώσει κάποιος, ένα bot που ονομάζεται Nagbot ενημερώνει τους υπεύθυνους και απαλά προτρέπει τους να πάρουν το έργο τους

Το Crashbot είναι ένα άλλο bot που είναι υπεύθυνο για την αναφορά αυτών των σφαλμάτων καθώς συμβαίνουν και είναι προτιμότερο από τις μετρήσεις από την Κονσόλα Google, καθώς αναφέρει σε πραγματικό χρόνο. Το Crashbot θα επισημάνει ένα ζήτημα μόλις τα προβλήματα υπερβούν ένα "αποδεκτό όριο συντριβής". Αυτό μπορεί να οφείλεται στον αριθμό των ατόμων που βιώνουν το σφάλμα ή στον αριθμό των φορών που ένας και μοναδικός χρήστης αντιμετώπισε το ίδιο σφάλμα. Είτε έτσι είτε αλλιώς, το Facebook θα έχει επίσης μια μέτρηση που δείχνει τον αριθμό των λυπημένων χρηστών.

Για εσωτερική επικοινωνία, το Facebook χρησιμοποιεί κάτι που ονομάζεται Εργασία. Αυτή είναι στην πραγματικότητα μια έκδοση του Facebook που προορίζεται για επιχειρήσεις, η οποία παρέχει έναν χρήσιμο τρόπο για να ενημερωθείτε σχετικά με τα μέλη της ομάδας και επικοινωνήστε γρήγορα με όσους κάθονται στην άλλη πλευρά του γραφείου. Το Facebook επίσης πωλεί αυτό το λογισμικό σε τρίτους.

Φυσικά το Facebook δεν πρόκειται να χάσει χρόνο ανεβάζοντας κάθε νέα έκδοση των εφαρμογών του στο Play Store, στο App Store, στο Amazon και σε όλα τα υπόλοιπα. Υπάρχει επίσης μια εφαρμογή για αυτό που ονομάζεται Mobile Push Train.

Κλείνοντας τις σκέψεις

Η διατήρηση μιας εφαρμογής όπως το Facebook μέχρι σήμερα είναι μια τεράστια δέσμευση και η εταιρεία πρέπει ακόμα να πείσει τους χρήστες να εγκαταστήσουν αυτές τις ενημερώσεις. Αυτό είναι ιδιαίτερα δύσκολο σε χώρες όπου η διασύνδεση δεν είναι εγγυημένη. Στον Καναδά, μόνο ένα τοις εκατό των χρηστών εξακολουθεί να εκτελεί μια έκδοση του Facebook πάνω από ένα έτος. Στην Αιθιοπία, ο αριθμός αυτός είναι πιο κοντά στο 50%!

Η ομάδα στο Facebook λειτουργεί σαφώς πολύ σκληρά και χρησιμοποιεί έναν τόνο εργαλείων και διαδικασιών για να κρατήσει τα πάντα όσο το δυνατόν πιο εξορθολογισμένα. Στο τέλος της ημέρας, η ομάδα ανάπτυξης στοχεύει να τηρήσει πέντε βασικές αρχές:

  • Κρατήστε τον κύριο καθαρό.
  • Έχετε μία ομάδα με τεχνογνωσία στη μηχανική απελευθέρωσης.
  • Απελευθερώστε την ώρα σας συχνά.
  • Προϊόντα σκυλιών.
  • Να είστε ευγενικοί με τους χρήστες.

Ακούγεται απλό, αλλά όπως μπορείτε να δείτε, περιλαμβάνει πολλά περιστρεφόμενα πιάτα. Ακόμη και η διατήρηση όλων των εργαλείων που χρησιμοποιούνται στη διαδικασία είναι ένα έργο από μόνο του!

Από την πλευρά του, το Facebook διατηρεί μια φιλική και αστείρευτη ατμόσφαιρα στο γραφείο του Λονδίνου. Η ομάδα ανταλλάσσει GIFs και μιμίδια μέσω plugins, ονομάζουν δωμάτια βασισμένα σε "πράγματα που το βρετανικό μίσος" και τα shakespearean μονομαχία, και παίρνουν μεγάλη υπερηφάνεια για το έργο τους. Στο Facebook, εργάζονται σκληρά και παίζουν σκληρά, και φαίνεται ότι στο μεγαλύτερο μέρος τους, το σύστημα λειτουργεί.

Την επόμενη φορά που θα κυκλοφορήσει μια νέα ενημερωμένη έκδοση για μία από τις μεγαλύτερες εφαρμογές σας, αφιερώστε μια σκέψη για όλη την εργασία και την οργάνωση που χρειάστηκε για να την αποκτήσετε εκεί.

Η εκδήλωση Τύπου CE 2019 της amung είχε πολλές σημαντικές ανακοινώσεις από την εταιρεία, αλλά ίσως το πιο περίεργο ήταν το γεγονός ότι ο οικιακός ψηφιακός βοηθός της Bixby θα μπορέσει σύντομα να ελέγξ...

Η amung είναι μία από τις μεγαλύτερες εταιρείες στον κόσμο. Κατασκευάζει οτιδήποτε από martphone, ασύρματα ακουστικά και martwatche σε οικιακές συσκευές, φορητούς υπολογιστές και tablet. Παρόλο που η ...

Τελευταίες Δημοσιεύσεις