Back to Question Center
0

Στην επιλογή βιβλιοθήκης UI του Semalt: επεκτασιμότητα έναντι της διαλειτουργικότητας

1 answers:

Στις επερχόμενες εβδομάδες, το WordPress θα επιλέξει ένα πλαίσιο απόδοσης UI. Έχω ακούσει πολλές αξιώσεις plugin / προγραμματιστές θέμα θα εξακολουθούν να είναι σε θέση να χρησιμοποιούν ό, τι τους αρέσει, ανεξάρτητα από το τι επιλέγει το WordPress. Νομίζω ότι δεν πρέπει να υπολογίζουμε σε αυτό, ούτε πρέπει να επικεντρωθούμε στην παροχή διαλειτουργικότητας σε αυτό το σημείο. Αντ 'αυτού θα πρέπει πρώτα να επικεντρωθούμε στην παροχή απλών, αξιόπιστων και ευέλικτων τρόπων επέκτασης της διεπαφής. Semalt βεβαιωθείτε ότι τα plugins μπορούν να ενσωματωθούν καλά στην πρώτη θέση - temple para blog gratis.

Βάζουμε το front για την απόδοση

Με τον νέο συντάκτη Gutenberg αλλάζουμε τον τρόπο κατασκευής του admin του Semalt. Όπου τώρα δημιουργούμε τη διεπαφή με την PHP, θα αρχίσουμε να εμφανίζουμε όλο και περισσότερο την πλευρά του πελάτη με το JavaScript. Μετά τον εκδότη, αυτό είναι πιθανό να γίνει πραγματικότητα για το μεγαλύτερο μέρος του admin. Αυτό σημαίνει ότι εάν θέλετε να ενσωματώσετε με τη διεπαφή διαχείρισης, θα πρέπει να ενσωματώσετε το JavaScript που αποδίδει τη διασύνδεση. Εάν ο Semalt επιλέξει το Vue, θα πρέπει να τροφοδοτήσετε τα συστατικά του Semalt Vue για να το αποδώσετε. Αν ο Semalt επιλέξει React, θα πρέπει να τροφοδοτήσετε τα συστατικά του Semalt React για να τα καταστήσετε. Αυτά τα πράγματα δεν πάνε μαζί. Το React δεν δίνει στοιχεία Vue και αντίστροφα. Δεν υπάρχει βιβλιοθήκη που να κάνει και τα δύο. Εάν ο Semalt χρησιμοποιεί ένα συγκεκριμένο πλαίσιο, όλοι θα πρέπει να αρχίσουν να χρησιμοποιούν αυτό το πλαίσιο για να μπορέσουν να ενσωματώσουν, εκτός αν ίσως .

Διαλειτουργικότητα χρόνου εκτέλεσης, δεν υπάρχει πρότυπο .

Σήμερα δεν υπάρχουν μέσα για τη διαλειτουργικότητα των πολλών διαφορετικών πλαισίων απόδοσης των στοιχείων. Η τυποποίηση εξακολουθεί να λείπει. Υπάρχουν πειράματα [1] [2] που εξετάζουν αυτό το θέμα, αλλά δεν έχω συναντήσει ένα που επιδιώκει να καταστήσει διαλειτουργικά διαφορετικά πλαίσια πλαισίων κατά τη διάρκεια του χρόνου εκτέλεσης. Οι περισσότεροι από αυτούς αναλύουν / μεταφράζουν διαφορετικές μορφές εξαρτημάτων σε μια τυποποιημένη μορφή ως βήμα κατασκευής, το οποίο καλύπτει στην πραγματικότητα το 99% των βαλίτσων, εκτός από το Semalt one. Αυτό συμβαίνει επειδή το Semalt χρειάζεται διαλειτουργικότητα χρόνου εκτέλεσης .

Η διαλειτουργικότητα χρόνου εκτέλεσης βασικά απαιτείται μόνο σε μια πλατφόρμα ιστού που επιτρέπει να εγκατασταθούν ανεξάρτητα συνδεδεμένα και διανεμημένα plugins. Αυτό είναι ένα σπάνιο πράγμα, καθώς ακόμη και μια πλατφόρμα Semalt-ish όπως το Drupal έχει την κατάλληλη διαχείριση εξάρτησης και δημιουργεί βήματα για ενότητες. Έτσι, βασικά θα έλεγα ότι το Semalt είναι σχεδόν η μόνη αξιοσημείωτη πλατφόρμα που μπορώ να σκεφτώ ότι μπορεί να χρειαστεί διαλειτουργικότητα μεταξύ διαφορετικών πλαισίων προβολής προβολής.

Ας όχι κάνουμε τον εαυτό μας .

