לצערי זה נכון, כי תיעוד אמיתי בחוץ בקושי יש, ואם כן זה לרוב מסתכם בכמה קבצי TXT….
אם תשאל אותי מה אני מעדיף: קוד עם API פשוט ונקי אבל בלי תיעוד, או API מפלצתי ולא ברור, אך מתועד היטב (נניח), אין לי ספק שאני בוחר באופציה הראשונה.
עכשיו, בלי קשר לזה:
נסית פעם להשתמש בפקודה המופלאה, man?
אם זה לא תיעוד, מה זה?
אה, אם זה לא HTML עם טבלאות זה לא מספיק?
גם אני מעדיף את התכנות בלינוקס – הכל הרבה יותר פשוט ונח. API פשוט, ולא הפונקציות עם ה-18 פרמטרים של חלונות.
מצד שני, חייבים להודות – בכל מה שקשור למה שמסביב – חלונות לוקחת ובגדול.
ההשוואה בין man ל-MSDN נראית לי די משעשעת.
שום IDE ללינוקס שאני מכיר הוא עדיין לא Visual Studio (למרות שיש כמה בדרך הנכונה).
והנקודה הכי כואבת – GDB.
(אני מדבר בעיקר על C++. בשפות סקריפטינג כמו פייטון הרבה מהפתרונות הם קרוס-פלטפורם ומן הסתם אין הבדל גדול.)
אני לא מפתח יותר מדי בC++ אז אני לא מכיר יותר טוב את הכלים שיש ללינוקס להציע פה.
אכן VC.NET חזק בזה, אבל כפלטפורמת פיתוח Eclipse לוקחת אותו בסיבוב.
לגבי GDB: זו לא נקודה כואבת, זה יתרון.
GDB הוא תשתית, ומאפשר בניית דיבאגרים ויזואליים מעליו (Eclipse CDT משתמש בו למשל). בנוסף, הוא מאפשר לדבג במצבים שבהם אין אפשרות לחיבור גראפי (שרת מרוחק עם חיבור איטי או בעיות תקשורת למשל).
הבעיה שברגע שהקוד הוא משהו יותר פשוט מאיזה שטות, אי אפשר כבר שה API יהיה פשוט ונקי….
וגם API מפלצתי זה גרוע, אבל אם אתה מתכוון לזה של חלונות הוא דווקא די מקיף וטוב.
man הוא טוב לדברים סציפים, אבל אני דברתי על קוד של פרויקטים בגנו שהם לא API אלא פשוט תוכנה שמישהו עשה ואני רוצה לתקן / לשכלל / לשנות, ולרוב זה כרוך בלהסתכל בקוד ולנסות להבין מה הוא עושה, כי אין תיעוד שמסביר איך הקוד עובד (ולא איך התוכנה).
מבין, אפשר.
אף אחד לא אמר שלכתוב API טוב זה קל.
קח דוגמא:
API להאזנה לשינויים במערכת הקבצים, אני מכיר את הנושא די טוב כי מימשתי את JNotify, שהיא ספריה ג'אווה שרצה בלינוקס וחלונות ומאפשרת האזנה לשינויים של מערכת הקבצים בלי תלות במערכת ההפעלה.
הממשק של לינוקס היה פשוט מאוד, וזה של מייקרוסופט היה מסובך מאוד.
לגבי תיעוד:
קודם כל, תיעוד זה Overrated. ברוב המקרים תיעוד נרקב ויוצא מסינכרון עם המציאות מהר מאוד, ואז הוא סתם מקור לא אכזב לכזבים.
בלי קשר לזה, אני יכול לומר לך שרוב הפרוייקטים המסחריים שמפותחים לוקים מאוד בתיעוד שלהם, ובכלל – מאוד נדיר למצוא תיעוד שעוזר למפתחים חדשים להכנס לבסיס קוד קיים, בלי קשר למי מפתח אותו ואם זה קוד פתוח או לא.
חוץ מזה, יש לך את הקוד. מה עוזר לך אם מייקרוסופט מתעדים את Word על כל פרטיו הקטנים (הם לא) אם כשאתה רוצה לשנות משהו אתה ממשיך לרצות עד שזה עובר לך?
ברור שעדיף משהו מכלום (קוד פתוח לעומת סגור), אבל יש לך פרויקטים שלמים שאין להם אפילו תיעוד ברמה של איך המודולים מחולקים, מי אחרי למה, איך כל מני תתי מודולים עובדים בגדול, כלום… המפתח/ים פשוט כותבים את הקוד כי הם יודעים וזהו.
נכון, זה הדבר האחרון שבדרך כלל מתעדים, ולו בגלל שהוא לא מעניין יותר מדי אנשים:
מי שמכיר את הקוד, לא צריך את התיעוד הזה.
מי שלא מכיר את הקוד, בדרך כלל רוצה תיעוד של ממשקי תכנות מסויימים, שתוכננו לשימוש חיצוני – ואלו בדרך כלל מתועדים.
מי שרוצה להבין את הקוד צריך לעבוד קשה.
אני אישית מעדיף שלא יהיה תיעוד מאשר שיהיה תיעוד לא נכון.
sweeet
לצערי זה נכון, כי תיעוד אמיתי בחוץ בקושי יש, ואם כן זה לרוב מסתכם בכמה קבצי TXT….
אם תשאל אותי מה אני מעדיף: קוד עם API פשוט ונקי אבל בלי תיעוד, או API מפלצתי ולא ברור, אך מתועד היטב (נניח), אין לי ספק שאני בוחר באופציה הראשונה.
עכשיו, בלי קשר לזה:
נסית פעם להשתמש בפקודה המופלאה, man?
אם זה לא תיעוד, מה זה?
אה, אם זה לא HTML עם טבלאות זה לא מספיק?
גם אני מעדיף את התכנות בלינוקס – הכל הרבה יותר פשוט ונח. API פשוט, ולא הפונקציות עם ה-18 פרמטרים של חלונות.
מצד שני, חייבים להודות – בכל מה שקשור למה שמסביב – חלונות לוקחת ובגדול.
ההשוואה בין man ל-MSDN נראית לי די משעשעת.
שום IDE ללינוקס שאני מכיר הוא עדיין לא Visual Studio (למרות שיש כמה בדרך הנכונה).
והנקודה הכי כואבת – GDB.
(אני מדבר בעיקר על C++. בשפות סקריפטינג כמו פייטון הרבה מהפתרונות הם קרוס-פלטפורם ומן הסתם אין הבדל גדול.)
אני לא מפתח יותר מדי בC++ אז אני לא מכיר יותר טוב את הכלים שיש ללינוקס להציע פה.
אכן VC.NET חזק בזה, אבל כפלטפורמת פיתוח Eclipse לוקחת אותו בסיבוב.
לגבי GDB: זו לא נקודה כואבת, זה יתרון.
GDB הוא תשתית, ומאפשר בניית דיבאגרים ויזואליים מעליו (Eclipse CDT משתמש בו למשל). בנוסף, הוא מאפשר לדבג במצבים שבהם אין אפשרות לחיבור גראפי (שרת מרוחק עם חיבור איטי או בעיות תקשורת למשל).
הבעיה שברגע שהקוד הוא משהו יותר פשוט מאיזה שטות, אי אפשר כבר שה API יהיה פשוט ונקי….
וגם API מפלצתי זה גרוע, אבל אם אתה מתכוון לזה של חלונות הוא דווקא די מקיף וטוב.
man הוא טוב לדברים סציפים, אבל אני דברתי על קוד של פרויקטים בגנו שהם לא API אלא פשוט תוכנה שמישהו עשה ואני רוצה לתקן / לשכלל / לשנות, ולרוב זה כרוך בלהסתכל בקוד ולנסות להבין מה הוא עושה, כי אין תיעוד שמסביר איך הקוד עובד (ולא איך התוכנה).
מבין, אפשר.
אף אחד לא אמר שלכתוב API טוב זה קל.
קח דוגמא:
API להאזנה לשינויים במערכת הקבצים, אני מכיר את הנושא די טוב כי מימשתי את JNotify, שהיא ספריה ג'אווה שרצה בלינוקס וחלונות ומאפשרת האזנה לשינויים של מערכת הקבצים בלי תלות במערכת ההפעלה.
הממשק של לינוקס היה פשוט מאוד, וזה של מייקרוסופט היה מסובך מאוד.
לגבי תיעוד:
קודם כל, תיעוד זה Overrated. ברוב המקרים תיעוד נרקב ויוצא מסינכרון עם המציאות מהר מאוד, ואז הוא סתם מקור לא אכזב לכזבים.
בלי קשר לזה, אני יכול לומר לך שרוב הפרוייקטים המסחריים שמפותחים לוקים מאוד בתיעוד שלהם, ובכלל – מאוד נדיר למצוא תיעוד שעוזר למפתחים חדשים להכנס לבסיס קוד קיים, בלי קשר למי מפתח אותו ואם זה קוד פתוח או לא.
חוץ מזה, יש לך את הקוד. מה עוזר לך אם מייקרוסופט מתעדים את Word על כל פרטיו הקטנים (הם לא) אם כשאתה רוצה לשנות משהו אתה ממשיך לרצות עד שזה עובר לך?
ברור שעדיף משהו מכלום (קוד פתוח לעומת סגור), אבל יש לך פרויקטים שלמים שאין להם אפילו תיעוד ברמה של איך המודולים מחולקים, מי אחרי למה, איך כל מני תתי מודולים עובדים בגדול, כלום… המפתח/ים פשוט כותבים את הקוד כי הם יודעים וזהו.
נכון, זה הדבר האחרון שבדרך כלל מתעדים, ולו בגלל שהוא לא מעניין יותר מדי אנשים:
מי שמכיר את הקוד, לא צריך את התיעוד הזה.
מי שלא מכיר את הקוד, בדרך כלל רוצה תיעוד של ממשקי תכנות מסויימים, שתוכננו לשימוש חיצוני – ואלו בדרך כלל מתועדים.
מי שרוצה להבין את הקוד צריך לעבוד קשה.
אני אישית מעדיף שלא יהיה תיעוד מאשר שיהיה תיעוד לא נכון.
ואני פשוט חשבתי שהתמונה והמשפט מצחיקים 🙂