לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

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



  #1  
ישן 24-02-2009, 12:50
צלמית המשתמש של iBot
  משתמש זכר iBot iBot אינו מחובר  
 
חבר מתאריך: 16.08.08
הודעות: 123
דיון: בניית תשתית לאתרים

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

החלטתי להציב לעצמי כמה אקסיומות בנוגע לתשתיות שאני רוצה:
  1. חיסכון במשאבים - לא קריטי עבור אתר של גולש ביום, אבל קריטי עבור אתר של N+1 משתמשים, מה שאומר שאני מניח שיהיו אלפי גולשים.
  2. הפרדה בין סוגי מידע - לא מחברים בין מידע כמו העיצוב להרצת ה-PHP, זה לא הולך ביחד, כאשר את קבצי העיצוב טוענים בסוף ההרצה.
בדיון אני לא רוצה למצוא את התשתית האולטימטיבית, זה לא קיים, וכל מערכת בהתאם לצרכים שלה, אבל אני כן רוצה לדבר על שיקולים לתשתית, לדבר על תשתיות שאנשים בנו, ולדבר על איך בונים תשתית (גם טיפים ניתן לצרף).
שימו לב: תשתית יכולה להיות לעיצובים שונים (ניתן לבחור סקין במערכת), או לסקין אחד, ו / או לכמה שפות, (או שפה אחת מוגדרת מראש).

מקווה לשיתוף פעולה,
איתי.

שימו לב:
יתכן כי חלק מהמידע יערך ויכנס לפוסט בבלוג שלי.
_____________________________________

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 24-02-2009, 15:28
צלמית המשתמש של tnadav1
  משתמש זכר tnadav1 tnadav1 אינו מחובר  
 
חבר מתאריך: 02.10.05
הודעות: 2,355
שלח הודעה דרך MSN אל tnadav1
בתגובה להודעה מספר 1 שנכתבה על ידי iBot שמתחילה ב "דיון: בניית תשתית לאתרים"

בבניתי את תשתית קטנה לשני אתרים שאני עכשיו בונה, הנה הדברים שעשיתי (ואני שמח שעשיתי):
בנושא להפרדה בין עיצוב לתיכנות, אני אוהב להשתמש ב- Template Engine, אני משתמש ספציפית במחלקה הזאת
כדאי מאוד שתקרא את המאמר כדי להבין את הראש., חוץ מזה, המחלקה משוחררת ברישיון MIT ככה שאפשר להשתמש בה לפרויקטים מסחריים.
בקצרה אני יגיד שהמחלקה עונה לשני האקסיומות (יש הפרדה בין עיצוב לתכנות, והמחלקה מאוד קלה, כשתראה אותה תבין למה)

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

פה נגמרים הדברים שאני אוהב בקשר לתשתית שלי.

עכשיו הדברים שחבל שלא עשיתי:
התשתית תומכת בריבוי שפות.. כל פעם שאני יוצר דף חדש אני יוצר לפחות 3 דפים. דף שפה, דף של ה- Template, ודף של הרצה שממנו רץ הסקריפט. מתוך הדף הרצה אפשר לשנות את ה- Template ככה שלדף אחד יכול להיות כמה Template-ים (מאוד חשוב)

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

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

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

תקרא את המדריך של CakePHP ותראה איך דברים עובדים, אני מאוד מצטער שלא עשיתי את זה בתחילת הפיתוח..
_____________________________________


תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 24-02-2009, 23:00
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 2 שנכתבה על ידי tnadav1 שמתחילה ב "בבניתי את תשתית קטנה לשני..."

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


זה לא מקשה קצת על התיכנון של המסד..? השימוש ב- bitwise...

ציטוט:
התשתית תומכת בריבוי שפות.. כל פעם שאני יוצר דף חדש אני יוצר לפחות 3 דפים. דף שפה, דף של ה- Template, ודף של הרצה שממנו רץ הסקריפט. מתוך הדף הרצה אפשר לשנות את ה- Template ככה שלדף אחד יכול להיות כמה Template-ים (מאוד חשוב)


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

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


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