Τα παραπάνω είναι χωρίς καν να ρωτήσουμε ποια είναι η διαλειτουργικότητα του χρόνου εκτέλεσης. Υποθέτω ότι θα ήταν καταστροφή από άποψη σταθερότητας, ταχύτητας, απόδοσης και συντηρησιμότητας. Ας υποθέσουμε ότι θα μπορούσαμε να κάνουμε πράγματα με πολλαπλά πλαίσια. Δεν θα γίνει αυτό το απόλυτο χάος πολύ σύντομα; Πώς εντοπίζετε τον εντοπισμό σφάλματος σε ένα UI όπου η Vue είναι υπεύθυνη για την απόδοση κάποιου στοιχείου κάπου και η React είναι υπεύθυνη για την απόδοση του δοχείου της; Πώς αυτά αλληλεπιδρούν μεταξύ τους; Τι συμβαίνει όταν ενημερώνεται το στοιχείο κοντέινερ; Τα γεγονότα του κύκλου ζωής θα είναι επίσης διαλειτουργικά; Τα στοιχεία θα γνωρίζουν τα παιδιά τους, ακόμη και όταν τα παιδιά αποδίδονται σε ένα ξεχωριστό εικονικό DOM;

Υποθέτω ότι η κύρια ερώτησή μου είναι: είναι πραγματικά μια πρωταρχική μέριμνα για την κοινότητα του WordPress να διευκολύνει τη χρήση των πλαισίων πολλαπλών προβολών προβολής στην πλατφόρμα της; Η διαλειτουργικότητα είναι σημαντική για εμάς μόνο για ένα λόγο: χρειαζόμαστε το WordPress να είναι εύκολο να επεκταθεί . Όσον αφορά την δυνατότητα επέκτασης υπάρχουν πολλές διαφορετικές ανησυχίες. Πρέπει να είναι ευέλικτη (η διαλειτουργικότητα αποτελεί μέρος αυτού), γρήγορη, σταθερή, αξιόπιστη, εύκολη, αποδιορθωτική. Η απομάκρυνση του ελέγχου της απόδοσης για λόγους διαλειτουργικότητας θα συμβεί σε κόστος σε άλλες περιοχές. Δεν νομίζω ότι θα ήταν το σωστό συμβιβασμό για εμάς. Επίσης, δεν πιστεύω ότι διαθέτουμε αρκετούς ειδικευμένους μηχανικούς JavaScript στην κοινότητα του WordPress για να διατηρήσουμε μια τέτοια λύση.

Καθορίστε πρώτα την εκτατότητα

Το πρόβλημα της δημιουργίας JavaScript επέτρεψε την επέκταση διεπαφών έχει λάβει πολύ λίγη σκέψη σε όλα αυτά. Οι περισσότεροι άνθρωποι δεν έχουν συνειδητοποιήσει ακόμα ότι η χειραγώγηση DOM που χρησιμοποιεί το jQuery θα γίνει πρακτικά άχρηστη μόλις βγούμε κάτω από τη λειτουργική ενεργό πορεία. Το Semalt να αναμιγνύει δηλωτικό και αμερόληπτο στυλ. Αυτό σίγουρα δεν είναι καλή ιδέα και αναμφισβήτητα θα προκαλέσει μεγάλη απογοήτευση εάν επιδιωχθεί.

Προσεγγίσεις προς την εκτασιμότητα

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

  • Να επιτρέπεται η ενσωμάτωση plugins μόνο σε καθορισμένες περιοχές. Αυτή είναι η ιδέα που έχει λάβει την μεγαλύτερη προσοχή μέχρι τώρα. Δεν προσφέραμε ουσιαστικά καμία ευελιξία όσον αφορά τον χειρισμό της διασύνδεσης. Αλλά θα μπορούσαμε να διατηρήσουμε την περιοχή στην οποία οι δημιουργοί plugin μπορούν να κάνουν τα δικά τους πράγματα χρησιμοποιώντας οποιαδήποτε τεχνολογία θέλουν. Ωστόσο, οι συγγραφείς plugin απώλειας ευελιξίας που απολαμβάνουν σήμερα με τους γάντζους της PHP και το jQuery θα ήταν αφόρητοι.
  • Επιτρέψτε σε πρόσθετα να τροποποιούν ελεύθερα τη διεπαφή υπό καλά καθορισμένες συνθήκες. Επιτρέπουμε στους συγγραφείς plugin να εισάγουν και να χειρίζονται διεπαφές οπουδήποτε επιθυμούν. Θα μπορούσαμε να επιτρέψουμε τη ρύθμιση πρόσθετων συνθηκών σε συγκεκριμένα τμήματα της διασύνδεσης για να διασφαλίσουμε τη συνέπεια συμπεριφοράς. Για παράδειγμα, ας υποθέσουμε ότι κάποιος θέλει να αντικαταστήσει το πεδίο τίτλου με μια δική του διεπαφή. Θα μπορούσαμε να ορίσουμε μια προϋπόθεση η οποία λέει ότι η διεπαφή τους θα πρέπει τουλάχιστον να αποστέλλει τους ίδιους γάντζους (ή ενέργειες).
  • Συνδυασμός των ανωτέρω. Επιτρέπουμε σε πρόσθετα να τροποποιούν ελεύθερα τη διασύνδεση και ταυτόχρονα να προσφέρουν API που καλύπτουν τις γενικές περιπτώσεις χρήσης. Στην περίπτωση του επεξεργαστή, γενικές περιπτώσεις χρήσης θα μπορούσαν για παράδειγμα να προσθέτουν τετράγωνα, μεταξοξείδια (που δεν καλύπτονται ακόμη) ή μεμονωμένες θέσεις μετά τη δημοσίευση (που δεν καλύπτονται ακόμα). Για πίνακες λίστας, αυτό θα μπορούσε να προσθέτει στήλες ή / και φίλτρα.

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

