starlark — συγκεντρωτικός οδηγός — DedSec Project
starlark — συγκεντρωτικός οδηγός Starlark Βασική ιδέα Η Starlark είναι περιορισμένη Python-like γλώσσα ρυθμίσεων build systems με στόχο deterministic evaluation. Μικρό εκπαιδευτικό…
Starlark
Βασική ιδέα
Η Starlark είναι περιορισμένη Python-like γλώσσα ρυθμίσεων build systems με στόχο deterministic evaluation.
Μικρό εκπαιδευτικό απόσπασμα
def inc(x):
return x + 1
Άσκηση βασισμένη στη συγκεκριμένη συμπεριφορά
Χρησιμοποίησε δοκιμαστικό build sandbox και εξήγησε γιατί δεν επιτρέπονται απεριόριστα Python imports.
Διάγνωση και όρια
Η ομοιότητα με Python δεν σημαίνει πλήρη standard library ή ίδια mutable semantics.
Κάνε την άσκηση με πραγματικά δοκιμαστικά δεδομένα και με έκδοση Starlark που ταιριάζει στον κώδικα. Σημείωσε μία αρχική πρόβλεψη και την πραγματική έξοδο. Για περίπλοκο ή μη διαθέσιμο runtime, παρουσίασε τη στατική ανάλυση ως τέτοια, όχι ως επιτυχημένη εκτέλεση. Δοκίμασε ξεχωριστά την κανονική περίπτωση και μία οριακή τιμή, χωρίς πραγματικά προσωπικά ή παραγωγικά δεδομένα.
Starlark — Αναλυτικός οδηγός εξάσκησης
Ξεκίνησε από αληθινή σύνταξη
Το αρχικό παράδειγμα της Starlark είναι η μικρότερη αφετηρία. Διάβασε τη σειρά των πράξεων και τον τρόπο εμφάνισης, έπειτα επιβεβαίωσέ το στο σωστό περιβάλλον. Μην θεωρείς ότι η σύνταξη άλλης γλώσσας έχει ίδια σημασία.
def greet(name):
return "Hello, " + name + "!"
result = greet("Ada")
Περιβάλλον εκτέλεσης: Evaluate in a Starlark/Bazel-capable host.. Έλεγξε έκδοση compiler/interpreter πριν τροποποιήσεις τον κώδικα και κράτησε την αρχική έξοδο. Δούλεψε σε προσωρινό κατάλογο, μακριά από πραγματικά δεδομένα.
Οδηγούμενο εργαστήριο
Γράψε pure function για παραγωγή build labels από λίστα. Στο Bazel φόρτωσε το .bzl ρητά και έλεγξε τις ιδιότητες που επιτρέπονται σε BUILD files.
Δοκιμές ορίων
Η Starlark περιορίζει χαρακτηριστικά Python και έχει host-specific globals. Ξεχώρισε errors αξιολόγησης από errors build.
Προχωρημένη αποστολή
Φτιάξε ξεχωριστό αρχείο για το παραπάνω εργαστήριο και πειραματίσου με μία αλλαγή σε σειρά, σχήμα, τύπο, scope ή περιβάλλον, ανάλογα με τη Starlark. Καθόρισε invariant και σύγκρινε αναμενόμενη με πραγματική έξοδο. Αν κάτι διαφέρει, απομόνωσε το ελάχιστο παράδειγμα πριν μεγαλώσεις το πρόγραμμα.