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

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
צפה בתוצאות הסקר: כיצד מבוצעת הזחה בקוד שלכם?
רווחים 3 16.67%
Tab 14 77.78%
לא משנה לי 1 5.56%
מצביעים: 18. אינך רשאי להצביע בסקר זה

תגובה
 
כלי אשכול חפש באשכול זה



  #7  
ישן 12-03-2010, 12:30
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 6 שנכתבה על ידי fealls שמתחילה ב "מסתבר שגם Zend @ PHP תומכים..."

כן, אבל בכל התיעודים האלה לא מסבירים מדוע.
באשכול Tabs versus spaces in Python programming @ stackoverflow.com, אחת התגובות מסבירה למה לא לערבב רווחים ו-Tabs, ואפשר להסיק מזה למה קובעים שימוש רק ברווחים בשביל ההזחות:
ציטוט:
Editor-to-editor mistake occurs when you have mixed indentation within a file. This arises as follows: a block of code is indented with 4 spaces, and then one indentation level "in", it is indented with tabs. Now the heathen who did this (mixing tabs and spaces) had it so his tabs are also 4 spaces, so he sees no problems, and python sees no problems. Now our victim comes along later, and he has his tabs set to 8 spaces. Now our victims thinks the code looks all whacked, and fixes it by removing one level of indentation, which now makes the code look like it is still 2 levels of indentation, but is really one level. At this point all hell breaks loose.

The lesson here is that you should never, ever, mix tabs and spaces. If you keep to this, then it is easy to reindent your code into spaces or tabs, regardless of which you personally use. The best way to ensure you don't mix tabs and spaces is to always run python with -tt, which will produce an error when tabs and spaces are mixed.

As for tabs and spaces, I personally use tabs so separate indentation from appearance - it is much easier to change the appearance of code when it is indented with tabs than it is with spaces. I know this runs contrary to what 99% of python programmers do, but that is my personal preference, and it is easy in any case to convert a tabbed file to a spaced one. The reverse is not always true, since you can accidentally whack out 4 spaces in strings etc.

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

נערך לאחרונה ע"י dorM בתאריך 12-03-2010 בשעה 12:32.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #16  
ישן 15-03-2010, 22:05
צלמית המשתמש של fealls
  fealls fealls אינו מחובר  
 
חבר מתאריך: 11.03.07
הודעות: 1,668
בתגובה להודעה מספר 12 שנכתבה על ידי dorM שמתחילה ב ""מיקום לא נכון" מבחינת סגנון..."

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

אגב, שאלה:
עד לא מזמן, ממש ממש אהבתי להשתמש ב if(!$var) a ובזמן האחרון אני מרגיש לא בנוח עם זה, כי הסימן קריאה לא תמיד כזה ברור שהוא נמצא שם, אז התחלתי להשוות לערכים FALSE וTRUE.
אני מגזים?
אותו דבר בנוגע ל:
קוד:
$var = isset($_POST['var']) ? $_POST['var'] : 'default';

במקום
קוד:
if (isset($_POST['var'])) $var = $_POST['var']; else $var = 'default';


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

נערך לאחרונה ע"י fealls בתאריך 15-03-2010 בשעה 22:08.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #18  
ישן 16-03-2010, 19:34
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 16 שנכתבה על ידי fealls שמתחילה ב "חייב חייב חייב להזדהות..."

ציטוט:
במקור נכתב על ידי fealls
עד לא מזמן, ממש ממש אהבתי להשתמש ב if(!$var) a ובזמן האחרון אני מרגיש לא בנוח עם זה, כי הסימן קריאה לא תמיד כזה ברור שהוא נמצא שם, אז התחלתי להשוות לערכים FALSE וTRUE.
אני מגזים?

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

אגב לדעתי דברים בסגנון:
קוד:
if (cond) func();

גם לא טובים, עדיף פשוט להישאר עם:
קוד:
if (cond) func();


ציטוט:
אולי לא יכיר צורות מיוחדות של השפה

Ternary operator זה אחד הדברים המוכרים ביותר
אבל לא אמור להיות דבר כזה שהוא לא מכיר דברים מיוחדים של השפה, ואם יש משהו שהוא לא מכיר - אז סימן שהוא רק התחיל ללמוד אותה לא מזמן...
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #22  
ישן 17-03-2010, 06:54
צלמית המשתמש של Narxx
  משתמש זכר Narxx Narxx אינו מחובר  
 
חבר מתאריך: 21.12.04
הודעות: 30,021
בתגובה להודעה מספר 21 שנכתבה על ידי dorM שמתחילה ב "כן, אבל זה יכול להגיע למצב..."

נכון, זה יכול להגיע למצב הזה... הוא בהחלט יותר טוב ממצב אחר ושכיח יותר בו קשה לראות בצורה ברורה (למרות שזה תאכלס עניין של הרגל) איפה מתחילה פונקציה, ואיפה התוכן שלה וכו'.
אל תחפש איך הקוד יכיל 'פחות שורות קוד' כדי 'לייעל' אותו. בכל מה שקשור לעיצוב והערות - תשקיע מקסימום שורות קוד. את האלגוריתם תכתוב בצורה שהיא פשוט קריאה (גם אם זה כולל תנאים כמו השאווה לערך בוליאני במפורש: if (isLogged == true).
פעם גם אנחנו כל הזמן ניסינו 'לכתוב את הקוד הכי קצר' לכל בעיה. היום זו ממש לא הגישה שלנו. במיוחד לאחר שלמדנו שקוד קצר הוא קודם כל - לא בהכרח היעיל ביותר, ושנית בגלל שכשהיינו צריכים לעבוד זה עם קודו של זה - לא תמיד הקוד היה אינטואיטיבי וברור. ריבוי הערות וסוגריים מקלים על העבודה.
_____________________________________
בברכה, מתן.
www.MatanNarkiss.com

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #25  
ישן 17-03-2010, 19:30
צלמית המשתמש של Narxx
  משתמש זכר Narxx Narxx אינו מחובר  
 
חבר מתאריך: 21.12.04
הודעות: 30,021
בתגובה להודעה מספר 24 שנכתבה על ידי dorM שמתחילה ב "לא אומר לכתוב קוד הכי קצר,..."

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

בנוגע לבעיטה, שמע, אני לא יודע... מצד אחד אנחנו משתמשים בשמות משמעותיים בדיוק כדי שיהיה ברור מה isLogged אומר, גם מבלי שעקבנו מילה מילה בקוד (וגם מבלי לקרוא בכלל קוד, אפשר להסיק כי isLogged בודק האם אנחנו מחוברים או לא למערכת). מצד שני, אי אפשר להיות 'יותר מדי ברורים' ואם במקום לכתוב
(if (isLogged, אתה תכתוב (if (isLogged == true - לא יקרה שום אסון... במקרה הכי גרוע, מישהו שכבר היה ברור לו מראש מה התנאי אומר מבלי ההשוואה המפורשת, יבין אותו הדבר גם עם ההשוואה המפורשת. הפוך, לא תמיד
_____________________________________
בברכה, מתן.
www.MatanNarkiss.com

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

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

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

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

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



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

הדף נוצר ב 0.10 שניות עם 11 שאילתות

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

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