Architecture Decision Record

Active theme: Light

← דוגמאות לרשומות החלטה

רשומת החלטה ארכיטקטונית: שפת התכנות Go

כותרת: אימוץ שפת התכנות Go

מצב: התקבלה

הקשר

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

החלטה

נאמץ את שפת התכנות Go לבניית יישומי ווב מכאן והלאה.

נימוק

  1. פשטות וקריאות: Go ידועה בפשטותה ובתחביר התמציתי שלה. זה מקל על קריאת קוד וכתיבתו, ומפחית את המורכבות של תהליך הפיתוח שלנו.

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

  3. תמיכת קהילה חזקה: ל-Go יש קהילה תוססת של מפתחים שתרמו לצמיחתה במהלך השנים. משמעות הדבר היא שיש שפע של משאבים, ספריות ומסגרות שיעזרו לנו להתחיל ולבנות יישומים חסינים.

  4. גמישות: אפשר להשתמש ב-Go גם לפיתוח צד לקוח וגם לפיתוח צד שרת. משמעות הדבר היא שנוכל לנצל את יתרונותיה בשני התחומים בפרויקטי הפיתוח שלנו.

השלכות

  1. הדרכה: המפתחים שלנו יצטרכו לעבור הדרכה כדי ללמוד את שפת התכנות Go ואת ניואנסיה.

  2. ניסיון: ייתכן שנתמודד עם כמה אתגרים במעבר מ-Java ל-Go. ייתכן שיידרש זמן עד שהמפתחים שלנו ישתלטו על השפה החדשה.

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

  4. נעילה אצל ספק: Go היא שפת תכנות בקוד פתוח, ולא נהיה קשורים לאף ספק או נותן שירות.

סיכום

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

קרדיט: הדף הזה נוצר על ידי ChatGPT, ואז נערך לצורך בהירות ופורמט.