Μονάδα 1 / 11

Εισαγωγή στην τεχνητή νοημοσύνη στην ανάπτυξη φορητών συσκευών: Ρόλοι, όρια, έλεγχος ταυτότητας και ασφάλεια

Κέρδη:

  • Να είστε σε θέση να διακρίνετε πού η τεχνητή νοημοσύνη παρέχει πραγματική ταχύτητα στην ανάπτυξη κινητών (κώδικας μοτίβου, προσχέδιο, εκμάθηση) και πού (αρχιτεκτονική, άδεια, ασφάλεια, δημοσίευση) η απόφαση αφήνεται στον άνθρωπο, ανάλογα με το επίπεδο κινδύνου της εργασίας.
  • Δυνατότητα εφαρμογής μιας πειθαρχίας που επαληθεύει κάθε έξοδο τεχνητής νοημοσύνης μέσω βημάτων μεταγλώττισης, δοκιμής και αναθεώρησης
  • Ικανότητα να αναπτύξετε τη συνήθεια της σύνταξης ισχυρών προτροπών με περιεχόμενο και την προστασία προσωπικών δεδομένων και μυστικών κλειδιών χωρίς να τα δίνετε σε AI

Η ανάπτυξη εφαρμογών για κινητά είναι ένας από τους πιο ανταγωνιστικούς τομείς λογισμικού στον κόσμο. Μιλάμε για ένα προϊόν που λειτουργεί σε δισεκατομμύρια συσκευές, του οποίου ο κύκλος ενημέρωσης εξαρτάται από την έγκριση του καταστήματος και μετριέται στην τσέπη του χρήστη ανά πάσα στιγμή. Η τεχνητή νοημοσύνη (AI — συστήματα λογισμικού που μπορούν να παράγουν κείμενο, κώδικα και λύσεις όπως οι άνθρωποι) έχει εισέλθει σε αυτό το πεδίο με δύο τρόπους: πρώτον, ως βοήθημα που επιταχύνει τη διαδικασία ανάπτυξης (δημιουργία κώδικα, εντοπισμός σφαλμάτων, δοκιμαστική εγγραφή) και δεύτερον, ως δυνατότητα ενσωματωμένη στην εφαρμογή (αναγνώριση εικόνας στη συσκευή, βοηθός συνομιλίας, μηχανή συστάσεων). Αυτή η ενότητα διδάσκει και από άκρο σε άκρο. Αλλά ας πούμε μια φράση από την αρχή: Η τεχνητή νοημοσύνη δεν αντικαθιστά τον προγραμματιστή για κινητά. διευρύνει την παραγωγικότητα και το πεδίο εφαρμογής της. Είστε υπεύθυνοι για κάθε γραμμή κώδικα που εκδίδεται, κάθε άδεια που ζητείται και κάθε συναλλαγή που πραγματοποιείται με δεδομένα χρήστη.

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

Πού είναι χρήσιμο το AI στην ανάπτυξη κινητών τηλεφώνων;

Η ανάπτυξη κινητής τηλεφωνίας αποτελείται από πολλές επαναλαμβανόμενες και διαμορφωμένες εργασίες: σύνταξη κώδικα προβολής, ρύθμιση επιπέδου αιτήματος δικτύου, ορισμός μοντέλου δεδομένων, παραγωγή δοκιμαστικής περίπτωσης, επίλυση του μηνύματος σφάλματος. Το AI παράγει αυτά τα μοτίβα πολύ γρήγορα. Αντίθετα, οι αρχιτεκτονικές αποφάσεις, οι προτιμήσεις της εμπειρίας του χρήστη, τα όρια ασφαλείας και η ακρίβεια της επιχειρηματικής λογικής είναι ο τομέας των ανθρώπων.

Είναι χρήσιμο να χωρίσετε τις εργασίες σε τρεις κουβάδες με βάση το επίπεδο κινδύνου:

Τύπος εργασίας

Ο ρόλος της AI

ο ρόλος του ανθρώπου

Κωδικός προτύπου (boilerplate), δείγμα οθόνης, μετατροπή

Δημιουργεί βύθισμα, το επιταχύνει

Κριτικές, ενσωματώνει

Επιχειρησιακή λογική, ροή δεδομένων, ενσωμάτωση API

Παρέχει προτάσεις και προσχέδια

Επαληθεύει, δοκιμάζει, επικυρώνει

Αρχιτεκτονική, αίτηση άδειας, ασφάλεια, απόφαση εκπομπής

Παραθέτει επιλογές και αιτιολογήσεις

Παίρνει την απόφαση και φέρει την ευθύνη

