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

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

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

[בקשה] תובנות על Angularjs

מתוזמן נעוץ נעול הועבר תכנות
25 פוסטים 7 כותבים 713 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    כתב ב נערך לאחרונה על ידי
    #3

    אני, בJS ובצד לקוח בפרט, אני לא מתעניין יתר על המידה ב"מתחת למכסה המנוע".
    כיון שאני מאוד מחבב את angularjs אני יפרוס את משנתי בעניינו:

    עבודה על דפי אינטרנט עם דינמיות (קרי JS)
    בנויים משפת ריצה (שזה JS פרוצדורלי או פונקציונלי), ושפת תצוגה של חזות המסמך (שזה קוד הצהרתי שכולל HTML+CSS).
    התקשורת בין הDOM שזה המסמך כשהוא מוצג בדפדפן, לבין הקוד, נעשית במגוון דרכים איומות שהחסרונות שלהם הם:
    א. חיבור חזק מידי בין קוד הריצה לבין שפת התצוגה. שינוי בעיצוב גורר שינויים בקוד וליהפך.
    ב. פיזור: כל התנהגות יכולה להיווצר בכמה מקומות, יכול להיות הרשמה לאיורעים במקומות רבים, ואם יש כמה קבצי קוד צריך פשוט לעבור שורה שורה לפעמים כדי להבין למה כשעושים X קורה Y.
    ג. הסנכרון בין המידע לבין התצוגה מייגעים מאוד, כל שינוי במידע צריך "לרדוף" אחרי התצוגה ולהיפך.

    כמו כן, השימוש בJS בצד לקוח קשה מאוד. מדובר בשפה ישנה פרימיטיבית בהמון נושאים, וכל דבר קטן מחייב הרבה קוד. ישנם המון ספריות שמקלות את החיים, אבל אין הרבה שהם alll in one.

    עד כאן הרקע.
    בשביל לפתור את בעיית הקשר בין שפת הקוד לשפת התצוגה נוצרו ספריות שהתפקיד שלהם היה binding מן אוטומציה קוסמית שמחברת את התצוגה לקוד, כשבתצוגה מצהירים על שמות וכדומה, ובקוד מחברים את השמות לאובייקטים באופן שהתצוגה "עוקבת" כביכול אחרי המידע.
    בשביל לפתור את הבעיה של JS יש ספריות רבות כמו jQuery שנחשבו all in one אבל בהיבט מצומצם של ניהול הDOM יותר מאשר בהיבט של ניהול כל האפליקציה - קרי SPA, שבו הקוד אחראי לא רק לצבוע אלמנט, אלא ממש לעשות Buisness Logic.
    למשל, משימות טריוואליות של מילוי התצוגה במידע נראות גם בjQuery ממש כמו איזה hack. שום דבר לא מובן מאליו כי נקודת המוצא הייתה שמידע אמור להגיע עם הדף ולא בajax.

    angularjs הגיעה בשביל זה והיא עושה זאת מאוד מאוד טוב.

    כעת לשאלות:

    1. מכיר, אני חושב שנכון לקרוא לangualr.js ספריית jQuery משוכללת בהרבה, שבמקום לפתור בעיות כמו jQuery היא מחקה אותם לגמרי. אני לא יודע עם הסלוגן הזה עומד בהגדרה של "תובנה שעזרה לי להבין", לא בטוח שאני מבין אני משתמש...
    2. איפה להתחיל... הכי טוב זה להשתמש ורק מידי פעם לחפש מה עשו קודם באותה סיטואציה, אני חושב שזה בגדר תמונה אחת יותר מאלף מילים.
    yossizY תגובה 1 תגובה אחרונה
    12
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      השיב לyossiz ב נערך לאחרונה על ידי dovid
      #4

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

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

        לגבי Dependency Injection
        המנגנון די פשוט
        מה שמסובך יותר זה להבין למה ומתי להשתמש בו

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

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

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

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

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

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

          @dovid
          תודה רבה על התשובות המושקעות!
          האמת היא שנתת סקירה כללית... ואם קראת את השאלה זה לא מה שביקשתי. אבל בכל זאת עזרת לחדד עבורי ש:-
          א) זה לא הוגן לבקש מאחרים ליכנס לראש שלי ולהבין איפה בדיוק המפתח שיפתח בשבילי את ההבנה,
          וב) הכי טוב לעבוד גם בלי להבין לעומק וההבנה בוא יבוא.

          כדי לעזור לך אני אעליב אותך

          להעליב -- הצלחת, לעזור -- הזמן יגלה... 🙂

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

          dovidD תגובה 1 תגובה אחרונה
          1
          • yossizY מנותק
            yossizY מנותק
            yossiz
            השיב לupsilon01 ב נערך לאחרונה על ידי
            #7

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

            תגובה 1 תגובה אחרונה
            0
            • י מנותק
              י מנותק
              יוסף בן שמעון
              השיב לyossiz ב נערך לאחרונה על ידי
              #8

              @yossiz אמר ב[בקשה] תובנות על Angularjs:

              בנוסף לבקשה הכללית הנ"ל,
              אני מסתבך לגמרי עם Dependency Injection.
              למה????
              מה זה נותן לי כל הסיבוך הזה?
              מה רע במודולים רגילים כמו שאבות אבותינו עשו בנוד?

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

              תגובה 1 תגובה אחרונה
              1
              • yossizY מנותק
                yossizY מנותק
                yossiz
                השיב לdovid ב נערך לאחרונה על ידי
                #9

                @dovid אמר ב[בקשה] תובנות על Angularjs:

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

                אפשר דוגמה קטנטנה להבין למה אתה מתכוון?

                א תגובה 1 תגובה אחרונה
                0
                • א מנותק
                  א מנותק
                  אהרן
                  השיב לyossiz ב נערך לאחרונה על ידי
                  #10

                  @yossiz
                  נראה לי פשוט

                  $('#youElement').text( msg );
                  

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

                  msg = "Good night ";
                  
                  תגובה 1 תגובה אחרונה
                  2
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    השיב לyossiz ב נערך לאחרונה על ידי
                    #11

                    אההמ @yossiz, זה קצת חריף לומר לי "אם קראת את השאלה". כתבת ברור שתי שאלות וייחדתי על שניהם את הדיבור בסוף הפוסט שלי (אכן אפשר לומר שזה לא עונה אבל אי אפשר לומר שלא קראתי...).

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

                    yossizY WWWW 2 תגובות תגובה אחרונה
                    1
                    • yossizY מנותק
                      yossizY מנותק
                      yossiz
                      כתב ב נערך לאחרונה על ידי yossiz
                      #12
                      פוסט זה נמחק!
                      dovidD nigunN 2 תגובות תגובה אחרונה
                      4
                      • dovidD מנותק
                        dovidD מנותק
                        dovid ניהול
                        השיב לyossiz ב נערך לאחרונה על ידי
                        #13
                        פוסט זה נמחק!
                        תגובה 1 תגובה אחרונה
                        0
                        • nigunN מנותק
                          nigunN מנותק
                          nigun
                          השיב לyossiz ב נערך לאחרונה על ידי
                          #14

                          @yossiz
                          אני מנסה להבין את ההרגלי למידה שלך ולא כ"כ מצליח
                          אני ינסה להסביר איך אני לומד ואולי זה דומה
                          לי בעיקרון יש בעיה שאני יכול לשבת וללמוד רק נושא שנראה לי מעניין
                          ולרוב כדי שיהפוך למעניין אני צריך בעיה או חסרון שבו אני נתקע ואז אני חייב פתרון
                          ומחפש את המדריך/פורום התורן מנצל את זה בשביל ללמוד קצת מסביב וממשיך הלאה
                          אבל אם אני מוצא קומבינה כל שהיא אני מוותר על הלמידה
                          (אגב מסרטנים אני אף פעם לא מצליח ללמוד כי נגמר לי הפתילה אחרי 45-70 שניות)
                          למשל אני עדיין לא השתמשתי בJOIN בSQL כי כשקראתי פעם מדריך על זה לא הבנתי כל כך את הנקודה
                          ופשוט השתמשתי בכל קומבינה אחרת ולא השתמשתי הJOIN
                          מה שאני בעיקר מפסיד לכאורה זה שיש כלים טובים שיכולים להקל לי על החיים ואני פשוט לא מודע לקיומם
                          אז בשביל זה יש לי את הפורום הזה וכן אני נהנה להקשיב לפודקסטים תוך כדי שאני עושה דברים אחרים (שטיפת כלים ,הליכה לכולל/למשרד) וככה אני שומע על דברים אחרים ולמה הם מועילים
                          אני אשמח לשמוע טיפים מאחרים איך מתגברים על לקויות אלו
                          אבל במקרה שלך הייתי שואל האם אתה סתם בודק מה אפשר לעשות עם כלי פלוני (ואז צריך להמציא בעיה בשביל לפתור אותה )
                          או שאני מנסה לפתור בעיה מסויימת שיש לי ולחתור ישר לשם ומשם להתרחב (לפעמים אני צריך להחזיק את עצמי בשביל לעבור את השלב הזה)

                          מייל: nigun@duck.com

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

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

                            וכן אני נהנה להקשיב לפודקסטים

                            יש לך המלצות?

                            nigunN תגובה 1 תגובה אחרונה
                            1
                            • nigunN מנותק
                              nigunN מנותק
                              nigun
                              השיב לyossiz ב נערך לאחרונה על ידי nigun
                              #16

                              @yossiz
                              רברס עם פלטפורמה פודקסט עברי עם נושאים מגוונים (הם פרסמו מתישהו קובץ ZIP של כמה שנים שיהיה נוח להוריד הכל לנגן)
                              stackoverflow לא יצא לי להאזין אבל אומרים שהוא טוב
                              changelog פודקסט מצויין באנגלית יש להם על GO,JS,AI ועל עוד הרבה נושאים מגוונים (אמנם קצת מפריע לי כשמראיינים נשים )
                              ואגב יש להם רשימת תפוצה שהם שולחים כל יום רשימה של ספריות גיטהאב נבחרות (אין לי מושג לפי מה?אולי הם פשוט מורידים את הtrending של גיטהאב) אני מידי פעם עובר על זה ומוצא שם כל מיני דברים שימושיים

                              מייל: nigun@duck.com

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

                                עושים תוכנה

                                תגובה 1 תגובה אחרונה
                                1
                                • zvizviZ מנותק
                                  zvizviZ מנותק
                                  zvizvi
                                  כתב ב נערך לאחרונה על ידי
                                  #18

                                  https://syntax.fm/

                                  https://zvizvi.xyz

                                  תגובה 1 תגובה אחרונה
                                  3
                                  • nigunN מנותק
                                    nigunN מנותק
                                    nigun
                                    השיב לyossiz ב נערך לאחרונה על ידי
                                    #19

                                    @yossiz
                                    האם הבלוגים של mgechev
                                    מספיק עמוקים בשבילך? (הסתכלתי על זה מלמעלה, יכול להיות שזה ממש שטחי)

                                    מייל: nigun@duck.com

                                    yossizY תגובה 1 תגובה אחרונה
                                    3
                                    • yossizY מנותק
                                      yossizY מנותק
                                      yossiz
                                      השיב לnigun ב נערך לאחרונה על ידי yossiz
                                      #20

                                      @nigun תודה רבה! יש שם חומר מעשיר, וזה לא שטחי בכלל (לטעמי), הכותב מתאר את עצמו כ-'Engineer in the Angular team at Google'.
                                      הנה רשימת הפוסטים: https://blog.mgechev.com/post. (רובם לא על אנגולרJS).

                                      nigunN תגובה 1 תגובה אחרונה
                                      2
                                      • nigunN מנותק
                                        nigunN מנותק
                                        nigun
                                        השיב לyossiz ב נערך לאחרונה על ידי nigun
                                        #21

                                        @yossiz
                                        הנה עוד בלוג שלו שבו הוא מנתח דרכי למידה של טכנולוגיות חדשות
                                        ועפ"ז כתב מדריך נוסף לאנגולר

                                        מייל: nigun@duck.com

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

                                          @nigun אמר ב[בקשה] תובנות על Angularjs:

                                          @yossiz
                                          הנה עוד בלוג שלו שבו הוא מנתח דרכי למידה של טכנולוגיות חדשות
                                          ועפ"ז כתב מדריך נוסף לאנגולר

                                          הלינק נהדר (זה לא עוד בלוג אלא פוסט באותו הבלוג. בלוג = אתר, עמודים בבלוג = פוסטים)
                                          והוא בונה בו צעד אחר צעד את אנגולר 1 מאפס.

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

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

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

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