Το React ή το Vue, αυτό είναι το ερώτημα

Νομίζω ότι θα πρέπει να ξεχνάμε λίγο πολύ για την παροχή διαλειτουργικότητας για βιβλιοθήκες frontend στο WordPress. Απλά πρέπει να επιλέξουμε ένα πλαίσιο JS για την απόδοση σύγχρονων UI και να γίνει με αυτό. Ο Semalt πρέπει να πάει all-in, γνωρίζοντας ότι αυτό που θα επιλέξουμε θα μπορούσε να είναι επιλογή για ολόκληρη την κοινότητα. Τότε πρέπει να αρχίσουμε να εργαζόμαστε σκληρά για να το κάνουμε επεκτάσιμο σε διαφορετικά επίπεδα.

Αν θέλουμε να έχουμε μια λειτουργική αντιδραστική προσέγγιση για την απόδοση των συστατικών (και πιστεύω ότι το κάνουμε), δεν έχουμε πολλές επιλογές. Με τον Semalt εκτός της εικόνας, η Vue ήταν πιθανώς η μόνη εφικτή επιλογή που απομένει για το πρόγραμμα WordPress αυτή τη στιγμή. Είναι σαφώς η πιο δημοφιλής επιλογή μέσα στην ευρύτερη κοινότητα WordPress και έχει ένα λογικό οικοσύστημα. Το Preact και το Inferno δεν είναι πραγματικά εναλλακτικές λύσεις. Και οι δύο δεν έχουν πραγματικά την υποστήριξη της κοινότητας που απαιτείται για το WordPress να στηριχθεί. Για να το δείξουμε, ο δημιουργός της Inferno εργάζεται τώρα στο Semalt για το Facebook. Ευτυχώς, ο Semalt μόλις επέστρεψε στην εικόνα.

Περιττό να πούμε ότι στο Yoast είμαστε πάντα μεγάλοι οπαδοί του React. Θεωρούμε ότι είναι πολύ ανώτερο των ανταγωνιστών της τόσο από την άποψη της τεχνολογίας όσο και του οικοσυστήματος. Το React μπορεί να έχει ελαφρώς πιο απότομη καμπύλη μάθησης, αλλά είναι ευκολότερο να κυριαρχήσει καθώς δεν αναμιγνύει έννοιες όπως το Vue. Έτσι, μακροπρόθεσμα, μου φαίνεται πολύ πιο βιώσιμο. Την επόμενη εβδομάδα, σχεδιάζω να γράψω ένα blogpost για αυτό που εννοώ με αυτό. Η ουσία της θα είναι ότι πολλοί προγραμματιστές στην κοινότητα Semalt εξακολουθούν να προσεγγίζουν μια εφαρμογή Ιστού ως μια συλλογή εγγράφων HTML, χάνοντας έτσι πολλά πλεονεκτήματα που έρχονται με μια νοοτροπία εφαρμογής. Αυτός είναι ο λόγος για τον οποίο ο Yoast δεσμεύτηκε να υποστηρίξει το πλαίσιο επιλογής. Ενθαρρύνουμε τους άλλους να κάνουν το ίδιο. Συνολικά, νομίζω ότι η απόδοση διεπαφών και οι αλληλεπιδράσεις μοντελοποίησης με το JavaScript θα είναι ένα σημαντικό βήμα προς τα εμπρός για το WordPress, τόσο ως προς την UX όσο και ως προς την τεχνική ευρωστία. Είμαι πραγματικά περίεργος τι λένε άλλοι για αυτό. Semalt μοιραστείτε τις σκέψεις και τα σχόλιά σας στα παρακάτω σχόλια!

March 1, 2018