|
||||
|
||||
בוודאי שיצא לי לעבוד עם Rose, ולמעשה זו דוגמא מצויינת: אני מאמין שמדרך הטבע, אלה שעומדים מאחורי התוכנה יודעים די והותר על עיצוב תוכנה (ואם זכרוני אינו מטעני, GoF בכבודתם ובעצמם קשורים ל-Rational), ולמרות זאת, כל מי שאי פעם שיחק איתה 10 דקות למד בדרך הקשה עד כמה המימוש שלה גרוע. ואתה עוד מספר שיש מישהו שבאמת משתמש בפיצ'ר הקיקיוני של תרגום דיאגרמות לקוד? אני מוכן להמר על מיטב כספי שהמוצר הסופי שאותה חברה חסרת אחריות שחררה גרוע מעבר לכל דמיון (חיזוק להשערה: הם כותבים ב-VB). אני לא טוען שעיצוב תוכנה זה תהליך מיותר, חס ושלום. אני טוען שעיצוב הוא חלק בלתי נפרד מהקידוד, ושתהליך עיצוב *טוב* איזמורפי לגמרי לקידוד, ולכן ההפרדה בינהם מיותרת. קידוד זה לא רק "שפיכת קוד". בעוד שעיצוב - במובן בו אתה מתייחס אליו - מדבר במונחים של תהליכים, וישויות ויחסים בינהן - קידוד מכיר במגבלות ויתרונות ספציפיים של סביבת הפיתוח, ומתייחס גם אליהם. לעיתים (לעיתים? תמיד!) יש לכך השפעה גם על הדרך בה המודלים השונים בתוכנית יתקשרו ביניהן, ועל ישויות נוספות (או מיותרות) שכדאי או לא כדאי לממש. ברור ש*חישובית* כל שפות התכנות שקולות. אבל מנקודת מבט של מתדולוגיה או יעילות - הן בפירוש לא. Interchangeable? אני לא עבדתי מעולם על תוכנה שהיה אפשר לתכנתה ב-VB באותה מידה שהיה אפשר ב-++C, ועל תוכנה שהיה אפשר לתכנת ב-++C באותה מידה שהיה אפשר לתכנת ב-C. וזה עוד בלי להכנס לשיקולי אסתטיקה וכבוד עצמי... הקידוד והעיצוב צריכים להעשות על ידי כל הצוות (ובפרט על ידי המתכנת והרש"צ), ובאותו זמן. ההפרדה היא מלאכותית. מניסיוני תמיד כשניסו קודם לעצב הכל, ואז לקודד הכל (כבר שנים שלא ראיתי את זה קורה) - אף פעם העיצוב והקוד המוגמר לא היו קשורים במיוחד (תמיד באשמת העיצוב, אף פעם לא באשמת המעצב). |
|
||||
|
||||
כמו שאמרתי, לעבוד עם הקוד שרוז שופך זה באמת קיצוני. וכן, החברה ההיא נכשלה (אם כי יותר מסיבות אחרות). השקילות של שפות התכנות היא בכלל לא במובן החישובי. כל דבר ניתן היום לתכנת בכל שפה. נניח שיש לך ספריות מקומפלות רק ל C++, אבל את הGUI וכל מיני דברים אחרים אין לך כוונה לכתוב ב C++, אז עוטפים ומסתדרים. קונסטריינטס מהבחינה הזו הם לא כזה בעיה. ברוב המקרים בחירת השפה היא תוצר של כוח האדם ולא להיפך, עד כמה שזה מאכזב לשמוע. והזלזול שלך בVB לא במקום, זו סביבת פיתוח עם ה User base הכי גדול (וא כמעט הכי גדול) מכולן. כל דבר ניתן לכתוב עם VB, ובמיוחד עכשיו עם .net, בדיוק בגלל שהframework שלהם עובד עם ה CLR לכל שפה. והרשימה של השפות בפעם האחרונה שבדקתי הייתה ארוכה ומרשימה. אין שום ספק שלכל שפה יש את הפורטה שלה אבל, כפי שאמרתי, כל ההחלטות המעניינות מתקבלות ברמה גבוהה יותר. ולא טענתי שתוכניתנים לא צריכים להשתתף בעיצוב, להיפך. אלא שזה שלב נפרד. כמו כן, אני מסכים שלא ניתן לתכנן _הכל_ מראש, אבל ברגע שעולות סוגיות בעייתיות פותרים אותן ברמת החלטה עיצובית ולא ברמת התוכניתן. אי אפשר שלכל אחד בצוות יהיה קוד משלו לתקשורת, לטיפול בשגיאות וכו'. "או, רגע הקוד הזה פה מעיף exception, טוב אז אני אטפל בהן ככה וככה..." זה לא רציני. סוגיות שכאלה הן קריטיות לעיצוב וההחלטות לא שייכות לתוכניתן ככזה, אלא למעצב. אלו דברים שצריכים להקבע ברמת מדיניות ולהיכתב פעם אחת. לכן, אלא אם כן אתה כותב איזה ספריית קוד ואז הדגש על השפה עצמה הוא המירבי, רוב התכנות שנעשה הוא רק מימוש. בכלל רוב התכנות האפליקטיבי הוא יותר חיווט של דברים קיימים מאשר פיתוח מקורי. 99% מכל פרויקט זה לחבר דברים קיימים ביחד ורק השארית היא איזה אלגוריתם או פרוטוקול מקורי. זה בדיוק הסיבה שהדגש בתכנות צריך להיות על מתודולוגיה ולא על מומחיות מקסימלית ביעילות וכו'. יעילות תמיד אפשר לשפר, כאמור. |
|
||||
|
||||
בטכניון ישנם שני קורסים העובדים לפי עקרון התכנון בנפרד מן התכנות. אלה פרוייקטים שנתיים: בסמסטר הראשון עובדים על תכנון ועיצוב, בסמסטר השני על כתיבה, הידור, וניפוי שגיאות. אין לי יותר פרטים לספק לך. |
חזרה לעמוד הראשי | המאמר המלא |
מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים | |
RSS מאמרים | כתבו למערכת | אודות האתר | טרם התעדכנת | ארכיון | חיפוש | עזרה | תנאי שימוש | © כל הזכויות שמורות |