מאמרים איך לחשוב מחוץ לקופסא ולפתור בעיות כמו מתכנת

kaduri

משתמש מקצוען
הנדסת תוכנה
D I G I T A L
בס"ד

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

עכשיו למדריך:

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

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

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

עכשיו נצייר מקרה אמיתי שהיה לנו לפני כמה ימים ואיך פתרנו אותו.

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

איך ניגשים לבעיה?

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

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

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

עכשיו הגיע השלב השני - איך עושים את זה? התחלנו לחפש בגוגל "php call to function from another file"
הרבה חפירות והרבה ניסיונות אבל בסוף הגענו להבנה איך זה עובד.
בphp אפשר להצהיר על פונקציה בקובץ מסויים ואז ניתן לקרוא לה מקובץ אחר.
יש את הפקודות add_filter ו-add_action של PHP שמאפשרות את הפניה הזאת.

באמצע עשינו את הדבר השלישי וקפצנו למים ופשוט ניסינו וניסינו עד שמצאנו את התחביר הנכון.
בסייעתא דשמיא הבעיה באה על פתרונה :)

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

בהצלחה לכולם!


קצת רקע - מתכנת C#,WPF כ-10 שנים. ידע רב בפיתוח מערכות desktop.
ידע בסיסי+ בווב. ללא ידע מקדים בPHP - אבל עם ידע רב בעקרונות התוכנה (תכף תראו למה אני מציין את זה)

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

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

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


לייעוץ מקצועי - cohenwpadvice at gmail.com
 

למדן וידען

משתמש סופר מקצוען
עיצוב גרפי
הנדסת תוכנה
D I G I T A L
כל הכבוד.
הגדלת ראש זה דבר שאכן מאוד נצרך במקצוע.

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

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

יש את הפקודות add_filter ו-add_action של PHP שמאפשרות את הפניה הזאת.
סתם לחידוד, אלו לא פקודות PHP, אלא פונקציות וורדפרס (שנכתבו בPHP).
נ"מ שהם לא יעבדו באתרים שאינם וורדפרסיים.
 

kaduri

משתמש מקצוען
הנדסת תוכנה
D I G I T A L
כל הכבוד.
הגדלת ראש זה דבר שאכן מאוד נצרך במקצוע.

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

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


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

אז ככה - אתה צודק, בוני אתרים בוורדפרס שהם רק מעצבים באמת לא מומלץ. יצאתי מנקודת הנחה של בוני וורדפרס קצת יותר מתקדמים שיש להם קצת ידע בHTML, JS וכו'. אבל צודק, היה אולי צריך לחדד את זה מראש.

מסכים עם השאר

תודה רבה :)
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קיט ק'

קמה קָרָאתִי בְכָל לֵב עֲנֵנִי יְהוָה חֻקֶּיךָ אֶצֹּרָה:קמו קְרָאתִיךָ הוֹשִׁיעֵנִי וְאֶשְׁמְרָה עֵדֹתֶיךָ:קמז קִדַּמְתִּי בַנֶּשֶׁף וָאֲשַׁוֵּעָה (לדבריך) לִדְבָרְךָ יִחָלְתִּי:קמח קִדְּמוּ עֵינַי אַשְׁמֻרוֹת לָשִׂיחַ בְּאִמְרָתֶךָ:קמט קוֹלִי שִׁמְעָה כְחַסְדֶּךָ יְהוָה כְּמִשְׁפָּטֶךָ חַיֵּנִי:קנ קָרְבוּ רֹדְפֵי זִמָּה מִתּוֹרָתְךָ רָחָקוּ:קנא קָרוֹב אַתָּה יְהוָה וְכָל מִצְוֹתֶיךָ אֱמֶת:קנב קֶדֶם יָדַעְתִּי מֵעֵדֹתֶיךָ כִּי לְעוֹלָם יְסַדְתָּם:
נקרא  14  פעמים

לוח מודעות

למעלה