פעמים רבות נשאלת השאלה עם עדיף לעבוד עם 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.
Similar Posts
- Zend Framework – למה באמת כדי להשתמש בה? – 02/19/2009
- בלוגים טכנולוגיים – 10/10/2010
- PHP 5.3 Namespaces – 10/12/2010
- Zend Certified? עכשיו גם Zend Framework Certified Engineer – 04/03/2009
- Zend Server – סביבת פיתוח ועבודה עם PHP בכמה דקות – 02/24/2009





אחלה מאמר, בדיוק מה שחפשתי.
רק תפרט יותר למה העדפת את Yii.
מכמה סיבות.
1. כנראה שהעיקרית מכולן היא מאחר ואני בעצם מפתח אותה. ישנם כמה רכיבים וכמה מודלים שפתחתי, ואני ממשיך לפתח אותה כרגע גם כן. בימים/שבועות הקרובים יהיו כמה שינויים באתר שאני מקווה ימשכו משתמשים נוספים לשימוש בפריימוורק זה. להבדיל מפריימוורקים אחרים Yii משתמשת בצורה מלאה במושג של layz loading (en.wikipedia.org/wiki/Lazy_loading) כמו כן היא תומכת ב PHP 5 בלבד ובכך מאפשרת שימוש בדברים שלא קיימים ב 4 ולכן אלו שתומכים גם ב 5 ו 4 לא יכולים להשתמש בה.
מתעדכנת בצורה מתמדת והולכת וגודלת במהירות.
ישנו אפשרות להוספת תוספים אשר נקראים Extension שכל אחד יכול לבוא ולהוסיף, זה אומנם לא מגיע לבסיס של המערכת אבל זה מוצג באתר וכל אחד מוזמן להוריד, בניגוד ל ZEND למשל שרק משתמשים מסויימים יכולים להוסיף דברים למערכת, וגם כשהם נבחרים בקפידה לא תמיד האחראים שם מסכימים על השיטה עבודה, או על הרכיב שכתבת. הרבה יותר ביוקרטיה.
מעבר לזה אין משהו אחר ספציפי, בסופו של דבר כולם עושים את אותו הדבר השאלה מי מהם עושה את זה בצורה נוחה יותר ובצורה שאתה מתחבר אליה.
נקודה חשובה נוספת לטובת Yii היא שבגלל שהדבר העיקרי שחושבים עליו שם הוא פשטות ומהירות, הקוד שלה ממש קצר, מהיר והיא כרגע נמצאת במקום הראשון מבחינת ביצועים. לכן אפשר לקחת גם את זה בחשבון.