דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. שילוב ספריות חיצוניות בפרויקט - יש עניין להפחית ככל הניתן? ועד כמה?

שילוב ספריות חיצוניות בפרויקט - יש עניין להפחית ככל הניתן? ועד כמה?

מתוזמן נעוץ נעול הועבר תכנות
7 פוסטים 5 כותבים 189 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • צדיק תמיםצ מנותק
    צדיק תמיםצ מנותק
    צדיק תמים
    כתב ב נערך לאחרונה על ידי צדיק תמים
    #1

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

    Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
    טיפים

    yossizY תגובה 1 תגובה אחרונה
    0
    • yossizY מנותק
      yossizY מנותק
      yossiz
      השיב לצדיק תמים ב נערך לאחרונה על ידי yossiz
      #2

      @צדיק-תמים

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

      במקרה של lodash שווה מאוד להשתמש בו, זה גורם לקוד יותר קריא. זו ספרייה יסודית ואיכותית.

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

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

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

      תגובה 1 תגובה אחרונה
      13
      • א מנותק
        א מנותק
        ארכיטקט
        כתב ב נערך לאחרונה על ידי ארכיטקט
        #3

        אני מחמיר יותר מ @yossiz בנושא הזה, כנראה שזה עניין של חווייה אישית, ספריות "נשברות" ומאבדות תאימות לעיתים קרובות, בדרך כלל אני בודק את המוניטין של הספרייה ומיהו המפתח, ומה עוד הוא עשה בחיים, ומשתדל שלא להתקין ספריות שאינן נתמכות על ידי ארגונים גדולים.
        כמו"כ ההצדקה לצרוך ספריה צריכה להיות משהו מסדר גודל עצום כגון עיבוד PDF או דחיסה ל ZIP (אני כמובן מקצין, אבל כוונתי לסבר את האוזן), אם יש לך בעיה פיצקית שבשבילה אתה מתקין ספרייה שלמה, זה חטא גדול מאוד. עדיף להעתיק את הקוד הספציפי שפותר את הבעיה שלך ולעטוף אותו בפונקציה שתוכל לשפר אותה לאחר מכן.
        הנה דוגמא נפוצה לספרייה עם 66 מיליון הורדות שבועיות
        https://www.npmjs.com/package/isarray
        ואם תהית מהו הקוד הנורא שהיא מסתירה אז הנה הוא:
        https://github.com/juliangruber/isarray/blob/master/index.js
        ויש עוד דוגמאות כהנה וכהנה
        לגבי מדדים "טכניים" של איכות ספרייה, יש אתר שמנסה לעשות זאת באמצעות אלגוריתם כלשהו:
        https://npms.io/

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

        גמליאלג תגובה 1 תגובה אחרונה
        5
        • גמליאלג מנותק
          גמליאלג מנותק
          גמליאל
          השיב לארכיטקט ב נערך לאחרונה על ידי
          #4

          @ארכיטקט אמר בשילוב ספריות חיצוניות בפרויקט - יש עניין להפחית ככל הניתן? ועד כמה?:

          הנה דוגמא נפוצה לספרייה עם 66 מיליון הורדות שבועיות
          https://www.npmjs.com/package/isarray
          ואם תהית מהו הקוד הנורא שהיא מסתירה אז הנה הוא:
          https://github.com/juliangruber/isarray/blob/master/index.js

          מעניין.
          כנראה שספריה אחרת שתלויה בספריה הזו מאוד פופולרית

          dovidD א 3 תגובות תגובה אחרונה
          0
          • dovidD מחובר
            dovidD מחובר
            dovid ניהול
            השיב לגמליאל ב נערך לאחרונה על ידי dovid
            #5

            אני גם שונא את המצב בו אני צריך לבחור ספריה.
            לכן אני מאוד נמשך לספריות גדולות מסוג all-in-one כמו מקרוסופט באופן כללי, או אנגולר.
            אני מפתח יומיומי בJS וכמעט (ואפילו בכלל לא) לא משתמש בספריות, מלבד אנגולר (1 בינתיים).

            לגבי הספריות בNPM, אני חושב ששפת JS זכתה במפתחים הכי מפגרים שיש.
            https://dev.to/jyotishman/10-useless-npm-package-with-millions-of-downloads-de9
            https://dev.to/codesphere/javascript-flaws-5-stupid-npm-packages-5fi

            https://www.zdnet.com/article/another-one-line-npm-package-breaks-the-javascript-ecosystem/
            https://developpaper.com/a-single-line-code-npm-library-even-let-millions-of-javascript-projects-crash/

            מאמר מדעי בנושא של מיקרו חבילות
            https://arxiv.org/pdf/1709.04638.pdf

            אפרופו לאוהבי נוסטלגיה, מאמר בעברית שנראה מ1813, אבל הוא מ2013
            https://softwarearchiblog.com/2013/06/musthave-js-libs-part1.html

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            תגובה 1 תגובה אחרונה
            2
            • dovidD מחובר
              dovidD מחובר
              dovid ניהול
              השיב לגמליאל ב נערך לאחרונה על ידי
              #6

              @גמליאל אמר בשילוב ספריות חיצוניות בפרויקט - יש עניין להפחית ככל הניתן? ועד כמה?:

              @ארכיטקט אמר בשילוב ספריות חיצוניות בפרויקט - יש עניין להפחית ככל הניתן? ועד כמה?:

              הנה דוגמא נפוצה לספרייה עם 66 מיליון הורדות שבועיות
              https://www.npmjs.com/package/isarray
              ואם תהית מהו הקוד הנורא שהיא מסתירה אז הנה הוא:
              https://github.com/juliangruber/isarray/blob/master/index.js

              מעניין.
              כנראה שספריה אחרת שתלויה בספריה הזו מאוד פופולרית

              זה משפט המפתח למה לא להשתמש בחבילות.
              הרי לכאורה לא תירצת כלום בלזרוק את האשמה על מפתחי החבילה השניה, אלא מה? במקום שהשאלה תהיה על מליונים (מה יש כזה הרבה מפגרים?) היא על 1-30 איש.
              הנה סיבה מס' 1 למה למעט בחבילות.

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              5
              • א מנותק
                א מנותק
                ארכיטקט
                השיב לגמליאל ב נערך לאחרונה על ידי
                #7

                @גמליאל אמר בשילוב ספריות חיצוניות בפרויקט - יש עניין להפחית ככל הניתן? ועד כמה?:

                כנראה שספריה אחרת שתלויה בספריה הזו מאוד פופולרית

                זאת הצרה הצרורה הכי גדולה כשתלויות יוצאות משליטה אתה כבר לא יודע כלום על כלום.

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

                תגובה 1 תגובה אחרונה
                3

                בא תתחבר לדף היומי!
                • התחברות

                • אין לך חשבון עדיין? הרשמה

                • התחברו או הירשמו כדי לחפש.
                • פוסט ראשון
                  פוסט אחרון
                0
                • דף הבית
                • קטגוריות
                • פוסטים אחרונים
                • משתמשים
                • חיפוש
                • חוקי הפורום