ב-10 ביוני ז'ורז' קוטון, בתמיכת רובספייר, הציע בוועידה את "חוק ה-22 בפרריאל". סן-ז'וסט לא היה שותף פעיל ביצירת החוק ולא התבטא בעניינו, אך סביר שהוא תמך בו. החוק פישט את התהליך המשפטי נגד מי שנתפסו כמתנגדים למהפכה. הוא הרחיב את הסמכות של הטריבונל המהפכני בפריז, הגביל את התהליך המשפטי בכל מקרה ספציפי ל-3 ימים לכל היותר, וקבע כי בכל מקרה שנידון בפני הטריבונל ניתן יהיה להגיע אך ורק לאחת משתי הכרעות: זיכוי או מוות. התוצאה של החוק הייתה זירוז משמעותי של פעולות הטרור וההוצאות להורג, שכבר היו במגמת עליה עוד לפני כן (לכן תקופה זו נקראה "הטרור הגדול"). בחודש "מסידור" שהחל ב-19 ביוני והסתיים ב-19 ביולי, הוצאו להורג 796 אנשים בפריז, לעומת 509 מוצאים להורג בחודש פרריאל, 354 בפלוראל, ו-155 בז'רמינל. באווירה זו, תחושה של פאניקה אחזה ברבים, ומחלוקות החלו להתגלע בקרב האליטה היעקובינית. רובספייר הסתכסך עם חלק מאנשי הוועד לשלום הציבור והתפרקות אפשרית של השלטון נראתה באופק, אך הפעם כולם הבינו שאחרי התפרקות כזו רבים לא יצאו חיים. אחד הבכירים שהבינו את הסכנה הקרבה היה ברטראנד בארר (Barère) שניסה לגשר בין הפלגים ושכנע את סן-ז'וסט לכתוב דוח ולשאתו בנאום בפני הוועדה בדבר החשיבות של האחדות בממשלה. בכך, סן-ז'וסט הצטרף למאמצי הגישור ולראשונה נקט בעמדה שאינה אחידה עם רובספייר.
ב-26 ביולי, יום לפני הנאום המיועד של סן-ז'וסט והריאקציה התרמידוריינית, רובספייר נשא נאום משל עצמו. בניגוד לרוח הפיוס שבארר וסן-ז'וסט הסכימו לקדם, הנאום של רובספייר התמקד באזהרות מפני קשר שמתגבש כנגדו וכנגד הרפובליקה. רובספייר סירב לנקוט בשמות ספציפיים של הקושרים כנגד השלטון המהפכני, ובאווירה בה כל אחד יכול היה לדמיין את עצמו מואשם ומוצא להורג כבוגד, הנאום הצית ויכוח עז. היות שניסיונות הפיוס סוכלו על ידי רובספייר עצמו, בפני סן-ז'וסט עמדה בחירה קשה באשר לאופן בו יישא את נאומו ביום שאחרי. הוא היה יכול לשאת את נאום הפיוס המתוכנן, על אף שהסיכוי לפיוס כבר אבד, אך בחירתו הגורלית הייתה לצאת בנאום החלטי להגנת רובספייר.
הנאום שסן-ז'וסט עלה לשאת הופרע בקריאות ביניים כמעט מרגע שהתחיל. המולה החלה להתפשט בוועידה, ומתנגדיו של רובספייר (ה"תרמירדורינים") החליטו לעצור את רובספייר יחד עם סן-ז'וסט, לה-באס, קוטון, אוגוסט רובספייר (אחיו הצעיר של מקסימיליאן) ופרנסואה הנריוט (מפקד המשמר הלאומי). הקומונה בפריז והמשמר הלאומי פעלו בהתחלה נגד ההפיכה. הם ניסו לכתר את מקום מושב הוועידה ולשחרר את העצורים, אבל המהפכנים הצליחו לגייס כוח צבאי משלהם וההגנה של חוגו של רובספייר פוזרה. כשמצב זה התברר, אוגוסט רובספייר וקוטון זרקו את עצמם מחלונות בית הוועידה בשני ניסיונות התאבדות כושלים. לה-באס ירה לעצמו בראש והיה היחיד שהצליח להרוג את עצמו מייד. רובספייר נורה בלסתו, ככל הנראה גם בניסיון התאבדות, אבל הצליח רק לרסק את לסתו. סן-ז'וסט בחר לא לנקוט באותם האמצעים והוא "קם, עמד בשקט ובאופן כמעט נונשלנטי כדי לקבל את פני שוביו". הוא הוצא להורג בגיליוטינה יחד עם השבויים האחרים ב-28 ביולי כחודש לפני שמלאו לו 27 שנים ובתום קריירה פוליטית שנמשכה פחות משנתיים, אך הייתה מלאה בדם, הישגים צבאיים, ומעורבות באירועים ששינו את פני המהפכה.
שלדג לבן חזה
תבנית עיצוב
בהנדסת תוכנה, תבנית עיצוב (באנגלית: Design pattern) הוא תיאור של פתרון כללי לבעיה שכיחה בעיצוב תוכנה. תבניות עיצוב היא לא פתרון מדויק שניתן להעבירו הישר לקוד, אלא הן תיאור דרך לפתרון בעיה, שעשויה להיות שימושית במצבים רבים.
תבניות עיצוב מונחות עצמים מציגות לרוב יחסים וקשרי גומלין בין מחלקות או אובייקטים, בלי לפרט את המחלקות או אובייקטי היישום הסופיים המעורבים. אלגוריתמים אינם נחשבים כתבנית עיצוב, כיוון שהם פותרים בעיות חישוביות ולא בעיות עיצוב.
עקרונות מאחורי תבניות עיצוב.
ברוב תבניות העיצוב נעשה שימוש נרחב בעקרונות תכנות מונחה עצמים וSOLID כמו פולימורפיזם ועקרון פתיחות/סגירות.
תבניות עיצוב עשויות להתפתח באופן נקודתי עבור תחום עסקי מסוים שתוכנה נכתבת עבורו. לדוגמה, מערכות מידע, מערכות טלפוניה, יישומים רפואיים וכיוצא בזה יכילו בדרך כלל פתרונות לבעיות חוזרות ונשנות האופייניות לתחום המסוים. היכולת למצות תבנית עיצוב מתוך פתרון שיושם במערכת מסוימת עוזרת לפתח מערכות דומות בעתיד באיכות גבוהה יותר.
בהיבט רחב יותר ניתן למצוא שילובים של תבניות עיצוב היכולים להיחשב כתבניות ארכיטקטורה משום שהם משפיעים על ההיבט העיצובי הרחב של התוכנה הנכתבת מעבר לסוגיות מקומיות. דוגמה לתבנית ארכיטקטורה נודעת מסוג זה היא תבנית Model View Controller.
היסטוריה.
מקורם של תבניות העיצוב הוא מתחום הארכיטקטורה, בשנת 1977, כריסטופר אלכסנדר, ארכיטקט במקצועו, הוציא ספר ובו הגדיר באופן פורמלי 253 בעיות מוכרות מעולם הארכיטקטורה ולהן פתרונות מופשטים.
עשר שנים מאוחר יותר ב-1987 קנט בק ווורד קנינגהם השתעשעו ברעיון של השמה של תבניות עיצוב לעולם התכנות, הם הציגו את תוצאותיהם בוועידת OOPSLA. בנוסף הם עיצבו יחד תבנית עיצוב לעיבוד קרניים גרפיות בשפת Smalltalk.
כנופיית הארבעה או Gang of Four.
כינוי שניתן לאריך גמא, ריצ'רד הלם, רלף ג'ונסון וג'ון ויליסידס, מחברי הספר: Design Patterns - Elements of Reusable Object-Oriented Software. (שמם שאול מכנופיית הארבעה הסינית). ספרם שיצא ב-1994 היה הראשון שאסף ותיעד באופן מעמיק תבניות עיצוב.
עשרים ושתיים תבניות העיצוב שהופיעו בספר הפכו עם השנים לתבניות העיצוב המוכרות ביותר והיוו בסיס לכל ידע נוסף שנצבר בתחום תבניות העיצוב.
בין התבניות העיקריות שתועדו:
תיעוד.
הגדרת תבנית עיצוב תכיל את הפרמטרים הבאים:
יתרונות.
הגדרת התבניות תחת רעיון אחד, ובעיקר הגדרת שם התבנית מקלות על ההבנה בין מפתחים ממקומות שונים בהתייחסות לבעיה ולדרך פתרונה, כיוון שישנה שפה משותפת.
בנוסף כיוון שהתבניות עצמן מוגדרות באופן מופשט אך בצורה פורמלית, הן אינן תלויות בשפה או בסביבת פיתוח יחידה, דבר המאפשר צבירה והמשכיות של הידע הנלמד.
כמו כן, ההתמקדות ביצירת תבניות עיצוב היא לא על הטכנולוגיה אלא על תיעוד הבעיה ופתרונה דבר שמעשיר את הספרות המקצועית בידע רב וחושף מתכנתים מתחילים לידע ברמה גבוהה.
התנגדות.
לעיתים תבנית שעוצבה על ידי קבוצה מצומצמת של מפתחים אינה מקיפה את הבעיה מכל כיווניה, וכאשר מנסים להחיל את הפתרון במצבים לא מתאימים או על מערכת מסורבלת הדבר עולה בשגיאות או בסיבוך המבנה הפנימי של הקוד.
יש הטוענים שתבניות מאטות את ההתקדמות של מתכנתים מתחילים כיוון שהם אינם צריכים להשקיע מאמץ בפתרון בעיות סבוכות, הבעיה נוצרת במיוחד במקרים בהם מעתיקים יישום של תבנית ללא לימוד והבנה מעמיקה של הבעיה והפתרון המוצע. מתכנת מקצועי ילמד קודם את התאוריה שמאחורי התבניות ובאופן מושכל יחליט באיזו תבנית להשתמש לפתרון בעיה שצצה. כך ימנע פיתוח של תוכניות גרועות הכתובות ב"עיוורון" מוחלט.
במהלך ההתפתחות של תבניות העיצוב הוגדרו גם תבניות אשר מציעות כביכול פתרון לבעיה מסוימת, אך הפתרון המוצע הוא רע, ואינו מציג דרך נכונה להתמודדות עם הבעיה. תבניות אלו נקראות Anti Pattern. יש הטוענים שגם בין תבניות העיצוב המקובלות כמומלצות קיימות תבניות שאינן מספקות פתרון טוב לבעיה ומהוות Anti Pattern. דוגמה לתבנית כזאת היא התבנית Singleton אשר מצד אחד מקובלת על מתכנתים רבים כאחת התבניות הטובות ביותר ולדעת אחרים היא Anti Pattern. דעות סותרות אלו מראות שהסתמכות בעיניים עצומות על תבניות מוגדרות מוטעית מיסודה ויכולה לגרום לטעויות שתעלנה ביוקר הן מבחינת זמן והן מבחינת משאבים ותקציב.
תבניות עיצוב נפוצות.
באופן כללי, ניתן לחלק את התבניות לשלושה סוגים:
תבניות יצירה.
מטרת תבניות אילו היא ליצור הפשטה (Abstraction) לתהליך היצירה של אובייקטים, על ידי ביצוע הפרדה בין המערכת לבין יצירה או תצוגה של האובייקטים הנוצרים. כלומר, הידע הקונקרטי על סוג המחלקה ממנה ניצור אובייקט ותהליך היצירה עצמו יוכמסו ובנוסף, לאחר היצירה הגישה לאובייקט הנוצר תעשה באמצעות ממשק.
תבניות מבנה.
מטרתן של תבניות אילו היא להקל על עיצוב המערכת על ידי זיהוי דרך פשוטה לממש קשרים בין ישויות.
תבניות התנהגות.
כאשר מפתחים מערכת גדולה ישנו קושי בניתוח אינטראקציה בין אובייקטים, לכן עולה הצורך להגדיר סמכויות ולאפיין את אופי התקשורת בין הישויות שבה. תבניות התנהגות, עוסקות בבעיות אלו, בדומה לארגון, על ידי הגדרת הסמכויות הנדרשת והתקשורת בין הישויות. ירושה והרכבה עוזרים לתבניות התנהגותיות בהגדרת היחסים בין המחלקות.
התבנית Inversion of control אשר מאפשרת הזרקה של אובייקטים מתאימים בשלב ההרצה משמשת כתבנית הבסיסית למערכת התשתית הנפוצה Spring.
ריצ'רד דוקינס
קלינטון ריצ'רד דוקינס (באנגלית: Clinton Richard Dawkins; נולד ב-26 במרץ 1941 בניירובי) הוא אתולוג וביולוג אבולוציוני בריטי, הידוע בשל ספרי המדע הפופולרי שכתב.
דוקינס שימש בעבר כראש הקתדרה להבנה ציבורית של המדע על שם צ'ארלס סימוני באוניברסיטת אוקספורד, והוא עמית בניו קולג' באוקספורד. בנוסף הוא עמית החברה המלכותית (FRS) והאגודה המלכותית לספרות (FRSL).