Αυτός ο πίνακας θα είναι η πυξίδα μας σε όλη την ενότητα. Η δεξιά στήλη δεν παραδίδεται ποτέ στο AI.

Συμβουλή: Σκεφτείτε το AI σαν έναν «πολύ γρήγορο αλλά άπειρο ασκούμενο». Του δίνετε ένα ξεκάθαρο καθήκον, διαβάζετε την εκτύπωση του, τον δοκιμάζετε και αναλαμβάνετε την ευθύνη. Δεν στέλνετε τον κωδικό που παράγει ο ασκούμενος στην παραγωγή (ζωντανό περιβάλλον) χωρίς να τον διαβάσετε. Ο ίδιος κανόνας ισχύει και για την τεχνητή νοημοσύνη.

Πειθαρχία επαλήθευσης: τρία βήματα

Το κείμενο AI είναι ρευστό και φαίνεται σίγουρο. Αλλά η ευχέρεια δεν είναι ακρίβεια. Το AI μερικές φορές ταιριάζει σε μια λειτουργία βιβλιοθήκης που δεν υπάρχει (αυτό ονομάζεται ψευδαίσθηση - το μοντέλο που παράγει με σιγουριά κάτι που στην πραγματικότητα δεν υπάρχει). Ακολουθεί το φίλτρο τριών βημάτων που εφαρμόζει ένας προγραμματιστής κινητής τηλεφωνίας σε κάθε έξοδο AI:

  1. Μεταγλώττιση και εκτέλεση. Ο κώδικας όντως μεταγλωττίζεται, ανοίγει η εφαρμογή; Το API που προτείνει η τεχνητή νοημοσύνη είναι πραγματικά στο SDK (κιτ ανάπτυξης λογισμικού — το έτοιμο σύνολο εργαλείων που προσφέρει η πλατφόρμα);
  2. Δοκιμάστε το. Δοκιμάστε την αναμενόμενη συμπεριφορά αυτόματα ή μη αυτόματα. Το «φαίνεται να λειτουργεί» δεν είναι αρκετό. Δοκιμάστε ακραίες περιπτώσεις (δεδομένα αδράνειας, χωρίς δίκτυο, άρνηση άδειας).
  3. Αναθεωρήστε και αιτιολογήστε. Καταλαβαίνετε γιατί ο κώδικας είναι γραμμένος με αυτόν τον τρόπο; Μην δημοσιεύετε κώδικα που δεν καταλαβαίνετε. Ρωτήστε το AI "τι κάνει αυτή η γραμμή, γιατί χρειάζεται;" παρακαλώ.
Προσοχή: Οι αριθμοί έκδοσης, τα ονόματα βιβλιοθηκών και οι υπογραφές API που παρέχονται από την YZ ενδέχεται να είναι ξεπερασμένες ή κατασκευασμένες. Δεν μπορεί να γνωρίζει για ενημερώσεις που κυκλοφόρησαν μετά την ημερομηνία λήξης (την τελευταία ημερομηνία εκπαίδευσης του μοντέλου). Επαληθεύετε πάντα μια κρίσιμη εξάρτηση από την επίσημη τεκμηρίωση (Apple Developer, Android Developers).

τρεις μίνι θήκες

Περίπτωση 1 — Επιτάχυνση της ανάπτυξης οθόνης. Μια ομάδα ηλεκτρονικού εμπορίου συνέταξε την οθόνη λεπτομερειών του προϊόντος με τη βοήθεια τεχνητής νοημοσύνης από το Jetpack Compose (η σύγχρονη εργαλειοθήκη διασύνδεσης του Android). Το πρώτο σχέδιο, που συνήθως διαρκεί 2 μέρες, βγήκε σε 3 ώρες. Αλλά η ομάδα έπιασε στη δοκιμή ότι η μορφοποίηση τιμής που παρήχθη από την τεχνητή νοημοσύνη έκανε λάθος στρογγυλοποίηση: 19,99 TL εμφανίστηκαν ως 20 TL σε ορισμένες συσκευές. Εάν δεν υπήρχε επαλήθευση, αυτό το σφάλμα θα εμφανιζόταν. Το κέρδος είναι πραγματικό, αλλά ο έλεγχος είναι απαραίτητος.

Περίπτωση 2 — Πιάστηκε ψευδαίσθηση. Ένας προγραμματιστής έλαβε κώδικα από το AI για να ζητήσει άδεια τοποθεσίας στο iOS. Το AI πρότεινε μια συνάρτηση που ονομάζεται requestPreciseLocationOnce(). Δεν υπήρχε τέτοιο API. Το σωστό ήταν requestWhenInUseAuthorization(). Το σφάλμα μεταγλώττισης το αποκάλυψε αμέσως. Μάθημα: ο μεταγλωττιστής είναι ο πιο έντιμος ελεγκτής της τεχνητής νοημοσύνης.