ד"א תודה רבה שהצעת לי להשתמש בטמפלט הנ"ל, גם אני חושב שהוא ממש טוב
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 25-02-2009, 00:02
צלמית המשתמש של tnadav1
  משתמש זכר tnadav1 tnadav1 אינו מחובר  
 
חבר מתאריך: 02.10.05
הודעות: 2,355
שלח הודעה דרך MSN אל tnadav1
בתגובה להודעה מספר 3 שנכתבה על ידי dorM שמתחילה ב "[QUOTE]המערכת הרשאות של..."

ציטוט:
זה לא מקשה קצת על התיכנון של המסד..? השימוש ב- bitwise...

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

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

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

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

עכשיו לפי ההרשאות גישה כל התפריט מוצג (אתה לא רואה מה שאין לך אליו הרשאה)

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

ציטוט:
למה שלא תתחיל ליישם זאת? אני חושב שזה לא אמור לפגוע במערכת.

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

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

במקום זה אני משתמש בשיטה שנותנים את השאילתה בפורמט סטייל sprintf ואז על כל משתנה להגן מ- SQL Injection ו XSS (לאסקייפ?)
ואחר כך אני יוצר פונקציה שמקבלת פונקצית callback ומחזירה מערך (חוסך את השימוש ב- while..mysql_fetch_assoc/array/num/something)
אז זה כבר יש..

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

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

אבל ספק אם אני ייעשה את כל זה.. כי אני מסיים עם השני אתרים...
_____________________________________


תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 25-02-2009, 00:33
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 4 שנכתבה על ידי tnadav1 שמתחילה ב "[QUOTE] זה לא מקשה קצת על..."

ציטוט:
השימוש ב- bitwise מקשה על התכנון של המסד? למה?

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

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

תנסה את האופציה של קבוצות משתמשים.
כל קבוצה עם ההרשאות שלה. כל משתמש יש לו הרשאות משלו...
אפשר גם לעשות קבוצות הרשאה - כלומר הרשאות User defined ולכל משתמש תגדיר את ה-id של ההרשאה הספציפית שהוגדרה ע"י המשתמש, כאשר יש גם הרשאות built-in בסיסיות.

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

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

ציטוט:
לקח זמן עד שהבנתי שאין מה לעשות, צריך מחלקת MySQL.

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

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

למה הכוונה? מה הבעיה בשליפה מ-2 טבלאות ויותר....?
אהה אתה מתכוון שהפונקציה בונה בעצמה את הבסיס של השאילתא, ואתה מספק רק פרמטרים שוליים.
לפי דעתי השיטה הכי טובה שאני מכיר, היא כמו שציינת, שימוש ב- sprintf.
ד"א יש פרמטרים שמחייבים סינון ספציפי עבורם ורק עבורם, כמו בשאילתות LIKE (לסנן "%" ו- "_"), שאז גם בזה אתה צריך להתחשב בתיכנון פונקציית הסינון. אני פתרתי זאת עם מערך, כאשר המפתח מציין את הסינון המיוחד המבוקש.
ציטוט:
ואחר כך אני יוצר פונקציה שמקבלת פונקצית callback ומחזירה מערך (חוסך את השימוש ב- while..mysql_fetch_assoc/array/num/something)


מה זאת אומרת?
כדי לעבור על כל תוצאות שאילתת SELECT, אתה צריך לעבור עליהן אחד אחד.
אם יהיו לך תוצאות רבות, אתה תצטרך מערך buffer גדול... זה לא מיותר...?
אני חושב שעדיף להשתמש ב- while...

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

תעשה תעשה... שיהיה לך מערכת מוכנה
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #6  
ישן 25-02-2009, 07:30
צלמית המשתמש של iBot
  משתמש זכר iBot iBot אינו מחובר  
 
חבר מתאריך: 16.08.08
הודעות: 123
בתגובה להודעה מספר 4 שנכתבה על ידי tnadav1 שמתחילה ב "[QUOTE] זה לא מקשה קצת על..."

