זה רק אני ומחולל האתרים שלי
תוכן
הקדמה
כחלק מהסחת דעת מכל מיני דברים שקורים עכשיו (ושבטח לא שמעתם עליהם כי הם לא כאלה מעניינים), חשבתי שאולי יהיה נחמד לדבר על מתיחת הפנים שהבלוג הזה עבר לאחרונה. מדובר בחפירה שתהיה רלוונטית למי שמתעניין בפיתוח אתרים וטכנולוגיות קוד פתוח.
וורדפרס
במשך תקופה מאוד ארוכה (מאז 2015) הבלוג הזה נכתב על גבי פלטפורמת וורדפרס הנאמנה והפופולארית. התחלתי בוורפרס.קום החינמי, ולאחר כמה שנים עברתי לוורדפרס על-מלא באיכסון עצמי כדי ליהנות ממלוא האפשרויות שיש לוורדפרס להציע.
אחרי כמה שנים, ולאחר שצברתי מעט ניסיון בפיתוח ווב באופן עצמאי, ראיתי את הבעיה המרכזית של וורדפרס: בהיעדר תשומת לב, היא יכולה להפוך למערכת מסורבלת ואיטית.
שלא תבינו לא נכון, זו עדיין המערכת הכי אינטואיטיבית וקלה לשימוש היום. תוך פחות מ-10 דקות מרימים אתר. אבל:
וורדפרס תלויה במסד נתונים שבכל זאת דורש תחזוקה וביקורת מדי פעם. אם לא עושים לא אופטימיזציה, האיטיות באתר מורגשת היטב.
היא תלויה גם בתוספים המפותחים בקוד פתוח שלאו דווקא עברו ביקורת מקצועית, ותוסף שגוי יכול בפירוש לשבור את התפקוד התקין של האתר.
ולבסוף, גם היום קשה להתעלם מכל מיני פרצות אבטחה שמתגלות (ויש לומר ביושר: מתוקנות) ללא הרף. פרצות כאלה נפתרות לפעמים ע"י תוספי אבטחה אשר, כאמור, מסרבלים ועלולים להאט את המערכת.
אז בואו נאמר שלטכנופילים כמוני יש את האפשרות לחפש פתרונות, וליישם אותם ברמת הפילטרים והפעולות שניתן לממש באופן עצמאי בוורדפרס (בכל זאת קוד פתוח), אבל סליחה - מתישהו גם לי נשבר.
תוסיפו את הפיצ'ר הקרוי עורך הבלוקים, שאני באופן אישי חושב שהוא מ-ז-ע-ז-ע, וקיבלתם תחושת מיאוס.
אז מה האלטרנטיבה?
מחולל אתרים סטטי
ישנה פרדיגמה אלטרנטיבית למה שוורדפרס מציעה. הפיתרון הזה נקרא "מחולל אתר סטטי".
מדובר בתוכנות מגניבות להחריד אשר מייצרות עבורינו, לפי סט פרמטרים שהוגדר מראש, דפי אתר סטטיים לגמרי הכתובים ב-HTML, CSS ו-JavaScript בלי שום תלות במסד נתונים.
למה זה (אולי) נשמע דבילי
בגלל שלכאורה אנו חוזרים 30 שנה אחורה, לימים בהם כדי להרים אתר היה צריך לכתוב באופן ידני קבצי HTML ואז להעלות אותם לשרת איכסון בתקווה שלא שכחנו לסגור תגית בקוד.
מחולל אתרים סטטי הוא בעצם סוג של רובוט מתוחכם, הבנוי על תבניות לייצור קבצי HTML, ויודע איך למשתמש בהן כדי לייצר את דפי האתר הסטטיים שיוצגו למשתמש. נכון שזה נשמע מגניב באותה מידה שזה נשמע מוזר?
אז למה זה דווקא כן רעיון טוב?
בגלל שככה פתרנו את 2 הבעיות המרכזיות של וורדפרס: מהירות ואבטחה.
דף HTML סטטי ניתן לטעינה בזריזות, והוא מגיע למשתמש באופן כמעט מיידי. אין מסד נתונים או שפת סקריפטים שתפענח את המידע באמצע - זה קורה עכשיו ומייד כי הוא כבר מוכן.
ומכיוון שאין את ה"מנוע" של וורדפרס (הכתוב ב-PHP) באמצע, אין באמת "להיכן" לפרוץ. אין פתח שדרכו אפשר להסתנן למערכת שלנו, או ליתר דיוק: אין פתח של וורדפרס, שהוא וקטור תקיפה מתבקש עבור האקרים (ראיתם איך הגנבתי מונח מפוצץ כמו "וקטור תקיפה" כאילו אני מינימום נעם רותם?).
ולמה זה רעיון פחות טוב
מחולל אתרים סטטיים הם רעיון מעולה למי שיש נסיון תכנותי, בעיקר בווב, או למי שאין לו בעיה ללמוד תכנות שכזה. הם ממש לא פיתרון עבור מי שאין לו רקע כזה והתרגל לעבוד עם ממשק גרפי בלבד של וורדפרס כדי להתקין תוספים או ערכות עיצוב.
מדובר בהתעסקות עם קוד. מלאאאאאא קוד. כלומר, אם אין לכם כוונה לפתוח מנוע חיפוש בחלון אחד ואת ה-Visual Studio Code בחלון אחר ולהתחיל לחקור, לשכתב, לדבג ולנסות, חבל לכם על הזמן.
מצד שני...
נכון וורדפרס ממש קלה לתפעול? רק 10 דקות התקנה ויאללה לעבודה?
אז זהו, שזה לא ממש מדויק. כי מצד אחד זה כלום זמן להתקנה, אבל מצד שני מצאתי את עצמי מבלה זמן רב בעדכונים, התראות והתמודדות עם תוספים נאמנים שפתאום הפסיקו להיות תואמים לגרסת הוורדפרס, PHP או ה-MySql הנוכחית. למעשה, לאחר התקנת וורדפרס (במידה וחשוב לך שהאתר יתפקד) צריך לבלות את שארית חיינו בבקרה על מה שהולך שם.
לעומת זאת, במחולל אתר סטטי מדובר בגישה הפוכה לגמרי: מצאתי עצמי מבלה שבועות ארוכים בקידוד ובדיקה של הבלוג, וכמובן בהעברת הפוסטים לפלטפורמה החדשה. אבל מהרגע שזה עובד, אין באמת סיבה להמשיך להתעסק איתו. הגדרתי מכונה המייצרת לי אתר ומעלה אותו לאוויר - במה עוד יש לי להתעסק חוץ מלכתוב בו? גם אין תוספים שרצים על שרת האיכסון ועלולים לשבור לי את האתר בלי התראה.
בפרק הבא
בפוסט הבא נדבר על איך זה עובד בתכל'ס (סוג של סיוט בהתחלה), איזה מחולל בחרתי (הוגו) ומה אני צריך לעשות בכל פעם שאני צריך להעלות פוסט חדש (להתפלל לאלוהי הגשם. סתם לא באמת).
הערה רטרואקטיבית: הפוסט הבא עוסק בעיקר בהבדלים בין מחוללים שונים, והוראות התקנה בסיסיות להוגו. הוא פשוט יצא ארוך יותר ממה שחשבתי אז נאלצתי לפצל. אבל אל תדאגו, זה יגיע!