ושוב תא העינויים JavaScript גובה ממני בוקר שלם בתוך צינוק
-
@דוד ל.ט.
אני מסכים שהמקרה לא מובן מאליו.
זה לא בדיוק לא מובן מאליו, אצלי זה כבר נעשה מעשים דבכל יום, בלי ניהול קאשינג ואופטימיזציות מהסוג הזה, הדטה בייס שלי יקרוס, וגם השרת.
האפליקציה ככל שהיא גודלת זלילת המשאבים שלה עולה אקספוננציאלית (זו אפליקציית ERP כבדה מאוד באנגולר 2), ואם לא ארסן את החגיגה של קריאות לשרת, ולדטה בייס, ולשרת הקבצים של אמזון, ולשרת האימות, חוויית המתשמש תהיה גרועה מאוד עד בלתי אפשרית. כל תוכנה מהסוג הזה חייבת ניהול קש, ועדיף לעשות את זה בכמוסות כמו שהראיתי בקוד C#.
כל גישה למשאב שאינו יושב בזיכרון (ועדיף של הקליינט) או הדורש יציאה מחוץ לעולמה של האפליקציה כגון מסד נתונים או קובץ, צריכה להיות חד פעמית ומינימלית. כשהזיכרון של הלקוח יתפוצץ נדבר, בינתיים זאת הגישה הכי טובה שיש בנמצא. שים לב שצורת העבודה הזאת מאפשרת לטפל באופטימיזציה גם בשלב מאוחר מאוד בפיתוח, אם עושים כמיסה טובה מלכתחילה. אז כשהתחלתי לכתוב אנגולר בצורה מאסיבית, ציפיתי לקצת היגיון מהסוג הזה.פורסם במקור בפורום CODE613 ב16/05/2017 00:02 (+03:00)
-
בא נאמר ככה, נגיד שיש פתרון, לא תכעס שאי אפשר להציג חיווי למשתמש בעת ה"תקיעה" הסינכרונית?
ואלא ע"כ תכתוב קלאבק... אני חושב שזה מה שמאט התכוון.
בקיצור בתכנון JS, הכל צריך להיות קאלבקים על גבי קאלבקים.הפתרון הדבילי שלי להשתמש בalert...
var obj = { ready: false, res: null, get resource() { if (!ready ) { //callback http.get(function(data) { ready = true; res = data; }); while(!ready) alert('אנא המתן שניה או שתיים לטעינה שלמה : )'); } return this.res; } }
פורסם במקור בפורום CODE613 ב16/05/2017 01:07 (+03:00)
-
דוד אני לא התכוונתי לזה יש בבקשות http פרמטר שעושה את זה סינכרוני וכתבתי את זה למעלה.
בכל מקרה אכן תיכנון של זה אמור להיות שהכל בנוי לאינסנכורני. מי שלא מסוגל להיכנס לראש הזה אין לו מה לחפש בתיכנות באינטרנט.
ואין לזה שום קשר לקאש.
אפשר לבנות פונקציה אינסכונית שתחזיר גם קאש.
לדוגמא.var cache = false; function getData(arg,callback){ if(cache) return callback(null,cache); http.get('/url',function(err,data){ if(err) return callback(err); callback(err,(cache = data)); }); }
פורסם במקור בפורום CODE613 ב16/05/2017 07:01 (+03:00)
-
דוד אני לא התכוונתי לזה יש בבקשות http פרמטר שעושה את זה סינכרוני וכתבתי את זה למעלה.
לא חשבתי אחרת. וזה באמת פתרון מצויין כל עוד שזה עובד ואני חיפשתי אחר בקטע התיאורטי.
בקשר לתכנון האסינכרוני אתה לא כל כך מבין את הסיטואציה, זה הכל.
ברור שגם בקוד שלך יש משאבים סינכרוניים כמו משתנים, ובמקרה של שינוי בתכנית אז אין מנוס מאשר לשנות בכל מקום בו יש שימוש במשאב או השהיית האפליקציה בטעינתה עד לטעינת המשאב.פורסם במקור בפורום CODE613 ב16/05/2017 08:04 (+03:00)
-
תקרא את ההודעה האחרונה של ארכיטקט.
אני מכיר את ארכיטקט. הוא מתעקש לא להכיל את הקטע של האיסנכוניות בראש שלו. ולדעתי זה משפיע על תיכנון התוכנה שלו.
אני כמעט בטוח הוא מיחל ומצפה שכרום יתמוך ב C# וגמרנו.
הוא קיווה שאולי הטייפסקריפט יביא איזה שהוא בשורה. שהנה סוף סוף מגיע C# לכרום. ועוד בחסות גוגל.
אבל הוא גילה שזה עוד JS בשינוי אדרת.פורסם במקור בפורום CODE613 ב16/05/2017 08:51 (+03:00)
-
mat אני מדבר על התחביר הלא קריא של JS (קלבק זה דבר לא קריא בעליל, וכשאני מדבר על קריאות, זה לקרוא את הקוד כמו שאתה קורא סיפור!!! שגם מי שלא מבין בתיכנות יכול להבין את הסיפור), ולא על הנושא של אסינכרוניות כדרך לנצל משאבים.
תחשוב אם הריסורס הזה תלוי בעוד 3 ריסורסים בשרשור, לכמה קלבקים אתה מגיע??? ב C# או כל שפה נורמלית, זה מוסתר ממך, הדרך שאותה פונקציה עושה כדי להחזיר לך ערך סופי פרימטיבי.מה שיש כן באנגולר זה ה ngIf שמאזין לרגע שבו האובייקט מקבל ערך (ואז אפשר באיתחול של הקלאס בטייפסקריפט לשים את הקוד המלוכלך שנותן סוף סוף ערכים אמיתיים וסופיים לאובייקטים שבתוך הקלאס) וכן הפייפ async גם יכול לעזור לפעמים, אחרת גם אנגולר עצמו לא היה כל כך דקלרטיבי וקריא כפי שהוא היום.
פורסם במקור בפורום CODE613 ב16/05/2017 08:59 (+03:00)
-
הוא קיווה שאולי הטייפסקריפט יביא איזה שהוא בשורה. שהנה סוף סוף מגיע C# לכרום. ועוד בחסות גוגל.
אבל הוא גילה שזה עוד JS בשינוי אדרת.בקשר לטייפסקריפט זה אכן לא נותן את C#, אבל הtype check בהחלט מביא את JS קדימה מאוד.
למשל אם עכשיו ארכיטקט מחליט לשנות בכל מקום שהוא השתמש בריסורס לקאלבק, בJS טהור זה גם עבודה קשה וגם יש מצב סביר שהוא ישכח כמה מקומות.
ואילו בtypescript (שכתוב טוב) זה קל בהרבה ואין מצב שהוא יאבד אפי' מקרה אחד.פורסם במקור בפורום CODE613 ב16/05/2017 11:04 (+03:00)
-
-
המשך:
כמה רחמי שמים צריך אדם ישר ותם דרך, כדי שהוד מעלתה של הגברת ג'אווה סקריפט תואיל ברוב טובה וחסדה להודיע לו האם ערך של תאריך חוקי הוכנס לתוך משתנהכמה חשוב לחנך ילד כשהוא ילד, כששפה היא עדיין צעירה אפשר להכניס בה שיפורים משמעותיים, גם במחיר של "לשבור" קוד, אולם כשהיא כבר בוגרת וכל האינטרנט בנוי עליה, היא כמו מכשפה זקנה שיושבת בספה באמצע הבית מי בכלל מעלה על דעתו לשנות אצלה תפיסות מהיסוד.
פורסם במקור בפורום CODE613 ב12/07/2017 21:59 (+03:00)
-
אולי זה יעזור לך עם התאריכים
http://momentjs.com/
Parse, validate, manipulate, and display dates and times in JavaScript.זה תומך אפילו בעברית!
פורסם במקור בפורום CODE613 ב16/07/2017 11:20 (+03:00)
-
אולי זה יעזור לך עם התאריכים
http://momentjs.com/ענתיקה מכיר את זה, אני דיברתי על ג'אווה סקריפט טהור אין לי אפשרות כרגע להשתמש במומנט. תאריך גם בדטה בייסים וגם בשפות עיליות, הוא מובחן כטיפוס מיוחד. רק בג'אווה סקריפט לא. וכל הספריות עושות שמיניות כדי להתמודד איתו.
פורסם במקור בפורום CODE613 ב17/07/2017 19:05 (+03:00)
-
@רחמים
אולי זה יעזור לך עם התאריכיםענתיקה מכיר את זה, אני דיברתי על ג'אווה סקריפט טהור אין לי אפשרות כרגע להשתמש במומנט. תאריך גם בדטה בייסים וגם בשפות עיליות, הוא מובחן כטיפוס מיוחד. רק בג'אווה סקריפט לא. וכל הספריות עושות שמיניות כדי להתמודד איתו.
לא כזה נורא, גם ב C ו C++ תאריך הוא לא חלק מהשפה אבל הספריות משלימות את זה.
פורסם במקור בפורום CODE613 ב18/07/2017 00:17 (+03:00)
-