Περίπτωση 3 — Παγίδα ιδιωτικότητας. Μια ομάδα επικόλλησε αναφορές σφαλμάτων χρήστη στο AI και ζήτησε μια λύση. Οι αναφορές περιλάμβαναν τα email των χρηστών και τα αναγνωριστικά συσκευών. Αυτό σήμαινε διαρροή προσωπικών δεδομένων σε υπηρεσία τρίτου μέρους και ήταν παραβίαση από την άποψη του KVKK (Νόμος για την Προστασία Δεδομένων Προσωπικού Χαρακτήρα). Λύση: εκκαθάριση (απόκρυψη) προσωπικών πεδίων πριν δώσετε τα δεδομένα στο AI.

Αδύναμη προτροπή / Ισχυρή προτροπή

Η διαφορά μεταξύ δύο προτροπών για την ίδια εργασία καθορίζει την ποιότητα της εξόδου.

Αδύναμη προτροπή: "Γράψε μου μια οθόνη σύνδεσης."

Ισχυρό μήνυμα: "Δημιουργήστε μια οθόνη σύνδεσης χρησιμοποιώντας το Jetpack Compose για Android. Απαιτήσεις: - Πεδίο email και κωδικού πρόσβασης, επαλήθευση μορφής email, κωδικός πρόσβασης τουλάχιστον 8 χαρακτήρων - Το κουμπί "Σύνδεση" είναι απενεργοποιημένο κατά τη φόρτωση και εμφάνιση του περιστρεφόμενου κυκλώματος - Τα μηνύματα σφάλματος εμφανίζονται με κόκκινο κείμενο κάτω από το πεδίο - Αρχιτεκτονική MVVM: κατάσταση σε ViewModel-MVVM μόνο, Material3Jlinust,Kompostable. δώστε τον κωδικό και, στη συνέχεια, κάθε ενότητα Εξηγήστε με 1 πρόταση."

Η δεύτερη προτροπή λέει την πλατφόρμα, το εργαλείο, την αρχιτεκτονική, τα όρια και τη μορφή εξόδου. Δεν αφήνει τίποτα στο AI να μαντέψει. Ως εκ τούτου, δίνει ένα πολύ πιο χρήσιμο και πιο εύκολο στην επαλήθευση αποτέλεσμα.

Αντιγράψιμα πρότυπα εκκίνησης

Χρησιμοποιήστε τα παρακάτω πρότυπα συμπληρώνοντάς τα με το δικό σας περιβάλλον.

Πρότυπο ρόλου και περιβάλλοντος: "Είστε ανώτερος προγραμματιστής [iOS/Android/Flutter]. Το έργο μου: [τύπος εφαρμογής], πλατφόρμα στόχευσης [έκδοση], αρχιτεκτονική [MVVM/Clean]. Εργασία: [τι θέλετε]. Περιορισμοί: [γλώσσα, βιβλιοθήκη, έκδοση]. Πρώτα συνοψίστε το σχέδιο σε 3 στοιχεία και, στη συνέχεια, δημιουργήστε τον κωδικό κινδύνου."

Πρότυπο ελέγχου κώδικα:"Εξετάστε τον παρακάτω κώδικα [γλώσσας]. Προσδιορίστε:1) Σφάλματα και κινδύνους σύγκρουσης2) Ζητήματα μνήμης/απόδοσης3) Ευπάθειες ασφάλειας και απορρήτου4) Όπου θα μπορούσε να γραφτεί πιο απλά. Αριθμοί γραμμών για κάθε στοιχείο και προτείνετε διορθώσεις.[κωδικός]"

Πρότυπο εκμάθησης: "Εξηγήστε την [έννοια, π.χ. async/wait in Swift] από την οπτική γωνία ενός προγραμματιστή για κινητά. Δώστε ένα απλό παράδειγμα, αναφέρετε 3 κοινά λάθη και επισημάνετε πότε δεν πρέπει να το χρησιμοποιήσω."

Πρότυπο επαλήθευσης: "Προτείσατε αυτό το API/λειτουργία: [όνομα]. Επαληθεύστε: Σε ποια έκδοση SDK εισήχθη, ποια άδεια απαιτεί, έχει καταργηθεί; Εάν δεν είστε βέβαιοι, πείτε "δεν είμαι βέβαιος, ελέγξτε την επίσημη τεκμηρίωση".

Συνήθη λάθη

  • Επικόλληση της εξόδου χωρίς να την διαβάσετε. Το πιο συνηθισμένο και πιο επικίνδυνο λάθος. Ακόμα κι αν μεταγλωττιστεί, η λογική μπορεί να είναι λάθος.
  • Παροχή εμπιστευτικών δεδομένων στο AI. Το κλειδί API, τα δεδομένα χρήστη, το πιστοποιητικό υπογραφής δεν επικολλώνται ποτέ στο αίτημα.
  • Δεν επαληθεύεται η έκδοση και το API. Η τεχνητή νοημοσύνη μπορεί να προτείνει απαρχαιωμένα ή κατασκευασμένα API. Το επίσημο έγγραφο έχει τον τελευταίο λόγο.
  • Αφήνοντας την αρχιτεκτονική απόφαση στην ΑΙ. "Ποια είναι η καλύτερη αρχιτεκτονική;" Η απάντηση στην ερώτηση εξαρτάται από το έργο σας. Το AI δίνει μια γενική απάντηση, ξέρετε το πλαίσιο.
  • Γράψιμο μιας τεράστιας προτροπής. Προσπάθεια επίλυσης μιας σύνθετης εργασίας με ένα μόνο αίτημα. Είναι ασφαλέστερο να το χωρίσετε σε μικρά, επαληθεύσιμα βήματα.
  • Ζητώντας άδειες «για κάθε περίπτωση». Το AI μερικές φορές προσθέτει περισσότερα δικαιώματα από όσα χρειάζεται. Κάθε άδεια ενέχει κίνδυνο για την έγκριση αποθήκευσης και την εμπιστοσύνη των χρηστών.

Συνοπτικά

Η τεχνητή νοημοσύνη παίζει δύο ρόλους στην ανάπτυξη κινητής τηλεφωνίας: έναν βοηθό που επιταχύνει τη διαδικασία ανάπτυξης και μια δυνατότητα ενσωματωμένης σε εφαρμογές. Ο κώδικας μοτίβου παρέχει τεράστια επιτάχυνση για τη σύνταξη και την εκμάθηση. Αλλά οι αποφάσεις για την αρχιτεκτονική, την ασφάλεια, την άδεια και τη δημοσίευση είναι ανθρώπινες. Κάθε έξοδος επαληθεύεται μέσω τριών βημάτων: compile-run, test, review. Εμπιστευτικά δεδομένα και προσωπικές πληροφορίες δεν δίνονται ποτέ στην AI. Η πλατφόρμα ισχυρής ζήτησης δηλώνει ξεκάθαρα το εργαλείο, τους περιορισμούς και τη μορφή εξόδου. Αυτή η πειθαρχία είναι η βάση για την υπόλοιπη ενότητα.

Εργασία εφαρμογής

Επιλέξτε μια οθόνη από το δικό σας έργο για κινητά (ή μια φανταστική "εφαρμογή λήψης σημειώσεων"). Γράψτε μια προτροπή για αυτήν την οθόνη χρησιμοποιώντας το "Πρότυπο ρόλου και περιβάλλοντος" παραπάνω. Δοκιμάστε να μεταγλωττίσετε τον κώδικα που δημιουργήθηκε από την τεχνητή νοημοσύνη σε ένα έργο και περάστε τον μέσω ενός φίλτρου επαλήθευσης τριών βημάτων: μεταγλωττίστηκε, λειτούργησε όπως αναμενόταν, καταλάβατε κάθε γραμμή; Σημειώστε τουλάχιστον ένα σφάλμα ή ψεύτικο API που θα βρείτε.

λίστα ελέγχου

  • [ ] Καθόρισα σε ποιον από τους τρεις κουβάδες εμπίπτει η εργασία με βάση το επίπεδο κινδύνου
  • [ ] Προσδιόρισα την πλατφόρμα, την έκδοση, την αρχιτεκτονική και τους περιορισμούς στο αίτημα
  • [ ] Έκανα μεταγλώττιση της εξόδου και την έτρεξα
  • [ ] Δοκίμασα περιπτώσεις ορίων (δεδομένα σε αδράνεια, χωρίς δίκτυο, άρνηση άδειας)
  • [ ] Φρόντισα να κατανοήσω κάθε γραμμή
  • [ ] Δεν παρείχα προσωπικά δεδομένα ή ιδιωτικά κλειδιά στο AI
  • [ ] Έχω επαληθεύσει κρίσιμα API από την επίσημη τεκμηρίωση