התלמוד של המפתחהתלמוד של המפתח

מסכת ארכיטקטורה

מסכת SOLID

3 הלכות

א

עקרונות SOLID

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

תנו רבנן: מהו עיקרון האחריות היחידה? אמר רב: כל מחלקה תעשה דבר אחד ואחד בלבד. שאלו תלמידיו: ומה הדין במחלקה הנקראת Utils? שתק רב. נאנח. אמר: כולכם יודעים מה יש בתוך Utils. ספר טלפונים של קוד שאיש אינו יודע למה הוא שם. בלגן לגיטימי עטוף בשם שנשמע סביר. מחלקת Utils היא בית הקברות של הקוד שאיש לא העז למחוק. אמרו לו תלמידיו: ומה העצה? אמר להם: תמחקו אותה. תתחלקו אותה. ואם לא תוכלו — לפחות אל תוסיפו לה שום דבר חדש, שנאמר "וְלֹא יֹסִיף."

ב

עיקרון פתוח-סגור

עיקרון פתוח-סגור אומר: פתוח להרחבה, סגור לשינוי. כיצד? כותב קוד שאפשר להוסיף עליו מבלי לשבור מה שכבר עובד.

ומי שאמר "רק אשנה שורה אחת בלוגיקה הישנה" — פתח שערי גיהנום, ויפלו הטסטים כדומינו. ולכן: הרחב תמיד, אל תשנה.

ג

מחלקת UserManager

מעשה בדוולופר אחד שירש מחלקה בת אלף שורות ששמה היה UserManager. הייתה בה לוגיקת התחברות, שליחת מיילים, חישוב הנחות, יצירת PDF, ומשהו שנגע לשעון חורף-קיץ שאיש לא הבין.

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