Ξεκινώντας Η πρώτη σας συνταγή
Η πρώτη σας συνταγή
Τι δέχεται σήμερα το πρωτότυπο του Anchor και σε τι διαφέρει από το προσχέδιο της μελλοντικής γλώσσας.
Εδώ υπάρχουν δύο ξεχωριστά μπλοκ που δεν πρέπει να συγχέονται. Το πρώτο είναι ό,τι καταλαβαίνει το πρωτότυπο αυτή τη στιγμή. Το δεύτερο είναι πώς θα μπορούσε να μοιάζει η γλώσσα αργότερα.
Τι καταλαβαίνει το πρωτότυπο σήμερα
Το πρωτότυπο του πάνελ Build αναγνωρίζει μόνο μια πολύ περιορισμένη μορφή: μια δήλωση συνταγής με όνομα σε εισαγωγικά και εξαρτήσεις με ονόματα σε εισαγωγικά. Ελέγχει ότι οι παρενθέσεις και τα άγκιστρα κλείνουν σωστά και φτιάχνει έναν γράφο εξαρτήσεων για προεπισκόπηση. Τίποτα παραπάνω.
Ένα αρχείο script περιέχει μία δήλωση συνταγής, γι’ αυτό παρακάτω υπάρχουν δύο ξεχωριστά αρχεία.
Αρχείο CheckGit:
recipe "CheckGit" {
// Πρωτότυπο: εδώ δεν εκτελείται καμία πραγματική ενέργεια Git.
}
Αρχείο BuildShops:
recipe "BuildShops" {
dependsOn("CheckGit")
// Το πρωτότυπο δεν εκτελεί το υπόλοιπο κείμενο.
}
Τι δεν κάνει το πρωτότυπο: δεν καλεί μεθόδους, δεν διαβάζει τα server ή client, δεν γράφει αρχεία και δεν κατασκευάζει ούτε εγκαθιστά τίποτα. Ο επεξεργαστής δεν έχει ακόμη ούτε υποδείξεις, ούτε επισήμανση σύνταξης, ούτε έλεγχο τύπων.
Πώς θα μπορούσε να μοιάζει στο μέλλον (προσχέδιο)
// ΠΡΟΧΕΙΡΟ. Δεν εκτελείται. Τα ονόματα και η σύνταξη δεν έχουν εγκριθεί.
recipe BuildLcoin {
dependsOn(GenerateShops);
GenerateShops.output
.select(server.shops.lcoin.id)
.replaceIn(client.dat.shopProducts);
}
Οι διαφορές από το πρωτότυπο φαίνονται αμέσως: ονόματα χωρίς εισαγωγικά, ερωτηματικό και κλήσεις μεθόδων στα αντικείμενα server και client. Ποια από αυτές τις μορφές θα μείνει θα το αποφασίσει ο υπεύθυνος του έργου έπειτα από συζήτηση.
Τι ακολουθεί
- Περιβάλλον εκτέλεσης: από πού προέρχεται το επιλεγμένο έργο.
- Εξαρτήσεις ανάμεσα σε συνταγές.