Προγραμματισμός

10 προβλέψεις ανάπτυξης λογισμικού για το 2018

Η Siddhartha Agarwal είναι αντιπρόεδρος, διαχείριση προϊόντων και στρατηγική, για την Oracle Cloud Platform.

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

Για τους προγραμματιστές, το 2018 θα καθοριστεί από αυτήν την ένταση μεταξύ της κατάσχεσης νέων μετασχηματιστικών ευκαιριών ενώ αντιμετωπίζει την πίεση να κάνει περισσότερα, με υψηλότερη ποιότητα. Ακολουθούν 10 προβλέψεις που σχετίζονται με το πώς θα παίξουν αυτές οι δυνάμεις το επόμενο έτος.

1. Οι συναλλαγές B2B που αξιοποιούν το blockchain μπαίνουν στην παραγωγή

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

Σκεφτείτε μια εταιρεία που παραγγέλνει προϊόντα από έναν υπεράκτιο κατασκευαστή. Αυτά τα προϊόντα αποστέλλονται μέσω ναυτιλιακής εταιρείας, έρχονται μέσω τελωνείων, μέσω άλλης ναυτιλιακής εταιρείας και τέλος στον αγοραστή. Σήμερα, η επαλήθευση και η συμφιλίωση κάθε βήματος συμβαίνει κυρίως μέσω μηνυμάτων ηλεκτρονικού ταχυδρομείου και υπολογιστικών φύλλων, με πολλούς ανθρώπους και διαδικασίες. Το Blockchain εξαλείφει τις μη αυτόματες διαδικασίες και τη συμφιλίωση καταγράφοντας αμετάκλητα τις ενημερώσεις στο καθολικό blockchain όταν ένας ελάχιστος αριθμός μερών λένε, "Ναι, αυτό το μέρος της συναλλαγής συνέβη."

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

2. Τα Chatbots πραγματοποιούν συστηματικά πραγματικές συνομιλίες με πελάτες και υπαλλήλους

Οι άνθρωποι κουράζονται να χρειάζονται πολλές εφαρμογές για κινητά για να κάνουν την ίδια δουλειά - όπως τρεις διαφορετικές εφαρμογές αεροπορικών εταιρειών με διαφορετικούς τρόπους για να κάνουν check in και να λάβουν κάρτα επιβίβασης. Ένας καλύτερος τρόπος είναι να παρέχετε την ίδια λειτουργικότητα αλλά μέσω της πιο δημοφιλούς εφαρμογής στο τηλέφωνό σας - μηνυμάτων. Η ανταλλαγή μηνυμάτων έχει τρία ελκυστικά στοιχεία συνεπή σε όλο το μέσο: άμεση, εκφραστική και συνομιλία - δεν απαιτείται εκπαίδευση. Χάρη στην πρόοδο της τεχνητής νοημοσύνης και της επεξεργασίας φυσικής γλώσσας, οι χρήστες θα χρησιμοποιούν το Facebook Messenger, το Slack, το WeChat, το WhatsApp ή έναν βοηθό φωνής όπως το Amazon Alexa ή το Google Home, για να κάνουν ερωτήσεις και να λαμβάνουν απαντήσεις από έξυπνα bots.

Οι προγραμματιστές, χρησιμοποιώντας νέες έξυπνες υπηρεσίες cloud δημιουργίας bot, μπορούν να δημιουργήσουν γρήγορα bots που κατανοούν την πρόθεση του πελάτη, διατηρούν την κατάσταση συνομιλίας και ανταποκρίνονται έξυπνα, ενώ διευκολύνουν την ενσωμάτωση με συστήματα back-end. Φανταστείτε να τραβήξετε μια φωτογραφία ενός φορέματος που είδατε σε μια ταινία και να στείλετε μηνύματα στην εικόνα στο αγαπημένο σας κατάστημα ρούχων, το οποίο χρησιμοποιεί αναγνώριση εικόνας και AI για να προτείνει παρόμοια φορέματα. Οι εργαζόμενοι θα μπορούσαν επίσης να είναι τεράστιοι δικαιούχοι ρομπότ για εργασίες, όπως να ρωτήσουν πόσες ημέρες διακοπών έχουν απομείνει, να υποβάλουν ένα εισιτήριο γραφείου βοήθειας ή να παραγγείλουν ένα φορητό υπολογιστή αντικατάστασης, όπου το σύστημα γνωρίζει ακόμη και για τους φορητούς υπολογιστές που είναι κατάλληλος για τον υπάλληλο και μπορεί να παρέχει ενημερώσεις κατάστασης με την παραγγελία τους. Δεδομένου ότι είναι πολύ πιο συγχωρητικό να πειραματιστείτε με τη δική σας βάση υπαλλήλων, οι προγραμματιστές θα μπορούσαν πρώτα να αξιοποιήσουν τις μπάζες τους για να δημιουργήσουν και να δοκιμάσουν bots που αντιμετωπίζουν οι εργαζόμενοι.

3. Το κουμπί εξαφανίζεται: Το AI γίνεται διεπαφή εφαρμογής

Το AI γίνεται το περιβάλλον εργασίας χρήστη, που σημαίνει ότι το σύγχρονο μοντέλο απόκρισης αιτήματος για χρήση εφαρμογών και υπηρεσιών εξαφανίζεται σταδιακά. Τα smartphone εξακολουθούν να είναι «χαμηλά IQ», επειδή πρέπει να τα παραλάβετε, να ξεκινήσετε μια εφαρμογή, να ζητήσετε κάτι να γίνει και τελικά να λάβετε απάντηση. Σε μια νέα γενιά έξυπνων εφαρμογών, η εφαρμογή θα ξεκινήσει αλληλεπιδράσεις μέσω ειδοποιήσεων push. Ας κάνουμε αυτό ένα βήμα πιο πέρα, όπου μια εφαρμογή, ένα bot ή ένας εικονικός προσωπικός βοηθός που χρησιμοποιεί τεχνητή νοημοσύνη θα ξέρει τι να κάνει πότε, γιατί, πού και πώς. Και κάντε το. Δύο παραδείγματα:

  • Η εφαρμογή εγκρίσεων δαπανών παρακολουθεί το μοτίβο έγκρισης αναφορών δαπανών, αρχίζει να εγκρίνει αυτόματα το 99 τοις εκατό των αναφορών δαπανών και σας ενημερώνει μόνο για τη σπάνια αναφορά που απαιτεί την προσοχή σας.
  • Η εφαρμογή Analytics κατανοεί τα υποκείμενα δεδομένα, ερωτήσεις που έχουν υποβληθεί μέχρι τώρα από τον χρήστη της επιχείρησης, ερωτήσεις που έχουν υποβληθεί από το ίδιο σύνολο δεδομένων από άλλους χρήστες της εταιρείας και κάθε μέρα παρέχει μια νέα εικόνα που ίσως δεν είχε σκεφτεί ο αναλυτής. Καθώς οι οργανισμοί συλλέγουν περισσότερα δεδομένα, το AI μπορεί να μας βοηθήσει να μάθουμε ποιες ερωτήσεις πρέπει να κάνουμε για τα δεδομένα.

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

4. Η μηχανική εκμάθηση απαιτεί πρακτικές, ειδικές για τον τομέα χρήσεις

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

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

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

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

5. Το DevOps κινείται προς το NoOps

Όλοι συμφωνούμε ότι οι devops είναι εξαιρετικά σημαντικοί για να βοηθήσουν τους προγραμματιστές να δημιουργήσουν γρήγορα νέες εφαρμογές και δυνατότητες, διατηρώντας παράλληλα υψηλά επίπεδα ποιότητας και απόδοσης. Το πρόβλημα με τους devops είναι ότι οι προγραμματιστές πρέπει να ξοδέψουν το 60 τοις εκατό του χρόνου τους στην ops πλευρά της εξίσωσης, μειώνοντας έτσι τον χρόνο που αφιερώνεται στην ανάπτυξη. Οι προγραμματιστές πρέπει να ενσωματώσουν διάφορα εργαλεία συνεχούς ολοκλήρωσης και συνεχούς παράδοσης (CICD), να διατηρήσουν αυτές τις ενσωματώσεις και να ενημερώσουν συνεχώς την αλυσίδα εργαλείων CI / CD καθώς κυκλοφορούν νέες τεχνολογίες. Όλοι κάνουν CI, αλλά όχι πάρα πολλοί άνθρωποι κάνουν CD. Οι προγραμματιστές θα επιμείνουν στις υπηρεσίες cloud για να βοηθήσουν το εκκρεμές να επιστρέψει στην πλευρά dev το 2018. Αυτό θα απαιτήσει περισσότερους αυτοματισμούς για το πραγματικό CICD.

Το Docker σάς προσφέρει συσκευασία, φορητότητα και δυνατότητα να κάνετε ευέλικτη ανάπτυξη. Χρειάζεστε CD για να είστε μέρος αυτού του κύκλου ζωής του Docker. Για παράδειγμα, εάν χρησιμοποιείτε κοντέινερ, μόλις δεσμεύσετε μια αλλαγή κώδικα σε Git, το προεπιλεγμένο τεχνούργημα θα πρέπει να είναι μια εικόνα Docker με τη νέα έκδοση του κώδικα. Επιπλέον, η εικόνα θα πρέπει αυτόματα να προωθηθεί σε ένα μητρώο Docker και ένα κοντέινερ να αναπτυχθεί από την εικόνα σε περιβάλλον δοκιμής dev. Μετά τη δοκιμή QA και την ανάπτυξη στην παραγωγή, η ενορχήστρωση, η ασφάλεια και η κλιμάκωση των εμπορευματοκιβωτίων θα πρέπει να φροντίζονται για εσάς. Οι ηγέτες των επιχειρήσεων ασκούν πιέσεις στους προγραμματιστές να προσφέρουν νέες καινοτομίες πιο γρήγορα. το μοντέλο devops πρέπει να ελευθερώσει περισσότερο χρόνο ώστε οι προγραμματιστές να το κάνουν αυτό δυνατό.

6. Ο ανοιχτός κώδικας ως υπηρεσία επιταχύνει την κατανάλωση καινοτομίας ανοιχτού κώδικα

Το μοντέλο ανοιχτού κώδικα παραμένει μια από τις καλύτερες μηχανές καινοτομίας, αλλά η εφαρμογή και η διατήρηση αυτής της καινοτομίας είναι συχνά πολύ περίπλοκη. Για παράδειγμα:

  • Θέλετε μια πλατφόρμα διαχείρισης δεδομένων / εκδηλώσεων ροής, οπότε στρίβετε στην Kafka. Καθώς αρχίζετε να αξιοποιείτε το Kafka σε κλίμακα, πρέπει να ρυθμίσετε επιπλέον κόμβους Kafka και να φορτώσετε μεγάλες συστάδες Kafka, να ενημερώσετε αυτά τα συμπλέγματα καθώς βγαίνουν νέες εκδόσεις του Kafka και, στη συνέχεια, ενσωματώστε αυτήν την υπηρεσία με το υπόλοιπο περιβάλλον σας.
  • Θέλετε Kubernetes για ενορχήστρωση κοντέινερ. Αντί να φροντίζει για αναβαθμίσεις, αντίγραφα ασφαλείας, επαναφορές και ενημερώσεις κώδικα για το σύμπλεγμα Kubernetes, η πλατφόρμα θα πρέπει να κάνει όλα αυτά για εσάς. Το Kubernetes αποστέλλεται κάθε έξι εβδομάδες, επομένως η πλατφόρμα θα πρέπει να έχει κυλιόμενες εφαρμογές και αυτοθεραπεία.
  • Θέλετε βάσεις δεδομένων Cassandra για NoSQL. Θα πρέπει να θέλετε να διαχειρίζεται η πλατφόρμα η δημιουργία αντιγράφων ασφαλείας (σταδιακή ή πλήρης σε ένα χρονοδιάγραμμα), διόρθωση, ομαδοποίηση, κλιμάκωση και υψηλή διαθεσιμότητα του συμπλέγματος Cassandra.

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

7. Οι αρχιτεκτονικές χωρίς διακομιστές μεγαλώνουν στην παραγωγή

Η έκκληση των αρχιτεκτονικών χωρίς διακομιστή είναι σαφής: Όταν υπάρχει ζήτηση για εκτέλεση του κωδικού μου με βάση ένα συγκεκριμένο συμβάν, η υποδομή δημιουργείται, ο κώδικας αναπτύσσεται και εκτελείται και χρεώνομαι μόνο για την ώρα που εκτελείται ο κώδικάς μου. Ας υποθέσουμε ότι θέλετε να δημιουργήσετε μια λειτουργία κράτησης ταξιδιού για να κάνετε κράτηση / ακύρωση πτήσεων, ξενοδοχείων και ενοικιάσεων αυτοκινήτων. Κάθε μία από αυτές τις ενέργειες μπορεί να δημιουργηθεί ως συνάρτηση χωρίς διακομιστή γραμμένη σε διαφορετικές γλώσσες όπως Java, Ruby, JavaScript και Python. Δεν υπάρχει διακομιστής εφαρμογών με τον κωδικό μου σε αυτόν. Μάλλον οι λειτουργίες εγκαθίστανται και εκτελούνται σε υποδομές μόνο όταν χρειάζεται.

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

8. Η μόνη ερώτηση για τα εμπορευματοκιβώτια γίνεται "Γιατί όχι;"

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

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

Επιπλέον, τα μοντέλα αδειοδότησης λογισμικού για εμπορικό λογισμικό υψηλής αξίας, θα πρέπει να συμπεριλάβουν την εξάπλωση της υιοθέτησης κοντέινερ. Τα μοντέλα τιμολόγησης για λογισμικό θα πρέπει να υποστηρίζουν την αδειοδότηση "ενεργοποίηση" και "απενεργοποίηση", καθώς τα κοντέινερ δημιουργούνται, κλιμακώνονται και μειώνονται.

9. Το λογισμικό και τα συστήματα γίνονται αυτοθεραπευτικά, αυτορυθμιζόμενα και αυτοδιαχειριζόμενα

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

$config[zx-auto] not found$config[zx-overlay] not found