ציטוט:
במקור נכתב על ידי tnadav1
במקום זה אני משתמש בשיטה שנותנים את השאילתה בפורמט סטייל sprintf ואז על כל משתנה להגן מ- SQL Injection ו XSS (לאסקייפ?)
ואחר כך אני יוצר פונקציה שמקבלת פונקצית callback ומחזירה מערך (חוסך את השימוש ב- while..mysql_fetch_assoc/array/num/something)
אז זה כבר יש..

כמה הערות בנוגע לזה:
  1. באמת יש לך טעם למנוע XSS לתוכן שלא יודפס בעתיד? תחשוב על זה שאתה מתעסק עם עשרות / מאות שאילתות בשניה, נראה לך שבאמת יהיה ריאלי להריץ פונקציה שלא בהכרח יש בה טעם? במקום זה להריץ את הפונקציה רק על משתנים שיש כוונה להדפיסם יספיק.
  2. הפונקציה שמחזיקה מערך, אתה דאגת ליצור true / false כדי להיות בטוח שאם אתה לא רוצה / צריך מערכת מוחזר, זה יגיב בהתאם?
זה נקודות קטנות למחשבה, אני עברתי בקריאה מהירה על רוב הדברים פה, יש לי עוד הערות ושאלות בנושא אבל אני צריך יותר זמן לנסח ולחשוב על זה.
_____________________________________

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 26-02-2009, 17:32
צלמית המשתמש של tnadav1
  משתמש זכר tnadav1 tnadav1 אינו מחובר  
 
חבר מתאריך: 02.10.05
הודעות: 2,355
שלח הודעה דרך MSN אל tnadav1
בתגובה להודעה מספר 6 שנכתבה על ידי iBot שמתחילה ב "[QUOTE=tnadav1]במקום זה אני..."

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

לגבי שאלה שנייה, אני חושב רק חושב שהבנתי אותה (לא בטוח):
לא צריך להעביר פרמטר (true, false). המחלקה שומרת בתוך משתנה פנימי שלה את המשאב של השאילתה האחרונה, ואיך אתה רוצה לעבד את המידע זה בחירה שלך, אתה יכול לעשות את זה עם לולאת while, ואתה יכול לקרוא לפונקציה שתריץ את כל הרשומות שהתקבלו על פונקציה ותקבל מערך, כל החלקים האלה מופרדים, הקטע של ה- callback זה חלק נפרד מהפונקציה ששולפת נתונים.
_____________________________________



נערך לאחרונה ע"י tnadav1 בתאריך 26-02-2009 בשעה 17:47.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #8  
ישן 26-02-2009, 18:59
צלמית המשתמש של iBot
  משתמש זכר iBot iBot אינו מחובר  
 
חבר מתאריך: 16.08.08
הודעות: 123
בתגובה להודעה מספר 7 שנכתבה על ידי tnadav1 שמתחילה ב "למה הכוונה כשאתה מתכוון תוכן..."

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

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


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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #14  
ישן 25-02-2009, 00:48
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 1 שנכתבה על ידי iBot שמתחילה ב "דיון: בניית תשתית לאתרים"

ציטוט:
חיסכון במשאבים - לא קריטי עבור אתר של גולש ביום, אבל קריטי עבור אתר של N+1 משתמשים, מה שאומר שאני מניח שיהיו אלפי גולשים.

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

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

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


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

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

מה זאת אומרת?
עיצוב מבוצע ב-CSS.
השפה XHTML נועדה רק להגדרת מבנה המסמך.
סה"כ יש צורך לשלוף קובץ CSS אחר, אבל כמובן שצריך לדאוג למבנה אחיד בכל המערכת (שימוש ב-class'ים ידועים...)

ציטוט:
ו / או לכמה שפות, (או שפה אחת מוגדרת מראש).


