עבודה עם פריימוורק או התחלה חדשה?
פבר' 03
פעמים רבות נשאלת השאלה עם עדיף לעבוד עם Framework או להשתמש במשהו שנכתב על ידינו. מניסיון שלי עם הנושא הזה הגעתי למסקנה שאם יש משהו מוכן והוא טוב, למה לא להשתמש בו? בהיותי מתכנת נתקלתי בהרבה עבודות שונות, חלקן דרשו כמה שעות עבודה בלבד, אחרים דרשו גם כמה חודשי עבודה. אם הייתי משתמש ב framework כלשהו הייתי חוסך לעצמי חצי מזמן הפיתוח.
עד לא מזמן הייתי שקוע ודרוך על העובדה שהקוד שאני אכתוב יהיה עדיף על מה שאחרים יכתבו בישבילי, והיו לזה גם כמה ביסוסים טובים כמו: א) הקוד הזה נכתב על ידי אז אני יודע איפה כל דבר ומה כל דבר עושה. ב) אני לא אכתוב משהו שאני לא צריך ג) כתיבה זה ניסיון בעצם. אבל אם לחשוב על זה מבחינת זמן ותפוצת עבודה כמובן שעדיף להשתמש ב framework. הגעתי לשלב שאת השפה אני יודע ואני יודע למצוא את הדרך לפתרון הבעיות שאני נתקל בהם ביום יום, אז למה לא להשתמש במשהו שאני אוכל לפתח מהר יותר וקל יותר?
אני למשל הגעתי מה Zend Framework (אלה מה?!) עבדתי איתה קצת ואחרי זמן קצר הבנתי שהיא פחות framework אלה יותר ספריה של דברים שימושיים, וזה לא מה שחיפשת. מצאתי אתר מאוד שימושי ל frameworks ב PHP בשם PHP Frameworks (כמה אירוני), האתר הזה מספק רשימה של frameworks הכתובים ב PHP בלבד ומציג אותן בתוך טבלה נוחה לקריאה ומפרט על כל אחת, מה יש בה ומה אין לעומת השאר. ככה שאתה תוכל לבחור את הטובה ביותר מבין כל הרשימה. בין כל ה frameworks המוצגים שם אפשר לראות את הפופולארים ביותר כמו Zend Framework , Cake PHP, Symfony, Prado ואחרים. אני אישית התנסתי עם ZF, Cake PHP, Prado ואת האמת לא ממש התרשמתי מהם. כשהסתכלתי מקרוב אפשר היה להבחין ב 2 רשומות בלבד שתומכות בכל הקריטריונים המוצגים שם וכתובות ב PHP 5. הלא הן Prado & Yii למען האמת שניהם נכתבו על ידי אותו בנאדם (Qiang) שבעצם התחיל עם Prado אבל נתקל בכל כך הרבה דברים שאפשר היה לשפר ולשנות שהחליט לכתוב משהו מהתחלה וקרא לזה Yii .
ישנה רשימה ארוכה של דברים ש framework מאפשר לכם לעשות, אבל ברוב המקרים ולרוב המתכנתים כל זה לא ממש נחוץ. אבל יש כמה דברים שלי אישית היה חשוב שיהיה, שיעבדו כמו שצריך ושעדיין יצרכו כמה שפחות משאבים, והם:
- שימוש ב PHP 5 בפרט, כמובן שעם הזמן השפה משתפרת וחייבים להשתמש בגרסא העדכנית ביותר כדי להנות ממה שיש לה להציע.
- שימוש ותמיכה ב MVC (קיצור של Model-View-Controller) זהו כנראה השילוב המנצח של כל המערכות שנכתבות כרגע, כתיבת מערכת תוך כדי חלוקה של הקוד והעיצוב הם דבר הכרחי, כתיבת קובץ PHP שמכיל בתוכו את ה HTML היא לא פרקטיקה טובה לתכנות ויש להמנע מזה.
- מסדי נתונים, אני אישית משתמש ב MYSQLi אבל אני עדיין רוצה שה framework יוכל לעבוד עם MSSQL, MYSQL, SQLlite, Oracle ואחרים כדי שיהיה ניתן לפנות לכמה שיותר משתמשים עם התקנות שונות בעזרת מערכת אחת.
- מטמון, תמיכה ב CACHE היא דבר הכרחי בימינו, הכל סובב סביב כמה זמן האתר נטען ואם ישנה תמיכה ב CACHE זה יכול להוריד את זמן הטעינה משמעותית. לרוב הספריות מגיעות עם תמיכה בכמה סוגי של CACHE כמו CACHE במסד נתונים, במערכת הקבצים, ועוד.
- EDP , מונח נוסף שלא פחות חשוב (קיצור של Event Driven Programming) מאפשר לכם לתכנת פעולות מסויימות שיבוצעו על סמך פעולות אחרות שנעשות תוך כדי הרצה. נשמע קצת מפולח אבל בהחלט עוזר.
כמובן שלא הכל מושלם וישנם דברים (והרבה) שתצטרכו לתכנת לבד אבל זה בהחלט יחסוך הרבה זמן ועבודה ממושכת אם תשתמשו ב Framework. אני אישית משתמש ב Yii כבר כמה חודשים וכמעט כל דבר שרציתי שיהיה אכן קיים. לכן במקום לכתוב מחלקה שלמה של ניהול במשתנים הגלובאלים פילטור, סינון ואימות – הכל נעשה כבר במערכת וכל מה שצריך זה לדעת להשתמש בה נכון ולרוץ עם זה.
מסקנה
אם הנכם רק בתחילת הדרך בתחום התכנות אז עדיף שתתנסו בשפה ולא במערכות שכבר נכתבו, תנו לעצמכם זמן ללמוד את השפה ורק לאחר מכן תתנסו עם המערכות המוכנות הללו.
אם הנכם כבר בשלב מתקדם בתחום התכנות בשפה ורוצים לזרז את תפוקת העבודות שלכם אז שימוש ב Framework זה בהחלט דרך טובה לעשות זאת. עם המלצה לשימוש ב Yii.






