![]() |
שאלה | דרכים לבנות מערכת גדולה
לאחרונה אני מתכוון לבנות מערכת דיי גדולה,
ואני רוצה לשמוע אולי אם יש לכם דרכים לתכנת ולבנות את הליבה שלה. אני חשבתי על משהו כזה: קבצים כאלה: sources -- core ----- core.php - מכיל את כל הליבה של המערכת, כל הפונקציות אבטחה והקריאה לדפים וכו'.. ----- functions.php - מכיל פונקציות עזר כמו האבטחה עצמה, קיצור מחרוזות וכו'.. -- apps ----- index.app.php - קבצים שיפעילו את האתר, לדוגמה הקובץ הזה יופעל בכניסה לעמוד העמוד הראשי index.php יכוון לקובץ core.php ויקרא לפונקצייה ראשונית (init) זה לא הכי מפותח אבל זה מה שעלה לי כרגע לראש, זה ממש הבסיס, בלי הסקינים או הקבצי אדמין וכו'.. אני בטוח שזה לא הכי טוב לכן פתחתי את האשכול הזה כדי לשמוע עוד אפשריות :) |
תלמד על MVC, דרך אגב הייתי ממליץ לך לכתוב ORM משלך :)
|
אני יודע מה זה mvc אבל אני לא אוהב לעבוד איתם,
בכל זאת אני אשמח לשמוע עוד אפשריות של אחרים :) |
מבנה התיקיות זה נושא שולי - זה יתן לך סדר וארגון, לא יותר (לא שזה לא חשוב כמובן, אבל זה לא מה שאתה צריך להתמקד בו כרגע).
תלמד על פיתוח מונחה עצמים, תקרא על עקרונות כמו SOLID, KISS ו- DRY, תחקור על Design Patterns נפוצים ו- Best Practices. ובעניין ה- MVC - זה רק יעזור לך. אם אתה לא אוהב "אותם" זה כנראה כי לא ממש הבנת את הרעיון (ואני מניח את זה על פי ההגדרה שלך - "אותם"). MVC זאת לא קבוצה, אין כאן "אותם" - MVC זה רעיון, זה Design Pattern. תלמד לעבוד עם Framework כלשהו, כמו Laravel לדוג' - הוא מצויין לרוב השימושים הנפוצים. בהצלחה. |
בנוגע לפרימוורק הייתי ממליץ על YII, הוא פנטסטי.
ואדיר צודק, תעבוד לפי העקרונות שהוא ציין, בהחלט יעזרו לך. |
ציטוט:
בכל מקרה התכנון שהראת כאן לא משהו, בייחוד לא לאפליקציה "גדולה" - סתם לדוגמא, למה שתשמור את כל הליבה על קובץ אחד?! הליבה זה דבר ענקי... אם הייתי שומר את הליבה שלי על קובץ אחד הוא היה קובץ של 300K+ שורות - תיצור לכל מחלקה קובץ. בכל מקרה- מבחינת ארכיטקטורת עיצוב, אתה יכול להשתמש בארכיטקטורה של N-Tier application, למשל Data centeric ו-Domain centeric... אבל אני מניח שזה מתאים רק אחרי שתדע להשתמש ב-DESIGN PATTERNS כמו שצריך ולהשתמש ב-MVC. לגבי ה"לא אהבת אותם" (MVC) - אני מניח, ותקן אותי אם אני טועה, שלא אהבת את העניין שכל דבר אתהצריך להפריד - זה נכון שזה נראה בהתחלה "מסורבל" ("אוי למה לכל דבר אני יוצר קובץ, עכשיו בא לי לכתוב HTML למה אני צריך את כל הכאב ראש הזה במקום לסגור בלוק PHP, לכתוב מה שאני רוצה ולחזור" או משהו בסגנון) - יש המון ייתרונות לעבוד ב-MVC, ואני בטוח שכשתתחיל להשתמש בה אתה תראה אותם. אגב, ברגע שתתחיל להשתמש ב-N-Tier application design אתה תראה שזה רק נעשה "מסורבל" יותר בהתחלה... למשל בתבנית רגילה של DDD (Domain Driven Programming) אתה תראה שיצא לך מצב שאתה מעביר נתונים ויוצר לפעמים אותם פוקנציות שפשוט משמשות כנטב בין כמה שכבות. למשל במקרה שבו יש לך עיצוב שבו יש לך את הUI שבנוי עם MVC, יש לך את הinfrastructure שבתוכו יש לך מימושים ל-Services, UnitOfWork ו-Repository ויש לך את ה-Core ששם יש לך אינטרפייסים לכל אותם מימושים שיש לך ב-infrastructure. בכל מקרה לך צעד צעד, נסה להתחיל לקרוא על תבניות עיצוב בסיסיות ותתקדם משם. מבחינת מערכת, אני גם מסכים שעדיף לך להשתמש בFW מוכן - הוא יוכל לעזור לך להבין הרבה עקרונות עיצוביים לפני שאתה מנסה ארכיטקטורה משלך. בהצלחה! :). |
ציטוט:
Yume? אני רק משכיל מהתגובות שלך בכל הפורומים השונים. אבל מה הקטע של ״הליבה״, לא הבנתי למה אתם מתכוונים בזה. |
שלא תבינו לא נכון, יצא לי לעבוד מול mvc ואני פשוט לא אוהב את זה ממש, (אמרתי אותם בגלל שהכללתי את כל הMVCים)
אני אקרא קצת על ה n-tier, המערכת תהיה מערכת לא קטנה, ברור שאני לא מתכוון לשמור את כל הליבה בקובץ אחד, פשוט הקובץ Core ישמש כליבה עצמה שתקשר למחלקות ואני כן מכיר את הdesign patterns אולי בכל זאת להשתמש ב- MVC ? אשמח לשמוע עוד תגובות בנושא. עריכה, קראתי קצת על ארכיטקטורה הרב שכבתית וזה מה שהתכוונתי לעשות מלכתחילה (זה דורש MVC?), את האשכול פתחתי בשביל לראות אולי אפשריות אחרות לסידור וארגון הקבצים ממה שאני רשמתי |
Yahavgb, תודה רבה עזרת לי להגיע להחלטה :)
אני אלך על ה N-Tier עם MVC שאני אבנה למערכת, אולי הוא יהיה חלקי חח או שאולי הוא יהיה מלא, תודה רבה גבר ;) ותודה לכולם :). |
בכיף, דרך אגב אפשר הסבר למה שאתה הולך לתכנת? נשמע מעניין. :)
|
ציטוט:
והליבה אמורה להפעיל את כל המערכת, לקרוא למשהו שיפעיל את המחלקות וכו'.. |
סבבה גבר בהצלחה ! לילה טוב :)
|
ציטוט:
הדבר הטוב ביותר שאני יכול לעשות כרגע זה להעביר את זה גם לך. רוב התהיות שאתה מעלה כאן יפתרו ברגע שתכיר ותלמד (לעומק) את מגוון המונחים שצויינו באשכול הזה, כמו שהמלצתי בהודעה הקודמת שלי - כדאי לך לקרוא אודות Laravel ולראות מה אתה חושב עליה. לפני כמה שבועות גם מצאתי איפשהו את האתר הזה, בהחלט שווה להציץ בו - http://www.phptherightway.com בהצלחה. |
ציטוט:
|
מסכים עם אדיר ויהב האמת הם אלו שדחפו אותי לMVC ומאז אני רק מתחרט שלא הכרתי את זה קודם,
פשוט דבר מדהים ! ממליץ לך חיים להתקדם לזה, ולהקשיב אך ורח ליהב ואדיר הם הכי מקצועיים בתחום הזה (שאני מכיר) הם עזרו לי מלא מלא בכל ההתקדמות שלי בתכנות הם יודעים יותר משPHP.net יודע :) |
ציטוט:
כנראה שאני אשקול את זה שוב פעם במערכת הזו, בלי קשר אני לא לחוץ בזמן אז אני יכול לחשוב המון זמן לגבי זה ;) |
ציטוט:
אתה מקבל פונקציות בסיס מאוד נוחות לשימוש, מאוד קל לשנות בה את החלק של פונקציות האבטחה לצרכים האישיים שלך (למרות שבד"כ אין בכך צורך) בהצלחה. |
אם כבר הדיבור פה על Frameworks..
אז מה לדעתכם עדיף - להתחיל לעבוד עם CI / Zend או להתחיל עם FW יותר קטנים ופשוטים? |
ציטוט:
|
ציטוט:
מצד שני codeigniter נראה לי יותר מידי דל.. אני לא אוהב אותו אין בו כמעט כלום רק את הבסיס ליאור |
ציטוט:
למרות שאני מחבב מאוד את ZF ומשתמש בה בפרויקטים אני כן חושב שהיא לא מתאימה למתחילים ועדיף לנסות בשביל להבין את העקרונות הבסיסיים את CI לפני (למרות שאחרי שאתה מרגיש שאתה שולט, גם אם יש לך אתר קטן ZF יכולה להיות בחירה נהדרת כי היא מציעה לך כמה מודלים של תכנות - לאוו דווקא רק MVC, ובכלל אתה יכול רק להשתמש בספריות שלה עם מודל משלך). בקשר לYII - אחלה FW, למרות שכמות המערכים בו עושה לי כאב ראש... בקשר לCI - זה נכון שהוא יחסית "דל", אבל הוא כן מקום התחלה נהדר לדעתי לעבודה עם FWים כי דווקא בגלל שהוא דל הוא לא מסובך כ"כ להבנה ולתפיסה ראשוניתך של הרעיון. |
כל הזמנים הם GMT +2. הזמן כעת הוא 05:16. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