הסכנות של תלות בקוד של צד שלישי

אם תירשם לשירות מקישור בדף זה, ריבס ובניו מוגבלת עשויה לזכות בעמלה. ראה שלנו אמירה אתית.

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

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

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

אבל אפילו עם היתרונות הגדולים האלה של מערכת שיתוף הקוד של צד שלישי, יש הרבה סיבות מדוע אולי תרצה להימנע משימוש בשברי קוד אלה, כפי שאנו עומדים לראות...

1. סיכוני אבטחה פוטנציאליים

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

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

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

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

2. אתה לא הבעלים של זה

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

כמובן שכמעט אף אחד לא טורח לקרוא את הרשימות המייגעות האלה של תנאים והגבלות, אבל זו עלולה להיות טעות.

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

הבעיה השנייה היא שאם אין לך קוד, אין לך שליטה עליו, וייתכן שלא בהכרח תבין את כל מה שהוא עושה או איך הוא עובד.

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

3. לעתים קרובות אתה מקבל הרבה יותר ממה שאתה צריך

קוד צד שלישי בדרך כלל עובד כדי לעשות את העבודה שאתה רוצה, אבל לפעמים הוא מכיל כל מיני פיצ'רים נוספים שאתה לא צריך וכנראה לעולם לא תשתמש בהם.

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

4. רמות מרובות של תלות בצד שלישי יכולות להוביל לצרות אמיתיות

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

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

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

אף אחד לא היה חושד בכוח הכלול ב-11 שורות הקוד הכלולות בפונקציה הקטנה והשפירה הנקראת Left-Pad, אבל כשקישור השרשרת המסוים הזה נכשל, זה הביא לעצירה של אתרי אינטרנט גדולים רבים.

החלק העיקרי בו היה שלרוב האנשים שהשתמשו ב-Left-Pad לא היה מושג שהם משתמשים בו, מה זה עושה או איך לתקן את הבעיה. כפי שצוין בסעיף 2, אם אין ברשותך אותו, ייתכן שלא בהכרח הבנת אותו.

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

אין שום צורך שאפליקציה כלשהי תהיה תלויה בפונקציית צד שלישי זו, ובכל זאת אלפי אתרים השתמשו בתוכנה שכללה אותה, כולל נטפליקס, פייסבוק ו-Reddit. זה היה רק ​​מזל טוב שבמקרה הזה זו הייתה פונקציה מאוד פשוטה ששברה את השרשרת, ולא איזו פונקציה ממש מסובכת שיש לה שרשרת תלות משלה.

השורה התחתונה היא שאם אתה יכול לבנות את זה בעצמך, כנראה שאתה צריך!

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

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

אם אחד מהגורמים האלה נכון:

  • הפונקציה שאתה רוצה היא פשוטה
  • לך (או לצוות שלך) יש את היכולת ליצור את הפונקציה
  • יש מספיק זמן ליצור את הפונקציה
  • היישום שלך זקוק לאבטחה טובה
  • יש לך חששות לגבי בעיות משפטיות אפשריות הקשורות ברישוי צד שלישי
  • חשוב שהיישום שלך לעולם לא ייכשל

אז אתה צריך לבנות את זה בעצמך,

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

בוגדן רנצ'ה

Bogdan הוא חבר מייסד של Inspired Mag, לאחר שצבר כמעט 6 שנות ניסיון במהלך תקופה זו. בזמנו הפנוי הוא אוהב ללמוד מוזיקה קלאסית ולחקור אמנות פלסטית. הוא די אובססיבי גם לתיקונים. יש לו כבר 5.

תגובות תגובות 0

השאירו תגובה

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

דֵרוּג *

אתר זה משתמש Akismet כדי להפחית דואר זבל. למד כיצד הנתונים שלך מעובדים.