Κέρδη:
- Δυνατότητα εγγραφής συναρτήσεων, κλάσεων και μονάδων στο AI με σαφείς ορισμούς εισόδου-εξόδου και περιορισμών
- Δυνατότητα χρήσης AI ως συνεργάτη προγραμματισμού ζεύγους και πρόοδος βήμα προς βήμα, σε μικρά, επαληθεύσιμα κομμάτια
- Δυνατότητα εντοπισμού λογικών σφαλμάτων και σφαλμάτων ακραίων περιστατικών με τη μεταγλώττιση του κώδικα που δημιουργείται από το AI και εκτελώντας τον με μικρά παραδείγματα
Ο προγραμματισμός ζευγών είναι όταν δύο προγραμματιστές εργάζονται για το ίδιο πρόβλημα, με τον έναν να γράφει και τον άλλο να αναθεωρεί. Η κωδικοποίηση με τεχνητή νοημοσύνη είναι η ψηφιακή εκδοχή αυτής της σχέσης: εσείς ορίζετε την κατεύθυνση, τους περιορισμούς και τα κριτήρια αποδοχής. Το AI παράγει γρήγορο σχέδιο. Επαληθεύετε κάθε βήμα με τη σύνταξη και τη δοκιμή του. Η μεγαλύτερη παγίδα εδώ είναι να πείτε στο AI «γράψτε μου αυτήν την εφαρμογή από την αρχή μέχρι το τέλος» και να αποδεχτείτε τυφλά ένα μπλοκ 200 γραμμών. Ο καλός προγραμματισμός ζευγών προχωρά σε μικρά βήματα: κάθε βήμα πρέπει να είναι κατανοητό, ελεγχόμενο και αναστρέψιμο.
Σε αυτή την ενότητα θα μάθετε πώς να εκτυπώνετε λειτουργίες, τάξεις και ενότητες με ένα σαφές συμβόλαιο εισόδου-εξόδου. Πώς να καθοδηγήσετε την τεχνητή νοημοσύνη βήμα προς βήμα. και θα δούμε πώς να συλλάβουμε τα σφάλματα λογικής και κεφαλαίων κεφαλαίων εκτελώντας τον κώδικα που παράγει με μικρά παραδείγματα. Ο στόχος δεν είναι η ταχύτητα, αλλά η επαληθευμένη ταχύτητα.
Έννοιες: Συμβόλαιο εισόδου-εξόδου: Ένας σαφής ορισμός του τι εισόδου λαμβάνει μια συνάρτηση και ποια συμπεριφορά εξόδου και σφάλματος υπόσχεται. Περίπτωση ακμής: Είσοδος που δεν είναι συνηθισμένη αλλά μπορεί να εμφανιστεί στην πραγματικότητα (κενή, μηδέν, αρνητική, πολύ μεγάλη, μηδενική). Σταδιακή ανάπτυξη: Συνέχιση με μικρά κομμάτια εργασίας και επικύρωση κάθε βήματος.
Εκτύπωση Κώδικα με Σύμβαση Net
Η βάση του κώδικα ποιότητας είναι να ορίσετε ακριβώς "τι θέλετε" πριν ξεκινήσετε την εργασία. Όταν γράφετε μια συνάρτηση στο AI, δώστε της πέντε πράγματα: γλώσσα και έκδοση, τύποι εισόδου και έννοιες, έξοδος, συνθήκες σφάλματος και περιορισμοί (απόδοση, απαγόρευση εξωτερικής βιβλιοθήκης, στυλ). Αυτό εμποδίζει το AI να μαντέψει.
- Γράψτε το συμβόλαιο. Είσοδος, έξοδος, σφάλμα, περιορισμός.
- Ζητήστε μια μικρή μονάδα. Μια λειτουργία με μια ενιαία ευθύνη. Δεν είναι μια τεράστια ενότητα.
- Ζητήστε ένα μπλοκ δοκιμής. Προσθέστε μερικά δείγματα εκτελέσεων/δοκιμών δίπλα στον κώδικα.
- Μεταγλώττιση και εκτέλεση. Δοκιμάστε το με θήκες, επαληθεύστε την έξοδο με το μάτι.
- Μεταβείτε στο επόμενο βήμα. Μόλις επιβεβαιωθεί ένα κομμάτι, χτίστε πάνω του.
Προτροπή συνάρτησης συμβεβλημένης: "Γράψτε μια συνάρτηση για TypeScript 5. Σκοπός: υπολογίστε τη συνολική ποσότητα των αντικειμένων σε ένα καλάθι αγορών. Εισαγωγή: { τιμή: αριθμός, ποσότητα: αριθμός [] πίνακας. Έξοδος: αριθμός (σύνολο). Κανόνες: ρίξε Σφάλμα εάν η ποσότητα ή η τιμή είναι αρνητική. επιστρέψτε 0 για κενό πίνακα. Στρογγυλή ποσότητα δοκιμής σε 2 δεκαδικά ψηφία (κανονικό, κενό, αρνητική ποσότητα, δεκαδική τιμή, μεμονωμένο είδος)».
Καθοδήγηση AI ως ζευγάρι
Η καλή πρόοδος στον προγραμματισμό ζευγών είναι ένας διάλογος και όχι ένα μεγάλο αίτημα. Πρώτα, ζητήστε τον σκελετό και εκτελέστε τον. στη συνέχεια προσθέστε μια κατάσταση ακμής. τότε διορθώστε ένα σφάλμα. Αυτή η προσέγγιση διατηρεί τον κώδικα κατανοητό και σας δίνει τον έλεγχο σε κάθε βήμα.
Προτροπή σταδιακής προόδου: "Θα γράψουμε έναν αναγνώστη που διαβάζει ένα αρχείο CSV και μετατρέπει τις γραμμές σε αντικείμενο. Ας πάμε ΒΗΜΑ ΒΗΜΑ, προχωρώντας στο επόμενο βήμα χωρίς να επιβεβαιώσω κάθε βήμα. Βήμα 1: απλώς γράψτε τον σκελετό που χωρίζει το αρχείο σε γραμμές και διαχωρίζει τη γραμμή κεφαλίδας. Μην προσθέσετε μετατροπή τύπου, συντομεύστε το ή κρατήστε το χέρι."
Εξηγήστε και αιτιολογήστε την προτροπή κώδικα: "Εξηγήστε τη συνάρτηση που μόλις γράψατε, όχι γραμμή-γραμμή, αλλά απόφαση-απόφαση: ποια απόφαση σχεδίασης πήρατε και γιατί, ποια περίπτωση ακμής χειριστήκατε και πώς, ποιες περιπτώσεις εξαιρέσατε εσκεμμένα; Καταγράψτε 3 υποθέσεις στον κώδικα που δεν πρέπει να χάσω."
Συμβουλή: Μην αποδεχτείτε τον κώδικα που δημιουργείται από AI χωρίς να τον καταλάβετε. «Εξήγησέ μου αυτό, τι υποθέσεις έκανες;» Η ερώτηση αποκαλύπτει κρυφά σφάλματα και σας επιτρέπει να υπερασπιστείτε αυτόν τον κωδικό, καθώς ο κωδικός παραμένει δική σας ευθύνη. Το να βάζεις κώδικα που δεν καταλαβαίνεις στην παραγωγή είναι σαν να στέλνεις ένα συμβόλαιο χωρίς να το υπογράψεις.
Αδύναμη προτροπή / Ισχυρή προτροπή
ΑΔΥΝΑΤΗ:"Γράψτε μια συνάρτηση ταξινόμησης."(Αποτέλεσμα: ποια γλώσσα, τι ταξινομείται, είναι σταθερό, ποιος είναι ο περιορισμός απόδοσης, κώδικας που είναι ασαφής και πιθανότατα δεν ταιριάζει στην απαίτηση.) STRONG:"Για Java 17, γράψτε μια μέθοδο που ταξινομεί ένα αντικείμενο List<Employee> πρώτα ανά τμήμα (αλφαβητικά) και στη συνέχεια ανά μισθό. Επιστρέφει τη νέα αρχική λίστα. Το τμήμα έρχεται τελευταίο. Εξηγήστε την πολυπλοκότητα της μεθόδου στη γραμμή σχολίων, καθορίστε την προσθήκη ενός κύριου μπλοκ δοκιμής με 4 δείγματα.
Ισχυρή προτροπή. Περιλαμβάνει κριτήριο ταξινόμησης (δύο επιπέδων), κανόνα παρενεργειών (αντικατάσταση πρωτοτύπου), μηδενική συμπεριφορά και προσδοκία δοκιμής. Χωρίς αυτές τις λεπτομέρειες, η τεχνητή νοημοσύνη παράγει μια εύλογη αλλά εσφαλμένη λύση. για παράδειγμα, μπορεί να καταστρέψει την αρχική λίστα και αυτό θα οδηγήσει σε ένα σιωπηλό σφάλμα αλλού.
Επικύρωση με Edge Cases και Small Samples
Ο κωδικός που λειτουργεί στο χαρούμενο σενάριο δεν είναι ο σωστός κωδικός. Συνειδητά εξαναγκάστε κάθε συνάρτηση που παράγεται:
Τύπος θήκης άκρης
εισαγωγή δείγματος
αναμενόμενη συμπεριφορά
κενή εισαγωγή
Κενός πίνακας/συμβολοσειρά
Δεν είναι σφάλμα, λογικό κενό αποτέλεσμα
Μηδέν/αρνητικό
0, -1
Καθορισμένη και σωστή συμπεριφορά
μεγάλη αξία
Εκατομμύρια ρεκόρ
Έλεγχος υπερχείλισης/απόδοσης
μηδενικό/απροσδιόριστο
λείπει χώρος
Ελεγχόμενο σφάλμα ή προεπιλογή
Διπλότυπο/ασυνήθιστο
επαναλαμβανόμενη, αντίστροφη σειρά
σωστό αποτέλεσμα
Μίνι Θήκες
Περίπτωση 1 — Αθόρυβο σφάλμα στρογγυλοποίησης. Το AI γράφει μια συνάρτηση που συλλέγει χρήματα με δεκαδικούς (float) τύπους. 0,1 + 0,2 δίνει 0,300000000000000004. Το σφάλμα επιλύεται όταν ο μηχανικός προσθέτει τον κανόνα "Στρογγυλοποίηση σε 2 ψηφία και χρήση ολόκληρων πένας". Ένας κανόνας 3 γραμμών αποτρέπει χιλιάδες πένες διακύμανσης στη μηνιαία συμφωνία.
Περίπτωση 2 — Παγίδα παρενεργειών. Το AI γράφει μια μέθοδο που "ταξινομεί" μια λίστα, αλλά τροποποιεί την αρχική λίστα στη θέση της. Παρουσιάζεται απροσδόκητη συμπεριφορά επειδή μια άλλη λειτουργική μονάδα χρησιμοποιεί την ίδια λίστα. Εάν ο περιορισμός "αλλαγή αρχικού" ήταν στη γραμμή εντολών, το σφάλμα δεν θα εμφανιζόταν ποτέ. παγιδεύεται στον έλεγχο κώδικα και αποτρέπει 2 ώρες εντοπισμού σφαλμάτων.
Περίπτωση 3 — Κέρδη βήμα προς βήμα. Ένας προγραμματιστής εκτυπώνει μια λειτουργική μονάδα εισαγωγής 150 γραμμών ταυτόχρονα. Όταν βρίσκει ένα λάθος, δεν μπορεί να βρει από πού προήλθε. Ένας άλλος προγραμματιστής χωρίζει την ίδια εργασία σε 5 μικρά βήματα, δοκιμάζει κάθε βήμα σε 2 λεπτά και συλλαμβάνει το σφάλμα αμέσως στο 3ο βήμα.
Συνήθη λάθη
- Εκτύπωση μεγάλων μπλοκ με ένα αίτημα. Γεννιέται επικίνδυνος κώδικας που είναι δύσκολο να κατανοηθεί και να εντοπιστεί σφάλματα.
- Ζητώντας κωδικό χωρίς να δώσεις συμβόλαιο. Εάν το σφάλμα εισόδου-εξόδου είναι διφορούμενο, το AI θα μαντέψει και θα είναι λάθος.
- Απλά δοκιμάζουμε το χαρούμενο σενάριο. Εάν δεν δοκιμαστεί κενή, μηδενική, αρνητική και μεγάλη είσοδος, το σφάλμα αφήνεται στην παραγωγή.
- Αποδοχή χωρίς κατανόηση. Ο κωδικός που δεν αποκαλύπτετε είναι ένα χρέος που δεν μπορείτε να υπερασπιστείτε.
- Αγνοώντας ευαίσθητους τύπους όπως παρενέργειες και χρήματα/ραντεβού. Η διακίνηση χρημάτων με διαχρονική ιστορία είναι μια κλασική πηγή λάθους.
Συνοπτικά
Η σύνταξη κώδικα με τεχνητή νοημοσύνη είναι πειθαρχημένος προγραμματισμός ζευγών: σαφής σύμβαση, μικρά βήματα, κατασκευή και δοκιμή σε κάθε βήμα. Δίνοντας από την αρχή το κουαρτέτο εισόδου-εξόδου-σφάλματος-περιορισμού καθορίζει την ποιότητα του κώδικα. Η εξήγηση του κώδικα που παράγει και η επιβολή του με ακμές φέρνει στην επιφάνεια τα λάθη που κρύβονται κάτω από το χαρούμενο σενάριο. Η πηγή της ταχύτητας δεν είναι η τυφλή αποδοχή. είναι γρήγορο σχέδιο συν γρήγορη επαλήθευση.
Εργασία εφαρμογής
Επιλέξτε μια μικρή αλλά πραγματική συνάρτηση (π.χ. σύνολο καλαθιού, διαφορά ημερομηνίας, ανάλυση κειμένου). Εκτυπώστε χρησιμοποιώντας τη γραμμή εντολών συμβατής λειτουργίας. Προσθέστε τουλάχιστον 5 σενάρια δοκιμής δίπλα του. Εκτελέστε τον κώδικα και δοκιμάστε συνειδητά 5 θήκες άκρων, χρησιμοποιώντας τον πίνακα ως οδηγό. Βρείτε ένα σφάλμα σε τουλάχιστον μία ακμή (εάν όχι, σχεδιάστε μια νέα είσοδο για να εξαναγκάσετε τη συνάρτηση), διορθώστε το με AI και επαληθεύστε δοκιμάζοντας ξανά ότι η επιδιόρθωση λειτούργησε.
λίστα ελέγχου
- [ ] Έγραψα ένα συμβόλαιο που περιλαμβάνει είσοδο, έξοδο, σφάλματα και περιορισμούς.
- [ ] Δημιούργησα τον κώδικα με μικρά βήματα αντί για ένα μεγάλο μπλοκ.
- [ ] Πρόσθεσα ένα μπλοκ δοκιμής/δείγματος εκτέλεσης δίπλα στον κώδικα.
- [ ] Έχω δοκιμάσει συνειδητά τουλάχιστον 5 περιβλήματα άκρων.
- [ ] Εξήγησα τον κώδικα στο AI και εξέτασα τις υποθέσεις του.
- [ ] Διόρθωσα το σφάλμα που βρέθηκε και επιβεβαίωσα την επιδιόρθωση δοκιμάζοντας ξανά.