Open Finance: Reality ή Hype; PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Open Finance: Reality ή Hype;

Συνήθως υπάρχουν κάποιες ανησυχίες κατά την εφαρμογή μιας νέας τεχνολογίας, όπως τι θα συνέβαινε αν κολλήσουμε κάπου και καταλήξουμε να χάσουμε τον χρόνο και την προσπάθειά μας. Είναι πιθανό να πρέπει να επιστρέψουμε στην αρχική λύση. Αντιμετωπίσαμε παρόμοια προβλήματα πριν από ένα χρόνο, αλλά μετά από μακρά και σε βάθος έρευνα, βρήκαμε μια λύση που ήταν πιο ασφαλής και ασφαλής-Το Golang και τα πλαίσια του. Ο τρόπος με τον οποίο τεκμηριώνεται είναι πραγματικά χρήσιμος. Ωστόσο, ήμασταν αρκετά σίγουροι ότι δεν θα βρίσκαμε όλες τις απαντήσεις στο διαδίκτυο, κάτι που ήταν μια πρόκληση που αποδεχόμασταν το πνεύμα του Lailah Gifty Akita's γνωστή παροιμία, «ΥΠΑΡΧΕΙ ΠΑΝΤΑ ΜΙΑ ΛΥΣΗ ΣΕ ΚΑΘΕ ΠΡΟΚΛΗΤΙΚΗ ΚΑΤΑΣΤΑΣΗ.»

Αυτό το ιστολόγιο μιλά κυρίως για το πλαίσιο Golang-Beego και τις εφαρμογές του. Θα συζητήσουμε πώς χρησιμοποιείται το Golang στην Ανάπτυξη Ιστού και γιατί οι περισσότεροι προγραμματιστές μετακινούνται από Python, Node ή άλλες γλώσσες στο Go.

Ας κατανοήσουμε το πλαίσιο Golang για να μάθουμε πώς λειτουργεί.

Τι είναι το Golang;

Εμφανίστηκε για πρώτη φορά το 2009, η Golang (γνωστή ως Go) γρήγορα κέρδισε δημοτικότητα μεταξύ των προγραμματιστών, και έγινε προτιμώμενη γλώσσα για περισσότερο από το 90% των χρηστών. Οι προγονικές του γλώσσες είναι οι γλώσσες προγραμματισμού C και C++, κάτι που είναι αρκετά εμφανές εξετάζοντας τη σύνταξη και τις δυνατότητες μεταγλώττισης. 

Χρησιμοποιείται κυρίως για ανάπτυξη backend, το Go έχει 4 άλλες περιπτώσεις χρήσης- 

  1. Υπηρεσίες Cloud & Network
  2. Διεπαφές γραμμής εντολών (CLI) 
  3. Web Development
  4. Λειτουργίες Ανάπτυξης & Μηχανική Αξιοπιστίας Τοποθεσιών. 

Ακολουθούν μερικά από τα κύρια χαρακτηριστικά του Golang που κάνουν αυτό το πλαίσιο την προτιμώμενη επιλογή για προγραμματιστές:

1. Απλότητα 

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

Η ευελιξία, η χρηστικότητα και η απίστευτα δροσερή ιδέα πίσω από το Go (πώς χειρίζεται τον εγγενή συγχρονισμό, τη συλλογή σκουπιδιών και την ασφάλεια+ταχύτητα) είναι μερικές από τις λειτουργίες που είναι αρκετά χρήσιμες για τους προγραμματιστές.

2. Ταχύτητα

Ο ενσωματωμένος συγχρονισμός ( Goroutines και Channels ) είναι ένας από τους κύριους λόγους για την υψηλή του απόδοση. Αναλύοντας αυτό υπερχείλιση στοίβας θα μας επιτρέψει να υπολογίσουμε την ταχύτητά του.

«Μπορεί να το εφάρμοσα λάθος γιατί τα αποτελέσματα δεν έχουν νόημα. Έχω ένα πρόγραμμα Go που μετράει μέχρι το 1000000000. τελειώνει σε λιγότερο από ένα δευτερόλεπτο. Από την άλλη πλευρά, έχω ένα σενάριο Python. τελειώνει σε λίγα λεπτά. Γιατί η έκδοση Go είναι τόσο πιο γρήγορη; Μετρούν και οι δύο μέχρι το 1000000000 ή μου λείπει κάτι;» 

Εάν εξακολουθείτε να μην είστε σίγουροι για την ταχύτητα, εδώ είναι μια σύγκριση μεταξύ του Go, Κόμβος JS, Java και Python που θα σας βοηθήσουν να αποκτήσετε περισσότερη σαφήνεια σχετικά με τη χρήση του:

Προδιαγραφές συσκευής μου:

Ονομα της συσκευής- LAPTOP-Q8U9LM8P

Επεξεργαστής- CPU Intel(R) Core(TM) i5-10210U @ 1.60GHz 2.10 GHz

Εγκατεστημένη RAM- 16.0 GB (δυνατότητα χρήσης 15.6 GB)

Τύπος συστήματος- Λειτουργικό σύστημα 64-bit, επεξεργαστής που βασίζεται σε x64

Εκτύπωση N-body:

Πηγή Χρόνος για Μέτρηση 

Μετάβαση: 6.34 δευτερόλεπτα

Python3: 545.25 δευτερόλεπτα

GO

Παραγωγή:

Παραγοντικό   Χρόνος υπολογισμού παραγοντικού

10000 0.008 δευτερόλεπτα

50000 0.506 δευτερόλεπτα

100000 3.154 δευτερόλεπτα

500000 82.394 δευτερόλεπτα

1000000 284.445 δευτερόλεπτα

NodeJS (Javascript)

Παραγωγή:

Παραγοντικός χρόνος Υπολογισμός παραγοντικού

10000 0.113 δευτερόλεπτα

50000 1.974 δευτερόλεπτα

100000 22.730 δευτερόλεπτα

500000 477.534 δευτερόλεπτα 

1000000 1175.795 δευτερόλεπτα 

Python

Παραγωγή:

Παραγοντικός χρόνος Υπολογισμός παραγοντικού

10000 0.046 δευτερόλεπτα

50000 1.187 δευτερόλεπτα

100000 6.051 δευτερόλεπτα

500000 388.607 δευτερόλεπτα 

1000000 813.725 δευτερόλεπτα 

JAVA

Παραγωγή:

Παραγοντικός χρόνος Υπολογισμός παραγοντικού

10000 0.064 δευτερόλεπτα

50000 1.607 δευτερόλεπτα

100000 5.363 δευτερόλεπτα

500000 141.076 δευτερόλεπτα

1000000 585.868 δευτερόλεπτα

3. Ασφάλεια:

Συλλέκτης σκουπιδιών:

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

Ο συλλέκτης σκουπιδιών σήμανσης και σάρωσης Golang έχει δύο φάσεις: Mark και Sweep. Πρώτα, θα επισημάνει όλες τις μεταβλητές που δεν χρησιμοποιούνται και τις χρησιμοποιούμενες και στη συνέχεια θα σαρώσει τις αχρησιμοποίητες.

Τα στατιστικά στοιχεία και η παραπάνω περιγραφή υποδηλώνουν γιατί πρέπει να συνεργαστεί κανείς με το Go. Το πλαίσιο Golang που είναι καλύτερο για τη δημιουργία API επιταχύνει και διευκολύνει επίσης την ανάπτυξη.

Γιατί χρησιμοποιούμε το Beego Framework;

Είτε πρόκειται για Go είτε για Beego, και τα δύο είναι φανταστικά για την ανάπτυξη REST API υψηλής απόδοσης. 

Το Beego είναι ένα πλαίσιο "με μπαταρία", με ενσωματωμένα εργαλεία (bee tool ), ORM και βιβλιοθήκες σε σύγκριση με άλλα πλαίσια όπως το Gin-gonic που δεν είναι τύπος "με μπαταρία" και περιέχει τις περισσότερες βασικές βιβλιοθήκες και λειτουργίες που δεν είναι καλές για χαρακτηριστικά διακομιστή.

Το Beego χρησιμοποιεί ένα τυπικό πλαίσιο Model-View-Controller (MVC) το οποίο αποδείχθηκε καλό για άτομα (όπως εμείς) που εργάζονταν στο Python-Django στο παρελθόν και το Beego είναι αρκετά παρόμοιο.

Γιατί χρησιμοποιούμε το Beego Framework;

Συμπέρασμα: 

Έτσι ξεκινήσαμε την εφαρμογή μας με το Golang και το Beego. Δουλέψαμε σε PDF, διαχείριση εικόνων με ImageMagick, AWS-SNS, AWS-SES SMTP, κλήσεις IVR, φαξ, ψηφιακές υπογραφές, δημιουργία αναφορών με ORM και πολλά άλλα. Και δεν βρήκαμε κανένα μπλοκάρισμα κατά την εργασία με λειτουργίες τρίτων όπως το Twilio ή το AWS. Είναι πολύ απλό να γράψετε κώδικα στο Golang όπως αναφέρουν οι δημιουργοί τους. Υπάρχουν ορισμένες προκλήσεις στη χρήση αυτού του πλαισίου, αλλά υπάρχουν και λύσεις. Μας άρεσε πολύ να δουλεύουμε σε αυτό το πλαίσιο. ΚΑΛΗ ΤΥΧΗ για τις επερχόμενες εφαρμογές Golang.

Σχετικά με το Συγγραφέας

Ο Piyush Raj αποφοίτησε από το IIT Kharagpur στο Chemical Dept. Ξεκίνησε την καριέρα του με ML και AI, και τώρα εργάζεται στα Mantra Labs ως προγραμματιστής λογισμικού. Στον ελεύθερο χρόνο του, του αρέσει να εξερευνά νέα μονοπάτια στον πραγματικό κόσμο ή στα χαρτιά μέσα από τα ταξίδια και τη ζωγραφική.

Σφραγίδα ώρας:

Περισσότερα από Εργαστήρια Mantra