Μετάβαση από Vanilla JS σε Vue

Vanilla JS to Vue migration — tangled scripts replaced by typed Vue 3 components

Η μετάβαση από Vanilla JS σε Vue μετατρέπει ένα χειρόγραφο frontend σε συντηρήσιμη εφαρμογή Vue 3. Οι εφαρμογές που χειρίζονται απευθείας το DOM — getElementById, addEventListener, χειροκίνητα innerHTML, δουλεύουν μια χαρά μέχρι να μεγαλώσουν: το state σκορπίζεται σε global μεταβλητές, δεν υπάρχει μία πηγή αλήθειας, και μια μικρή αλλαγή σπάει αθόρυβα κάτι τρία αρχεία πιο πέρα. Γι' αυτό ξαναχτίζω αυτό το frontend σε ένα codebase Vue 3 με components και reactivity.

Το σημαντικότερο: η μετάβαση είναι σταδιακή. Το Vue μπαίνει μέσα στις υπάρχουσες σελίδες σας και αναλαμβάνει ένα widget ή μία οθόνη τη φορά, οπότε η επιχείρηση δεν σταματά ποτέ. Είναι η ίδια διαδικασία που εφαρμόζω σε enterprise συστήματα: τεχνικός έλεγχος πρώτα, μετρήσιμα ορόσημα, και ένα codebase που η ομάδα σας μπορεί επιτέλους να ελέγξει, να επεκτείνει και να παραδώσει σε νέο συνεργάτη χωρίς εβδομάδες προφορικής παράδοσης γνώσης.

Το πραγματικό πρόβλημα με το χειρόγραφο JavaScript δεν είναι η γλώσσα, είναι η δομή που λείπει. Δεν υπάρχει reactivity, οπότε συγχρονίζετε το DOM με το χέρι και αργά ή γρήγορα ξεφεύγει. Δεν υπάρχουν components, οπότε markup και λογική αντιγράφονται σε όλη την εφαρμογή. Δεν υπάρχουν όρια μεταξύ modules, οπότε κάθε script μπορεί να αγγίξει κάθε global. Η μετάβαση από Vanilla JS σε Vue αντικαθιστά το χειροκίνητο δέσιμο με το DOM με ένα reactive μοντέλο δεδομένων, σας δίνει πραγματικά επαναχρησιμοποιήσιμα components, και προσθέτει το TypeScript και τα tests που κάνουν το codebase ασφαλές να αλλάξει.

01
Τεχνικός έλεγχος

Πρώτα χαρτογραφώ κάθε script, plugin και εξάρτηση στο DOM. Έτσι παίρνετε αναφορά μετάβασης με εκτίμηση προσπάθειας και σημεία κινδύνου, πριν αλλάξει γραμμή κώδικα.

02
Αρχιτεκτονική & σχέδιο

Ορίζουμε από την αρχή τα όρια των components, η διαχείριση του state και τα εργαλεία build, μαζί με τη σειρά μεταφοράς, ώστε τα πιο επικίνδυνα κομμάτια να πάνε πρώτα.

03
Σταδιακή μετάβαση

Νησίδες Vue 3 μπαίνουν μέσα στις υπάρχουσες σελίδες και αντικαθιστούν το χειρόγραφο JavaScript λειτουργία προς λειτουργία. Στο μεταξύ το site δουλεύει κανονικά, χωρίς ολικό ξαναγράψιμο, χωρίς παγωμένο roadmap.

04
Σταθεροποίηση & παράδοση

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

Τι σας δίνει η μετάβαση από Vanilla JS σε Vue

  • Οι αλλαγές παύουν να είναι στοίχημα, τα ελεγμένα components πιάνουν τα λάθη πριν τα δουν οι πελάτες σας
  • Ένα frontend στο οποίο οι developers θέλουν να δουλέψουν αντί να το αποφεύγουν (Vue 3, Vite, έτοιμο για TypeScript)
  • Καμία παύση ανάπτυξης, το site συνεχίζει να δουλεύει
  • Τεκμηρίωση και 30 ημέρες τεχνική εγγύηση μετά τη θέση σε λειτουργία
Vanilla JS to Vue migration: querySelector DOM soup replaced by one typed component
Vanilla JS to Vue migration: application state in one typed Pinia store
Γίνεται η μετάβαση χωρίς να ξαναγραφτούν όλα μαζί;

Ναι, αυτό είναι όλο το νόημα. Επειδή το Vue 3 μπαίνει μέσα στις υπάρχουσες σελίδες σας, οι λειτουργίες μεταφέρονται μία-μία ενώ η υπόλοιπη εφαρμογή δουλεύει όπως είναι.

Αυτή είναι η κανονική αφετηρία. Ο τεχνικός έλεγχος ανασυνθέτει πρώτα το πώς συμπεριφέρεται πραγματικά η εφαρμογή· μετά προσθέτω tests γύρω από κάθε λειτουργία πριν μεταφερθεί, ώστε να μην αλλάξει τίποτα στα κρυφά.

Ένα τυπικό site ή εσωτερικό εργαλείο παίρνει 4-10 εβδομάδες, ανάλογα με το πόση λογική ζει στο frontend. Ο τεχνικός έλεγχος σας δίνει συγκεκριμένη εκτίμηση από την αρχή.

Όχι. Το Vue μιλάει με το υπάρχον backend σας όπως είναι, σελίδες που παράγονται στον server, AJAX endpoints ή templates. Ο εκσυγχρονισμός του backend μπορεί να έρθει αργότερα, ή και ποτέ.

Επικοινωνία

Αθήνα, συνεργασία εξ αποστάσεως με ομάδες σε Ευρώπη & ΗΠΑ

info@offline-web.com

Μέσω της φόρμας επικοινωνίας, χωρίς κλήση
Τιμή και χρονοδιάγραμμα

    Πώς δουλεύει
    1. Πείτε μου για το έργο σας παρακάτω.
    2. Σας στέλνω με email μερικές γρήγορες ερωτήσεις, περίπου 2 λεπτά.
    3. Παίρνετε τιμή, χρονοδιάγραμμα και αντικείμενο έργου με email. Χωρίς κλήση.
    Ένα link με βοηθάει να εκτιμήσω πιο γρήγορα το έργο σας.

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

    Ο ιστότοπος προστατεύεται από reCAPTCHA. Ισχύουν η Πολιτική Απορρήτου and Όροι Χρήσης της Google.