שלום אורח התחבר

הבלוג של ינון פרק

טיפים קצרים וחדשות למתכנתים

הזינו את כתובת המייל וקבלו את הפוסט היומי בכל בוקר אליכם לתיבה:

שאלה שחוזרת אצל מתכנתים שמתחילים לעבוד עם JavaScript היא השאלה לגבי sleep. היינו שמחים לפעמים לכתוב טקסט על המסך, לחכות קצת ואז לכתוב עוד קצת טקסט. בתור שפה אסינכרונית ב JavaScript אי אפשר באמת לעצור את ריצת התוכנית בשביל לחכות. אבל גירסת ES8 של השפה הוסיפה תמיכה ב async/await איתם אפשר לבנות את sleep ואפילו די בקלות.

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

אחת הפונקציות האהובות עליי בפייתון נקראת namedtuple. היא מייצרת מעין מחלקה עם שדות קבועים, מה שנקרא Data Object. כתיבת משהו דומה ב JavaScript יכולה ללמד אותנו דבר או שניים על השפה.

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

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

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

מתכנתי JavaScript כבר אמורים להכיר את אופרטור ה Template Literal, הוא סימן \` המאפשר פענוח משתנים בתוך מחרוזת. מעטים יודעים שאפשר לבנות שפה שלמה על אופרטור זה באמצעות פיצ'ר שנקרא Tagged Template Literals.

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

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

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