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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
י

יוסף בן שמעון

@יוסף בן שמעון
אודות
פוסטים
977
נושאים
103
שיתופים
0
קבוצות
0
עוקבים
5
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • אתר להורדה מיוטיוב דרך API (שעובד בנטפרי)
    י יוסף בן שמעון

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

    רשתות

  • עזרה עם בניית תוסף כרום
    י יוסף בן שמעון

    @צדיק-תמים עם האובייקט

    chrome.extension.sendMessage
    

    ומאזינים להודעות עם אובייקט

    chrome.extension.onMessage.addListener
    

    חפש בגוגל chrome extension send message between popup and page

    תכנות

  • עזרה עם בניית תוסף כרום
    י יוסף בן שמעון

    @צדיק-תמים לא הבנתי את שאלתך

    תכנות

  • עזרה עם בניית תוסף כרום
    י יוסף בן שמעון

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

    תכנות

  • Sequelize מיון לפי נתוני טבלה אחרת
    י יוסף בן שמעון

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

        SELECT *, ( SELECT COUNT(*) FROM Log WHERE Log.TicketId = Tickets.ID ) AS openCount
        FROM Tickets 
        ORDER BY openCount;
    

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

    TicketsModel.findAll({
            include: [
                {
                    model: Log,
                    as: 'Log',
                    attributes: [
                        [Sequelize.fn('COUNT'), 'openCount']
                    ]
                }
            ],
            order: ['openCount']
        })
    

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

    תכנות

  • עזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS)
    י יוסף בן שמעון

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

    תכנות

  • עזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS)
    י יוסף בן שמעון

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

    תכנות

  • עזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS)
    י יוסף בן שמעון

    @צדיק-תמים לא הבנתי לאיזה טריקים התכוונת
    (בשורה 15 כנראה התכוונת ל

    if (nextPageToken)
    
    תכנות

  • עזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS)
    י יוסף בן שמעון

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

      const infoVideo_Object = await fetch(GET_INFO_FOR_VIDEO_ID).then(res => res.json())
    
    תכנות

  • עזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS)
    י יוסף בן שמעון

    @צדיק-תמים אמר בעזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS):

    אשמח להרחבה

    תראה לדוגמא את הקוד הזה

    const url = new URL('https://www.googleapis.com/youtube/v3/search');
    url.searchParams.append('channelId', channelId);
    if (nextPageToken) url.searchParams.append('pageToken', nextPageToken);
    console.log(url.toString());
    

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

    @צדיק-תמים אמר בעזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS):

    ובכלל הייתי שמח להעמיק קצת יותר בכל העניין של כתיבה נכונה של קוד

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

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

    תכנות

  • עזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS)
    י יוסף בן שמעון

    @צדיק-תמים אמר בעזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS):

    @יוסף-בן-שמעון אמר בעזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS):

    הוא משמש לכמה דברים בזה אחר זה

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

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

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

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

    תכנות

  • עזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS)
    י יוסף בן שמעון

    @צדיק-תמים אמר בעזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS):

    אני אישית סובר שקוד טוב הוא קוד חסכני (כמובן שמשיג את אותה תוצאה, ובצורה שברורה לי).

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

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

    תכנות

  • עזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS)
    י יוסף בן שמעון

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

    תכנות

  • עזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS)
    י יוסף בן שמעון

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

    תכנות

  • עזרה - ביטול פיצול שורות מציק בPrettier
    י יוסף בן שמעון

    @צדיק-תמים אמר בעזרה - ביטול פיצול שורות מציק בPrettier:

    Prettier

    חפש בהגדרות של התוסף את ההגדרה proseWrap, ותנסה להגדיר את זה never

    תכנות

  • הגדרת שפת קוד ברירת מחדל ב-VSC
    י יוסף בן שמעון

    האמת שהלינק הזה יותר יעיל לפעמים הבאות
    https://www.google.com/search?q=vscode+set+defaul+lang&oq=vscode+set+defaul+lang&aqs=chrome..69i57.8631j0j7&sourceid=chrome&ie=UTF-8

    תכנות

  • הגדרת שפת קוד ברירת מחדל ב-VSC
    י יוסף בן שמעון

    https://stackoverflow.com/questions/35904221/change-vscode-default-language-for-new-files

    תכנות

  • JWT
    י יוסף בן שמעון

    @חוקר אמר בJWT:

    הבנתי נכון?

    באמת כדאי להחליף טוקן מידי פעם

    תכנות

  • קבלת קוד סטטוס HTTP של כתובת אינטרנט בדרך החסכונית ביותר (בJS)
    י יוסף בן שמעון

    @צדיק-תמים
    https://internet-israel.com/פיתוח-אינטרנט/בניית-אתרי-אינטרנט-למפתחים/fetch-ככה-עושים-ajax-היום/

    תכנות

  • נגן וידאו צף להטמעת iframe של יוטיוב (בזמן שהסרטון מופעל)
    י יוסף בן שמעון

    @צדיק-תמים נסה ליצור דוגמא מינימלית כאן
    https://jsfiddle.net/

    תכנות
  • 1 / 1
  • התחברות

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

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