בקרב אנשים שמכירים לפחות את סדרת Head First, ישנם רבים הרואים בספרות כזו קריאה שטחית למדי למתחילים. מה אני אגיד, לא סביר שתצליחו ללמוד לעומק נושא מורכב בתחום התכנות ב-48 שעות. עם זאת, קשה לטעון ש-Design Patterns הוא ספר שיהווה מדריך שימושי לתכנות למתחילים. ספר זה הוא אחד מעשרת הפופולריים ביותר ב-Stackoverflow, ומסיבה טובה. קלות ההצגה, הנושא הבסיסי והדוגמאות האיכותיות הופכים את הספר לפופולרי כיום ולדעתי גם לשנים רבות קדימה.
תכונות של הספר
דפוסי עיצוב ראשונים מספרים לנו מהם דפוסים, כיצד להשתמש בהם ואיך לחשוב עליהם. דפוס הוא תבנית, פתרון אוניברסלי למערכת ספציפית של בעיות. דפוסי עיצוב הם, בתורם, פתרונות אדריכליים נפוץ שניתן להשתמש בהם כדי לכתוב יישומים ידידותיים וגמישים למשתמש. מפתחים בכל העולם פותרים את אותן בעיות באותן גישות. כפי שאומר ההערה, אם אינך רוצה להמציא את הגלגל מחדש, השתמש בתבניות עיצוב מוכנות (דפוסים), שהספר הזה מוקדש לעבודה איתן . בנפרד כדאי לשים לב להצגת החומר: הספרים בסדרת "ראש בראש" מפורסמים בפשטותם ונקראים בישיבה אחת. "דפוסי עיצוב" אינו יוצא מן הכלל. הוא גם שומר על עקרונות המפתח הבאים:- רְאוּת
- סגנון שיח של מצגת
- מספר רב של איורים
- השתתפות פעילה של הקוראים
- פנייה לרגשות
- מושך את תשומת ליבו של הקורא
נושא מרכזי ורעיון מפתח
"בטוח מישהו כבר פתר את הבעיה שלך" - כך מתחיל הפרק הראשון של הספר, המעביר את כל המשמעות של דפוסי עיצוב בתכנות. המטרה העיקרית היא להעביר נכון את המשמעות שלהם לקורא, כי קודם כל, על המתכנת לדעת למה מיועדות התבניות ובאיזה שלב יש ליישם אותן. בעיקרון, תחילה עליך למיין את התבניות לחתיכות קטנות בראש שלך, ורק לאחר מכן ליישם אותן בתוכניות. אם למתחיל בתכנות יש הבנה טובה של תבניות, השימוש בהם יכול לסבך מאוד את הקוד (אבל צריך לפשט אותו!). לשאלה "מדוע צריך להשתמש בדפוסי עיצוב?" הספר נותן תשובה ברורה: "הכרת מושגים כמו הפשטה, תורשה ופולימורפיזם לא הופכת אותך למעצב OO טוב. הדפוסים מכילים ניסיון מוכח בעיצוב OO.""סיכום"
הספר מחולק ל-14 פרקים בתוספת מבוא. בהתחלה, מחברי הספר מנסים להכין את הקורא, לכוון את מוחו לתפוס נכון מידע על עיצוב דפוסים. הפרק הראשון מסביר את העיקרון הבסיסי של דפוסים ואיזה מטרות הם משרתים. אחד הדפוסים הנפוצים ביותר - אסטרטגיה - נבדק בקלות ובאופן לא פולשני. פרקים שניים עד אחת עשרה מוקדשים לניתוח מפורט של דפוסים בודדים :- מַשׁקִיף. מחלק אירועים בין אובייקטים שמתעניינים בהתרחשותם.
- מְעַצֵב. מבט נוסף על תורשה ב-Java ומתן לשיעורי Java יכולות חדשות מבלי לשנות את הקוד.
- בית חרושת. התבנית שומרת את הקוד מתלות לא רצויות.
- יחיד. ידוע גם בשם Singleton, זה מאפשר לך ליצור אובייקט מחלקה יחיד עבור התוכנית כולה.
- קְבוּצָה. התבנית מאפשרת לך להקיף בנוחות קריאת שיטה, ולהרחיב את היכולות שלה.
- מתאם וחזית. פתרון הבעיה של חוסר תאימות לממשק, כמו גם אריזת אובייקטים כדי לפשט את הממשק שלהם.
- שיטת תבנית. אנקפסולציה של בלוקים אלגוריתמיים, המאפשרת לתת-מחלקות לשייך לאלגוריתם העיבוד הרצוי בכל עת.
- איטרטור ומקשר. התבנית מספקת כלי נוח לאיטרציה בין אוספים, ללא קשר לסוגם. בנוסף, הפרק מספק מידע על אוספי-על.
- מדינה. חפצים ניחנים ביכולת לשלוט בהתנהגותם באמצעות שינויים במצבם הפנימי.
- סְגָן. תבנית נוחה מאוד לשליטה בגישה לאובייקט.
יתרונות וחסרונות
לי, כמו רבים מאלה שלומדים ב-JavaRush, יש יחס קר כלפי הרצאות משעממות, דחיסת חומר ואלימות אחרת נגד נפשו של סטודנט צמא לידע. את האנרגיה המושקעת בשינון טקסטים בלתי מובנים, לדעתי, כדאי לבזבז על מציאת מקורות למידה חלופיים. ספר זה שווה את הזמן והמאמץ שלך. סגנון הצגה מצוין, ניהול מוכשר של תשומת הלב של הקורא וחזרה על נקודות מפתח מהווים את היתרון העיקרי של ספר זה - קלות ההטמעה של החומר . מספר רב של איורים הוא יתרון נוסף. לדעתי, לכל תמונה בספר יש את מקומה: כולם מאפשרים לחזק את דברי המחברים ולהבין יותר לעומק את מהות החומר. כפי שכתבתי למעלה, ספר זה אינו ספר עיון: מחבריו אינם מתכוונים לפרט את כל התבניות. המשימה העיקרית שלו היא לספק הבנה ולדבר על הדפוסים הבסיסיים כך שאחרים, מורכבים יותר, יהיו קלים יותר לתפיסה. והיא מתמודדת עם זה ב-100%. בין החסרונות הוא שדפוסי עיצוב ראשונים ברוסית אינם קלים לקריאה כמו באנגלית. כמובן שכל מפתח צריך לדבר אנגלית, אבל מתכנתים מתחילים לא תמיד מפתחים את המיומנות הזו עד כדי כך שהם יכולים לקרוא ספרים במקור. עם זאת, זה יכול להיחשב מינוס מאולץ, שכן החומר מוצג בצורה מדויקת למדי והמשמעות נשמרת.ספרים נוספים על דפוסי עיצוב
אני חסיד של האמונה שעדיף ללמוד נושאי יסוד מכמה מקורות ולחפש בהם סגנון הצגה מתאים. כאשר אתה רוצה לצלול לתוך דפוסים ולקרוא תיאוריה נוספת, תאמין לי, יהיה לך משהו להעסיק את הערבים שלך.-
טכניקות עיצוב מונחה עצמים. דפוסי עיצוב (Gamma E., Helm R., Johnson R., Vlissides J.).
זהו פרסום רציני יותר, ספר עיון של תבניות, ספר מכובד מאוד מ"חבורת הארבעה". רבים קוראים לזה התנ"ך של עיצוב OO.
באינטרנט, דעות המפתחים מחולקות ל-3 מחנות:
- יש הטוענים שהספר מיושן וסגנון ההצגה לא מאפשר קריאה
- אחרים ממליצים להשתמש בספר אך ורק כספר עיון על דפוסים, לא יותר
- אחרים טוענים שהספר הוא הגביע הקדוש של דפוסי העיצוב ועליו לקרוא כל מי שרוצה להפוך יום אחד למפתח ג'אווה בכיר
חָשׁוּב:הדוגמאות בספר כתובות ב-C++.
-
Java EE. עיצוב דפוסים למקצוענים (מורת ינר, אלכס פידום).
ספר זה מוקדש לעיצוב של יישומים ארגוניים: הוא מכסה דוגמאות רבות לבעיות יישומים מהחיים האמיתיים.
-
עיצוב תבניות ב-Java (Grand M.).
הספר מדגים בצורה צבעונית כיצד השימוש בדפוסים חוסך למפתחים זמן, מספק סקירה כללית של שפת UML ומתאר 47 דפוסי עיצוב.
GO TO FULL VERSION