12-12-2015, 22:17
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,775
|
|
אני מודע לכך. אבל גם זה לא עוזר כשאתה מכניס כמות גדולה מאוד של זבל... העניין הוא שיש דברים שרצים גם אם אתה לא צריך אותם - פשוט כי הספריה עושה הרבה יותר ממה שאתה רוצה, ואם האתחול של אובייקט עושה כל מה שהוא צריך לעשות בהנחה שאתה תבצע כל שימוש אפשרי בספריה (מה שסביר מאוד שהוא יעשה, כי לכתוב קוד חכם יותר זה קשה יותר ליצרני הספריה, וזה בסדר!) - כלומר יוצר (למשל) 100 מבני נתונים שמתוכם אתה צריך 1, ואתה מאתחל מאות או אלפי אובייקטים כאלה, ואתה עושה את זה עם כל ספריה... אז בסוף...
shared nothing זה מאוד רלוונטי. זה ההבדל בין לטעון לזיכרון ולבצע מה שאתה באמת צריך, לבין "אפליקציית ענק שטעונה בזיכרון, ובפועל, משתמשים אולי ב 1% מהמידע ומהפונקציונליות שיש אליהם רפרנס אליה איפשהו". כמו לטעון jQuery כשהדבר היחיד שיש לך בדף זו קריאת AJAX אחת (סתם לדוגמה - מצטער שאני קופץ פתאום לצד לקוח, אבל זה קלאסי...), או יותר גרוע, משהו פשוט יותר כמו שינוי של אלמנט DOM בודד כשלוחצים על כפתור, כאשר היה אפשר לעשות את זה ישירות, או, יותר גרוע, על ידי שימוש ב CSS בלבד...
טענה מעניינת לגבי הארכיטקטורה, אבל אתרי אינטרנט שבנויים ב Java פשוט לא פועלים כך, גם אם צד ה UI כן. זו בדיוק הבעייה...
אני לא אומר ש TTM אינו חשוב (אבל הוא לא קדוש. הקטע שהכי מטריף אותי בעולם הוא כשיש משהו חמור במערכת, ויודעים שיקח עוד יומיים לעשות אותו טוב, אבל משחררים אותו עם הזבל בפנים רק כדי לעמוד באיזה תאריך שרירותי שמישהו קבע בהתבסס על בערך שום דבר - ואחרי זה לקבל ריקושטים בכמויות, ולהוציא גירסה חדשה שתטפל בנזקים של הגירסה שקודם הוצאת, ולעבוד על זה חודש! שכמובן דוחה את ה TTM של הגירסה הבאה בחודש; כמובן שיתחשבו בזה בתאריך השרירותי הבא שיקבעו, שהרי, מתחילים לעבוד על הגירסה הבאה מאוחר יותר, וזו בדיוק הנקודה שלי...) - אני כן אומר שהגישה הזו לא משפרת את ה TTM לדעתי, וייתכן שלאורך זמן אפילו פוגעת בו, לעתים קשות. כל מה שכתבת על דברים מסביב זה חרטא, ולא קשור לדברים שאני מדבר עליהם בכלל. כאילו שיש מי שכותב ב Java ולא משתמש בקופי-פייסט מ SE ב: log4j, JDBC, HttpClient וכו' (אגב, נכון שכיף לעשות SSL עם HttpClient? הרבה יותר מהמימוש של cURL...) בשביל לבצע את הכל. אני לא מדבר על ה"בסיס" של שפת התכנות שצריך להיות חלק מהשפה והוא לא רק בשם איזה עקרון תאורטי. אני מדבר איתך על ספריות ספריות. כאלה שאתה מנסה לפתור משהו ב "business domain" שלך, כדבריך, אז אתה מחפש בגוגל, מוצא משהו שעושה משהו דומה, ואז מנסה לכפות עליו לממש את ה business domain שלך. וכולם עושים את זה... לפחות ב Java.
חשוב יותר מביצועים? אני לא בטוח שאתה חי באותו עולם שאני חי בו - אותו עולם שבו יש מחקרים שאומרים שעל כל שנייה בהמתנה לטעינה של דף אינטרנט, אתה מאבד אחוז דו ספרתי של גולשים שעמלת מאוד קשה להביא אותם לאתרך... ואז אתה רואה אתר שלוקח לו 10 שניות עד שהוא מראה תוכן שניתן לצרוך... ועוד לא דיברתי על Mobile.
ספריות מוכנות מהסוג שהזכרתי לעיל, כן. ספריות שהן בעצם מוצרים שנועדו לעשות משהו אחר, והפונקציונליות שאתה רוצה היא רק subset שלהן (לעתים אפילו מתודות "שירות"!) ומצאת בגוגל - ממש לא.
|