JavaRush /בלוג Java /Random-HE /סקירה של הספר "דפוסי עיצוב ראשונים"
Alex
רָמָה

סקירה של הספר "דפוסי עיצוב ראשונים"

פורסם בקבוצה
בקרב אנשים שמכירים לפחות את סדרת Head First, ישנם רבים הרואים בספרות כזו קריאה שטחית למדי למתחילים. מה אני אגיד, לא סביר שתצליחו ללמוד לעומק נושא מורכב בתחום התכנות ב-48 שעות. עם זאת, קשה לטעון ש-Design Patterns הוא ספר שיהווה מדריך שימושי לתכנות למתחילים. ספר זה הוא אחד מעשרת הפופולריים ביותר ב-Stackoverflow, ומסיבה טובה. קלות ההצגה, הנושא הבסיסי והדוגמאות האיכותיות הופכים את הספר לפופולרי כיום ולדעתי גם לשנים רבות קדימה. סקירה של הספר "דפוסי עיצוב ראשונים" - 1

תכונות של הספר

דפוסי עיצוב ראשונים מספרים לנו מהם דפוסים, כיצד להשתמש בהם ואיך לחשוב עליהם. דפוס הוא תבנית, פתרון אוניברסלי למערכת ספציפית של בעיות. דפוסי עיצוב הם, בתורם, פתרונות אדריכליים נפוץ שניתן להשתמש בהם כדי לכתוב יישומים ידידותיים וגמישים למשתמש. מפתחים בכל העולם פותרים את אותן בעיות באותן גישות. כפי שאומר ההערה, אם אינך רוצה להמציא את הגלגל מחדש, השתמש בתבניות עיצוב מוכנות (דפוסים), שהספר הזה מוקדש לעבודה איתן . בנפרד כדאי לשים לב להצגת החומר: הספרים בסדרת "ראש בראש" מפורסמים בפשטותם ונקראים בישיבה אחת. "דפוסי עיצוב" אינו יוצא מן הכלל. הוא גם שומר על עקרונות המפתח הבאים:
  1. רְאוּת
  2. סגנון שיח של מצגת
  3. מספר רב של איורים
  4. השתתפות פעילה של הקוראים
  5. פנייה לרגשות
  6. מושך את תשומת ליבו של הקורא
מחברי הספר משתמשים בכישרון בתיאוריית המטא-קוגניציה כדי להציג את החומר: מבחינתי, 100 העמודים הראשונים חלפו על פניו מבלי שהבחינו בהם. היופי בגישה הזו הוא שהמוח בעצם זוכר מה הוא קורא. השילוב של מספר סגנונות נרטיביים, שאלות מעניינות, יתירות ויצירתיות - כל זה עוזר לקורא לא לאבד עניין בנושא המרכזי. לפני רכישת הספר, היססתי לאחר שקראתי ביקורות מעורבות. עם זאת, לאחר רפרוף מהיר בכמה מקורות אחרים בנושא זה, החלטתי: לצלול לתוך דפוסים, הספר הזה הוא מה שאתה צריך.

נושא מרכזי ורעיון מפתח

"בטוח מישהו כבר פתר את הבעיה שלך" - כך מתחיל הפרק הראשון של הספר, המעביר את כל המשמעות של דפוסי עיצוב בתכנות. המטרה העיקרית היא להעביר נכון את המשמעות שלהם לקורא, כי קודם כל, על המתכנת לדעת למה מיועדות התבניות ובאיזה שלב יש ליישם אותן. בעיקרון, תחילה עליך למיין את התבניות לחתיכות קטנות בראש שלך, ורק לאחר מכן ליישם אותן בתוכניות. אם למתחיל בתכנות יש הבנה טובה של תבניות, השימוש בהם יכול לסבך מאוד את הקוד (אבל צריך לפשט אותו!). לשאלה "מדוע צריך להשתמש בדפוסי עיצוב?" הספר נותן תשובה ברורה: "הכרת מושגים כמו הפשטה, תורשה ופולימורפיזם לא הופכת אותך למעצב OO טוב. הדפוסים מכילים ניסיון מוכח בעיצוב OO."

"סיכום"

הספר מחולק ל-14 פרקים בתוספת מבוא. בהתחלה, מחברי הספר מנסים להכין את הקורא, לכוון את מוחו לתפוס נכון מידע על עיצוב דפוסים. הפרק הראשון מסביר את העיקרון הבסיסי של דפוסים ואיזה מטרות הם משרתים. אחד הדפוסים הנפוצים ביותר - אסטרטגיה - נבדק בקלות ובאופן לא פולשני. פרקים שניים עד אחת עשרה מוקדשים לניתוח מפורט של דפוסים בודדים :
  1. מַשׁקִיף. מחלק אירועים בין אובייקטים שמתעניינים בהתרחשותם.
  2. מְעַצֵב. מבט נוסף על תורשה ב-Java ומתן לשיעורי Java יכולות חדשות מבלי לשנות את הקוד.
  3. בית חרושת. התבנית שומרת את הקוד מתלות לא רצויות.
  4. יחיד. ידוע גם בשם Singleton, זה מאפשר לך ליצור אובייקט מחלקה יחיד עבור התוכנית כולה.
  5. קְבוּצָה. התבנית מאפשרת לך להקיף בנוחות קריאת שיטה, ולהרחיב את היכולות שלה.
  6. מתאם וחזית. פתרון הבעיה של חוסר תאימות לממשק, כמו גם אריזת אובייקטים כדי לפשט את הממשק שלהם.
  7. שיטת תבנית. אנקפסולציה של בלוקים אלגוריתמיים, המאפשרת לתת-מחלקות לשייך לאלגוריתם העיבוד הרצוי בכל עת.
  8. איטרטור ומקשר. התבנית מספקת כלי נוח לאיטרציה בין אוספים, ללא קשר לסוגם. בנוסף, הפרק מספק מידע על אוספי-על.
  9. מדינה. חפצים ניחנים ביכולת לשלוט בהתנהגותם באמצעות שינויים במצבם הפנימי.
  10. סְגָן. תבנית נוחה מאוד לשליטה בגישה לאובייקט.