להגדיר שפות זה הדבר שנחשב הכי קל אבל די מציק...
כי סה"כ לפי הקלט מהמשתמש, או ההגדרה במסד הנתונים, קובעים נתיב לתיקיית שפה אחרת.
כל השאר - פשוט במקום לכתוב טקסט בשפה מסוימת, מחליפים אותו במשתנה (בדר"כ - מערך עם מפתח\איבר מתחלף).
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #15  
ישן 25-02-2009, 07:42
צלמית המשתמש של iBot
  משתמש זכר iBot iBot אינו מחובר  
 
חבר מתאריך: 16.08.08
הודעות: 123
בתגובה להודעה מספר 14 שנכתבה על ידי dorM שמתחילה ב "[QUOTE]חיסכון במשאבים - לא..."

ציטוט:
מה זאת אומרת?
עיצוב מבוצע ב-CSS.
השפה XHTML נועדה רק להגדרת מבנה המסמך.
סה"כ יש צורך לשלוף קובץ CSS אחר, אבל כמובן שצריך לדאוג למבנה אחיד בכל המערכת (שימוש ב-class'ים ידועים...)

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

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

זה הקטע בתשתית, לא?

ציטוט:
שיהיה ניתן להוסיף במערכת כמה אתרים שרוצים.

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

ציטוט:
מו כן מודולים - שיהיה ניתן להשתמש באותו מודול גם בעמוד\אתר אחר. (מיחזור)

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


דרך אגב:
מה אנשים פה חושבים על מחלקה שכוללת את שאילתות ה-SQL?
הרצת שאילתה תתבצע באופה הבא (דוגמה):
קוד PHP:
 sql::get_user_by_id $id ); 

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #16  
ישן 25-02-2009, 11:23
  משתמש זכר itaysela itaysela אינו מחובר  
 
חבר מתאריך: 01.02.09
הודעות: 120
שלח הודעה דרך MSN אל itaysela
בתגובה להודעה מספר 15 שנכתבה על ידי iBot שמתחילה ב "[QUOTE]מה זאת אומרת? עיצוב..."

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


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

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


נערך לאחרונה ע"י itaysela בתאריך 25-02-2009 בשעה 11:25.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #19  
ישן 26-02-2009, 18:54
צלמית המשתמש של iBot
  משתמש זכר iBot iBot אינו מחובר  
 
חבר מתאריך: 16.08.08
הודעות: 123
בתגובה להודעה מספר 18 שנכתבה על ידי tnadav1 שמתחילה ב "גם אני המערכת שלי נותן לכל..."

תלוי נורא בדו"ח, אם זה מבנה טבלאי אז כן, אבל אם זה סתם תא ברוחב קבוע ולידו נתון, כדאי לשקול להשתמש בתגית b לדוגמה ולהגדיר התנהגות דומה ל-block.

בנוגע ל-CSS3, אני עדין לא ממליץ להשתמש בזה, ומהכרות עם CSS2 הוא בהחלט יכול להספיק להמון דברים (זה כמו שעדין אל עובדים עם HTML5, התקנים הללו פשוט לא מכונים לשימוש), והתאימות שלו טובה יותר (כמובן הכרות עם CSS2 וההבדלים בין הדפדפנים זה דבר דיי חשוב).

ההפרדה לא אמורה להיות מושפעת מ-IE, ואם הגעת למצב שהאתר לא נראה טוב ב-IE זה לא בגלל שהפרדת את העיצוב מהתוכן, זה בגלל עבודה לא נכונה של עיצוב וואב (WEB).
_____________________________________

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #21  
ישן 27-02-2009, 10:31
צלמית המשתמש של iBot
  משתמש זכר iBot iBot אינו מחובר  
 
חבר מתאריך: 16.08.08
הודעות: 123
בתגובה להודעה מספר 20 שנכתבה על ידי tnadav1 שמתחילה ב "אמרתי בפירוש דו"ח בצורת..."

שוב, זה לא קטע של להשתשמ ב-CSS2 ב-CSS3, הרי CSS3 ירש את התכונות של CSS2, הקטע הוא בכלל להשתמש אך ורק בתקן CSS2, בגלל ש-CSS3 עדין לא מוכן ואינו נתמך לשימוש.

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

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

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

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 16:37

הדף נוצר ב 0.07 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר