פיננסים פתוחים: מציאות או הייפ? PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

פיננסים פתוחים: מציאות או הייפ?

בדרך כלל יש כמה חששות בעת יישום טכנולוגיה חדשה, כגון מה יקרה אם נתקע איפשהו ובסופו של דבר מבזבז את הזמן והמאמץ שלנו. ייתכן שנצטרך לחזור לפתרון המקורי. התמודדנו עם בעיות דומות לפני שנה, אבל לאחר מחקר ארוך ומעמיק, מצאנו פתרון בטוח ובטוח יותר-גולנג ומסגרותיו. הדרך שבה זה מתועד מאוד מועילה. עם זאת, היינו די בטוחים שלא נמצא את כל התשובות באינטרנט וזה היה אתגר שקיבלנו בו הרוח של של לילה גיפטי אקיטה פתגם ידוע, "תמיד יש פתרון לכל מצב מאתגר."

הבלוג הזה מדבר בעיקר על מסגרת Golang-Beego והיישומים שלה. נדון כיצד משתמשים בגולאנג בפיתוח אתרים ומדוע רוב המפתחים עוברים מ-Python, Node או שפות אחרות ל-Go.

בואו נבין את מסגרת גולנג כדי לדעת איך זה עובד.

מה זה גולנג?

Golang, שהופיעה לראשונה ב-2009, (הידועה בכינויה Go) צברה במהירות פופולריות בקרב מפתחים, והפכה לשפה מועדפת על יותר מ-90% מהמשתמשים. שפות האב הקדומות שלה הן שפות תכנות C ו-C++, מה שדי בולט על ידי בחינת התחביר ותכונות הקומפילציה שלה. 

משמש בעיקר לפיתוח אחורי, ל-Go יש 4 מקרי שימוש נוספים- 

  1. שירותי ענן ורשת
  2. ממשקי שורת פקודה (CLI) 
  3. פיתוח אתרים
  4. הנדסת תפעול פיתוח ואמינות אתרים. 

להלן כמה מהתכונות העיקריות של Golang שהופכות את המסגרת הזו לבחירה המועדפת על מפתחים:

1. פשטות 

תחביר Go הוא פשוט כפי שמוצג כאן וגם שלו מַהְדֵר יכול להריח בעיות ולהעלות שגיאות במהלך תהליך הבנייה - כלומר לפני הפעלת התוכנית.

הגמישות, השימושיות והקונספט המגניב להפליא שמאחורי Go (איך הוא מטפל במקביליות מקומית, איסוף אשפה ובטיחות+מהירות) הם חלק מהתכונות שדי שימושיות עבור מפתחים.

2. מהירות

מקבילות מובנית (Goroutines and Channels) היא אחת הסיבות העיקריות לביצועים הגבוהים שלה. מנתח את זה ערימת הצפיפות יאפשר לנו להעריך את מהירותו.

"ייתכן שיישמתי את זה בצורה לא נכונה כי התוצאות אינן הגיוניות. יש לי תוכנית Go שסופרת עד 1000000000; זה נגמר תוך פחות משנייה. מצד שני, יש לי סקריפט של Python; זה מסתיים תוך כמה דקות. למה גרסת ה-Go כל כך הרבה יותר מהירה? האם שניהם סופרים עד 1000000000 או שאני מפספס משהו?" 

אם אתה עדיין לא בטוח לגבי המהירות, הנה השוואה בין Go, צומת JS, Java ו-Python שיעזרו להשיג בהירות רבה יותר לגבי השימוש בו:

מפרט המכשיר שלי:

שם התקן- LAPTOP-Q8U9LM8P

מעבד- Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz 2.10GHz

RAM מותקן- 16.0 GB (15.6 GB שמיש)

סוג המערכת- מערכת הפעלה 64 סיביות, מעבד מבוסס x64

הדפסת גוף N:

מקור זמן לספור 

סע: 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 שניות 

פיתון

פלט:

זמן פקטוריאלי לחישוב פקטוריאלי

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 שהכי טובה ליצירת ממשקי API גם מאיצה ומקלה על הפיתוח.

מדוע אנו משתמשים ב-Beego Framework?

בין אם זה Go או Beego, שניהם פנטסטיים לפיתוח REST APIs בעלי ביצועים גבוהים. 

Beego היא מסגרת "כוללת סוללה", עם כלים מובנים (bee tool), ORM וספריות בהשוואה למסגרות אחרות כמו Gin-gonic שאינה מסוג "כלול סוללה" ומכילה את רוב הספריות והתכונות החיוניות שאינן טובות עבור תכונות בצד השרת.

Beego משתמשת במסגרת טיפוסית של Model-View-Controller (MVC) שהתבררה כטובה לאנשים (כמונו) שעובדים על Python-Django בעבר, וביגו די דומה.

מדוע אנו משתמשים ב-Beego Framework?

סיכום: 

כך התחלנו את האפליקציה שלנו עם Golang ו-Beego. עבדנו על PDF, טיפול בתמונה עם ImageMagick, AWS-SNS, AWS-SES SMTP, שיחות IVR, פקס, חתימות דיגיטליות, הפקת דוחות עם ORM ועוד רבים. ולא מצאנו שום חסימה בזמן העבודה עם תכונות של צד שלישי כמו Twilio או AWS. זה ממש פשוט לכתוב קוד על Golang כפי שהוזכר על ידי היוצרים שלהם. ישנם אתגרים מסוימים בשימוש במסגרת זו, אך ישנם גם פתרונות. מאוד נהנינו מהעבודה על המסגרת הזו. מזל טוב ליישומי הגולאנג הקרובים שלך.

על המחבר

Piyush Raj סיים את לימודיו ב-IIT Kharagpur במחלקה לכימיה. הוא התחיל את הקריירה שלו עם ML ו-AI, וכיום עובד ב-Mantra Labs כמפתח תוכנה. בזמנו הפנוי הוא אוהב לחקור נתיבים חדשים בעולם האמיתי או על הנייר באמצעות טיולים וציור.

בול זמן:

עוד מ מעבדות מנטרה