פרק 12 בוחן תבניות מורכבות, או ליתר דיוק שילובים של כמה מהדפוסים שנדונו, שניתן להשתמש בהם כדי לבנות ארכיטקטורות תוכנה חזקות. פרק 13 מוקדש לשימוש בדפוסים בבעיות אמיתיות, מובאים סיווג הדפוסים, הזנים שלהם והנחיות לשימוש. הספר משמש נספח לפרק 14, המכסה מגוון רחב יותר של תבניות. כל אחד מהם שימושי בדרכו שלו, ולכן לדעת אותם זה יותר מרצוי. כמובן, הם לא פופולריים כמו הדפוסים מפרקים 2-11, אבל זה לא הופך אותם לפחות שימושיים. הספר אינו מתיימר להיות הצגה מדויקת מבחינה אקדמית של תורת הדפוסים. אבל אם ספרי Head First כל כך מוקפדים, למפתחים שאפתנים לא תהיה הזדמנות להבין מה זה מה ולהבהיר לעצמם את היסודות. זוהי דרך פשוטה ונוחה ללמוד מהם דפוסי עיצוב למי שלא מכיר אותם. לדברי המחברים, Design Patterns הוא ספר שמתאים למי שכבר מכיר את Java (או C#), רוצה ללמוד את עקרונות העיצוב מונחה עצמים, ומעדיף שיחה ערה על פני הרצאות משעממות. הספר הזה אינו ספר עיון! אם אתה מפתח מקצועי עם ניסיון ועובד עם לפחות חלק מהדפוסים הללו, סביר להניח שהספר לא יעניין אותך. מרכיב חשוב בספר הוא התרגילים: אסור לדלג עליהם. אם תקראו היטב את הספר ובמקרים קיצוניים תבצעו חיפוש מינימלי באינטרנט, פתרון אותם לא יוסיף לכם כאבי ראש. אבל בהחלט יהיו יתרונות. לכל הפחות, תבין יותר לעומק את התיאוריה המובאת בספר.

יתרונות וחסרונות

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

ספרים נוספים על דפוסי עיצוב

אני חסיד של האמונה שעדיף ללמוד נושאי יסוד מכמה מקורות ולחפש בהם סגנון הצגה מתאים. כאשר אתה רוצה לצלול לתוך דפוסים ולקרוא תיאוריה נוספת, תאמין לי, יהיה לך משהו להעסיק את הערבים שלך.
  1. טכניקות עיצוב מונחה עצמים. דפוסי עיצוב (Gamma E., Helm R., Johnson R., Vlissides J.).

    סקירה של הספר "דפוסי עיצוב" (דפוסי עיצוב ראשונים) - 2

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

    באינטרנט, דעות המפתחים מחולקות ל-3 מחנות:

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

    חָשׁוּב:הדוגמאות בספר כתובות ב-C++.

  2. Java EE. עיצוב דפוסים למקצוענים (מורת ינר, אלכס פידום).

    סקירה של הספר "דפוסי עיצוב" (דפוסי עיצוב ראשונים) - 3

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

  3. עיצוב תבניות ב-Java (Grand M.).

    סקירת הספר "דפוסי עיצוב" (דפוסי עיצוב ראשונים) - 4

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

עיצוב דפוסי ב-JavaRush

בקורס JavaRush, דפוסי עיצוב נלמדים ברמה 7 של קווסט Java Collections. הרצאות 1 ו -2 מוקדשות לדפוסים הנפוצים ביותר, ובהרצאה 4 תוכלו לפתור בעיות בנושא זה. להלן כמה מאמרים מעניינים כדי "לחזק את עצמך":
  1. מאמר כללי בנושא דפוסים עם קטגוריות, דוגמאות, כל מה שאנחנו אוהבים.

  2. שני מאמרים על דפוסים: סקירה כללית של חלק 1 וחלק 2 מפורט יותר .

  3. עיצוב דפוסים באמצעות דפוס Singleton כדוגמה .

  4. מאמרים על דפוסי " אסטרטגיה " ו"מתאם " .

  5. הרעיון של דפוסי עיצוב קשור לדיאגרמות UML, מאמר זה יעזור לך להבין מה הם.

הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION