ABA


"|PHP|המדריך למתכנת המתחיל והמתקדם"
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #14879 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 14879
akoka

דרג אמינות חבר זה
   00:28   04.03.09   
אל הפורום  
  |PHP|המדריך למתכנת המתחיל והמתקדם  
 
   ערב טוב,

אני זוכר את התקופה שאני התחלתי לתכנת בה, לפני בערך קצת יותר מ5 שנים, הייתי די גרוע אז(סתם לידע כללי), בקיצור לא חשבתי אז על ללמוד תיכנות נכון או יעיל, או כול דבר שקשור באופטימיזציה או נוחות של הקוד, הייתי כותב הכול בצורה פרוצדוראלית (אם אפשר לקרוא לזה ככה, הייתי כותב פונקציה פעם ביובל), בקיצר כול הקוד שלי פשוט היה בלגאן אחד אדיר המון המון מחזור של קוד, שמות משתנים לא ברורים, הזחות? הצחקתם אותי חח אפילו לא ידעתי מה זה, כול הקוד שלי היה כתוב בטבלה אחת ללא TAB אחד אפילו, הייתי נותן לכם דוגמא אפילו לאיך הייתי כותב, אבל עזבו פאדיחה.

בקיצור לאן אני חותר אתם שואלים?

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

בוא נתחיל במונח "תיכנות נוח", מה אומר לנו המונח הזה, כיצד אנחנו יודעים אם אנחנו מתכנתים בצורה נוחה?

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

בואו קודם כול נראה איזה עורכים קיימים היום בשוק, יש לא מעט, אני אמליץ על מה שאני חושב שהוא הכי נוח ואפקטיבי לPHP ולשאר השפות הנלוות אלינו כשאנחנו מתכנתים בPHP.

1.PHP Designer

http://www.al-andalos.com/data/3/12/storm_phpdesigner_small.jpg

כמה מילים על העורך הזה,

זה העורך הראשון שהתחלתי לעבוד איתו ברצינות, ולמען האמת לא מזמן רק סיימתי את העבודה איתו והתקדמתי לZend Studio For Eclipse שעליו אני ארחיב בהמשך כמה שאני יכול, כי אינני מכיר אותו לעומק עדיין.

בקיצור PDesginer מכיל בתוכו בערך כול מה שמתכנת PHP צריך, יש לו דיבאגר מעולה, הוא צובע את הקוד בצורה יפה, יש בו השלמה אוטומאטית לפונקציות מהCore של PHP,הוא תומך בשלל שפות נוספות שבהן גם (Ruby,Perl,Python ועוד....), חוץ מזה הוא תומך גם בCSS בצורה מלאה, עם השלמה אוטומאטית לכול הProperties בCSS.

כנל לגבי HTML תמיכה מצויינת בכול התגיות, והמאפיינים שלהם, ומכיל בתוכו את כול הDOCTYPE לכתיבה ע"פ התקן של XHTML.

חוץ מזה קצת על האופציות בתוכנה עצמה, יש אופציה לעבוד לפי פרוייקטים, לפתוח פרוייקט, להגדיר לו שרת וירטואלי, כמובן לנהל את הקבצים בפרוייקט בצורה נוחה, יש אפשרות לעבודה מרחוק ולהתחבר לFTP ולערוך את הקבצים בשרת עצמו, זה מעולה בפרוייקטים גדולים, שיש את התשתית לפיתוח, ואת התשתית הפעילה באתר, וברגע שמסיימים לפתח משהו מעבירים את זה ישר לשרת עצמו.

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

העורך הבא שאני רוצה לדבר עליו הוא Eclipse,

אקליפס הוא עורך נהדר, הוא חינמי לגמרי, בקוד פתוח, עם קהילה די רחבה שמפתחת אותו לפי מה שהבנתי, העורך הזה הוא שם קצת גדול רק לPHP, כי השימוש בו הוא ממש לא לPHP בלבד, הוא תומך בעוד המון דברים אחרים, בJAVA וJSP ועוד המון המון דברים שאני די חלש בו כדי להרחיב עליהם אבל תוכלו להכנס ל

http://www.eclipse.org/

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

אבל יש לי הפתעה בשבילכם

אתם לא צריכים לעשות את זה

http://2tbsp.com/system/files/eclipse_helloworld.png

Zend כן כן כן כן המפתחת של PHP עשתה את זה בשבילכם, ויצרה את Zend Studio For Eclipse, שזה העורך המושלם לPHP, אני עובד איתו כבר בערך שבוע, (עבדתי איתו גם בעבר, אבל שוב לא בצורה מקצועית כמו היום), והוא פשוט מדהים, הדיבאגר שלו זה יצור לא אנושי(דה), מה שגם הוא מגיע עם תוסף לFIREFOX שמאפשר לכם לדבג את האתר שלכם בדפדפן עצמו, יש גם אופציה לעבוד עם התשתית של Zend Framework בצורה די נוחה ע"פ מה שהבנתי מהעורך עצמו, הניהול פרוייקטים בו הוא מדהים, שוב אליפס, יש לכם שליטה על הכול, שוב אני אין לי ממש מה להוסיף, תצטרכו להוריד ולבדוק בעצמכם.

יש כמובן עוד עורכים נחמדים אחרים שאני לא אפרט עליהם אבל אם אתם רוצים אלה השמות ממה שאני זוכר

Notepad++
PHPEdit
Textpad

זהו לא זוכר עוד

הנושא הבא שאני אדבר עליו הוא תיכנות יעיל,

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

אני לא מכיר את כולכם פה, אבל אני מניח שאתם לא עובדים לפי תבנית מסויימת(סינגלטון,MVC),ואתם בונים את האתרים שלכם בצורה די פרוצדוראלית (אם בכלל),בקיצור מה שאני בא להגיד שהתיכנות הזה הוא שגוי, הוא לא נכון מהיסוד, ושאני לא אתחיל לדבר על כמה "יעיל" הוא, האינטרקציה בין רכיבים באתר הוא דבר די חשוב, וגם צריך לדעת ליישם את זה בצורה נוחה, גם הגישה הזאת היא לא נכונה, אומנם בהתחלה זה נראה נוח כי לכם זה נוח ועובד, אבל ויש פה אבל גדול זה שזה עובד לא אומר שזה צריך ליהיות ככה, ואני לא אומר לא לגרום למשהו לעבוד ואחרי זה לשפר אותו, להפך קודם שיעבוד אחרי זה השמיים הם הגבול, אני בחיים לא מנסה לכתוב יעיל מלכתחילה כי אני יודע שזה לא אפשרי.

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

בואו נתחיל עם תבנית הסינגלטון,
תבנית הסינגלטון היא תבנית שנועדה להבטיח שלמות של המערכת/אחדות בין כול הרכיבים, כדי לייצא רכיב אחד פעיל שהוא האתר עצמו בסופו של דבר,
התבנית בנויה בצורה של מופע יחיד של מחלקה,שבמחלקה עצמה בודקים אם קיים כבר מופע של המחלקה, ובמידה אם קיים מופע, אנחנו מחזירים מצביע אליו, במקום ליצור אחד חדש, לכן גם הקונסטרקטור של המחלקה הוא Private והפונקציות הציבוריות במחלקה הן סטטיות, דרך המחלקה אתם טוענים את כול המחלקות של האתר שלכם, ואז נוצר לכם מופע יחיד שמכיל את האובייקטים שלכם, זה דומה כעיקרון לregistry רק שregistry עובד עם MVC הם נלווים אחד לשני.

על MVC אני לא אחפור יותר מדי, אני פשוט אפנה אותכם למקור שאני למדתי ממנו.

בעברית
http://he.wikipedia.org/wiki/Model_View_Controller
באנגלית
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

יש עוד המון דברים שהזכרתי למעלה ולא הספקתי לפרט עליהם, נמשיך בפרק הבא שיהיה לי זמן, וריכוז לעשות את זה


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אחלה מאמר יחואי =] כל הכבוד ;) ronen333  04.03.09 00:49 1
  תודה ננסה את התוכנה 1.PHP Designer לעריכה Cool Man 04.03.09 02:57 2
  וואלקק אתהה.. תודה. DorCohen 04.03.09 03:56 3
  :| akoka 17.03.09 17:57 4
     תבקש מלירן לנעוץ או משהו P= ronen333  17.03.09 20:21 5
  תודה רבה....אבל שוב...OOP אני מתכנת ... CaTz 17.03.09 23:03 6
     אתה מערבב דברים, akoka 18.03.09 02:38 7
         אז אני לא מבין איך הכל מתקשר ביחד... :\ CaTz 18.03.09 20:12 8
             גם אני באותה הבעיה, אשמח לקבל עצמה מגדול הגדולים יוחאי hi_miz 20.03.09 15:52 10
                 כבר הסברתי לכם :| ronen333  20.03.09 15:57 11
                     זה היה מובן מבחינת OOP אבל לא בשילוב עם PHP וכו'... hi_miz 20.03.09 16:00 12
                         אני לא יודע PHP אבל זה בטוח לא שונה. ronen333  20.03.09 16:11 13
  סחטיין, יפה מאוד. asco88  19.03.09 19:23 9

       
ronen333 
חבר מתאריך 20.2.03
6069 הודעות, דרג אמינות חבר זה
   00:49   04.03.09   
אל הפורום  
  1. אחלה מאמר יחואי =] כל הכבוד ;)  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 04.03.09 בשעה 00:53 בברכה, ronen333
 
יעילות של קוד זה לא דבר שנופל מהשמיים אחרי שמתכנתים הרבה זמן ומתחילים לחשוב איך לחסוך בעוד יצירת אובייקט, בעוד חיבור למסד ושאילתה אז הקוד נהיה יותר טוב =].

האמת שהתחלתי ללמוד MVC והפסקתי בערך עוד בהתחלה(עד הבנת הארכיטקרטורה), אבל זה רק כי הייתי ואני עדיין צריך לפנות זמן לדברים קצת יותר חשובים.
שמחתי לגלות שלפי הטיפים שלך הצורת עבודה שלי נכונה..
תודה על המאמר היה מעניין


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Cool Man

דרג אמינות חבר זה
   02:57   04.03.09   
אל הפורום  
  2. תודה ננסה את התוכנה 1.PHP Designer לעריכה  
בתגובה להודעה מספר 0
 
   ושלח תיק עבודות שלך של אתרים שבניתה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DorCohen

דרג אמינות חבר זה
   03:56   04.03.09   
אל הפורום  
  3. וואלקק אתהה.. תודה.  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

דרג אמינות חבר זה
   17:57   17.03.09   
אל הפורום  
  4. :|  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות, דרג אמינות חבר זה
   20:21   17.03.09   
אל הפורום  
  5. תבקש מלירן לנעוץ או משהו P=  
בתגובה להודעה מספר 4
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
CaTz
חבר מתאריך 2.10.04
14537 הודעות, דרג אמינות חבר זה
   23:03   17.03.09   
אל הפורום  
  6. תודה רבה....אבל שוב...OOP אני מתכנת ...  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 17.03.09 בשעה 23:05 בברכה, CaTz
 
את האתר ''במופעים'' של מחלקות?

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

דרג אמינות חבר זה
   02:38   18.03.09   
אל הפורום  
  7. אתה מערבב דברים,  
בתגובה להודעה מספר 6
 
   OOP היא שיטה לעבודה נוחה יותר, וגם ברוב המקרים יעילה יותר, במידה ואתה עובד על תבניות מוכרות של OOP, כמו סינגלטון, או MVC, אז בסופו של דבר אתה מגיע למצב שיש לך מופע אחד שמכיל בתוכו את כול הרכיבים באתר, קשה להסביר את זה על רגל אחת, תיכננתי לכתוב מאמר שלם על זה, אבל אתה יכול לקרוא על זה בויקיפדיה, תקרא קצת על MVC, תקרא קצת על OOP.

אנשים חכמים יותר מרובנו, כתבו על זה בצורה טובה יותר, מובנת יותר, ונכונה יותר.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
CaTz
חבר מתאריך 2.10.04
14537 הודעות, דרג אמינות חבר זה
   20:12   18.03.09   
אל הפורום  
  8. אז אני לא מבין איך הכל מתקשר ביחד... :\  
בתגובה להודעה מספר 7
 
   calssים וכל האינטראקציה בניהם הבנתי...

אבל אני לא מצליח להבין איך זה מתחבר עם העיצוב וכל זה...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hi_miz

דרג אמינות חבר זה
   15:52   20.03.09   
אל הפורום  
  10. גם אני באותה הבעיה, אשמח לקבל עצמה מגדול הגדולים יוחאי  
בתגובה להודעה מספר 8
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות, דרג אמינות חבר זה
   15:57   20.03.09   
אל הפורום  
  11. כבר הסברתי לכם :|  
בתגובה להודעה מספר 10
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hi_miz

דרג אמינות חבר זה
   16:00   20.03.09   
אל הפורום  
  12. זה היה מובן מבחינת OOP אבל לא בשילוב עם PHP וכו'...  
בתגובה להודעה מספר 11
 
   את מה שכתבת לנו הבנו.. אבל השילוב שלהם באתר קצת לא מובן כל כך..

נשמח למדריך שמסביר בדיוק עם PHP וOOP איך הכל מתנהל ומתבצע בשילוב דוגמאות


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות, דרג אמינות חבר זה
   16:11   20.03.09   
אל הפורום  
  13. אני לא יודע PHP אבל זה בטוח לא שונה.  
בתגובה להודעה מספר 12
 
   כי מה שחשוב זה להבין את התאוריה, ביצוע אתה יכול ללמוד בשניה מהאינטרנט.
אתה פשוט צריך לבנות מחלקות שישמשו אותך ואז אתה יוצר להם מופעים.. אין פה יותר מידי מה להסתבך.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
asco88 
חבר מתאריך 17.6.04
26757 הודעות, דרג אמינות חבר זה
   19:23   19.03.09   
אל הפורום  
  9. סחטיין, יפה מאוד.  
בתגובה להודעה מספר 0
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net