תכנות: שימוש בדוקומנטציה [מתחיל]

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

תכנות: שימוש בדוקומנטציה [מתחיל]

הודעהעל ידי dor sakal ב 13 יוני 2010, 18:49

אני נתקל בשאלות רבות בפורום בסגנון "יש לי String ואני לא מבין איך...?" או "האם יש לArray פונקציה ש...?" או "מה זה האובייקט...?" ועוד רבות וטובות.
השאלות האלה מקבלות בדרך כלל תשובה קצרה ופשוטה מאוד - לינק לדוקומנטציה של Action Script.
אחד מהדברים החשובים שצריך לדעת כמפתח זה להשתמש במשאבים שלך, ובמקרה שלנו Adobe כתבה לנו אחלה של משאב.

במאמר זה אני יוצא מנקודת הנחה שאתם מכירים את המושגים הבסיסיים בעולם התכנות וה-Action Script. במידה ולא, אני ממליץ לקרוא את המאמר:
articles/programming-flash-actionscript-terms-hebrew-dictionary-t407.html

אז מה זה דוקומנטציה?

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

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

איך מגיעים לזה?

הלינק הראשי של הדוקומנטציה של AS3:
http://www.adobe.com/livedocs/flash/9.0 ... LangRefV3/

הלינק הראשי של הדוקומנטציה של AS2:
http://help.adobe.com/en_US/AS2LCR/Flas ... Ref_1.html

בכללי מה שאני עושה כשאני רוצה מידע על מחלקה מסויימת, google זו הדרך הכי מהירה.
פשוט צריך לחפש את שם המחלקה + שם השפה (as2/as3) ותגיעו בתוצאה הראשונה למה שאתם מחפשים.

לדוגמא, אני רוצה מידע על המחלקה Loader באמצעותה ניתן לטעון תמונות וקבצי swf לתוך swf מסויים, אני נכנס לgoogle ורושם: "Loader as3".
כמו שאני ציפיתי... התוצאה הראשונה תיקח אותי לדוקומנטציה של המחלקה Loader בas3.
כשלוחצים על הלינק הזה מגיעים ל: http://www.adobe.com/livedocs/flash/9.0 ... oader.html

אז מה בעצם יש שם?

בואו נראה מה הדף הזה נותן לנו.
לאורך כל הדוגמאות נסתכל על המחלקה Loader, ואני ממליץ בחום שתקראו את החלק הבא של המאמר תוך כדי מעבר על החלקים הרלוונטיים בדוקומנטציה של המחלקה.
שוב... הנה הלינק:
http://www.adobe.com/livedocs/flash/9.0 ... oader.html

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

דוגמא:
בדוקומנטציה רשום שהpackage של Loader הוא flash.display.
מכאן נראה שכדי לייבא את המחלקה Loader נכתוב:

Syntax: [ Download ] [ Hide ]
Using actionscript3 Syntax Highlighting
import flash.display.Loader;
Parsed in 0.029 seconds, using GeSHi 1.0.8.4


Class:

שם המחלקה והscope שלה... שתדעו.

:Inheritance

עץ הירושה של האובייקט, במקרה של Loader:
Loader -> DisplayObjectContainer -> InteractiveObject -> DisplayObject -> EventDispatcher -> Object
כלומר, Loader יורש מDisplayObjectContainer יורש מInteractiveObject וכו...

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

Language Version:

גרסת השפה. במקרה שלנו: as3.

Runtime Versions:

הגרסאות עליהן המחלקה יכולה לרוץ (מבחינת נגן flash או air).
במקרה של Loader זה Air1.0 ו FlashPlayer9.
זה אומר שניתן לייצא את קובץ הswf שלנו לגרסת FlashPlaye9 או חדשה יותר (כמובן שלא לישנה יותר).

יש מחלקות כמו המחלקות של מנוע הטקסט החדש של פלאש (FTE) שהRuntime version שלהן הוא FlashPlayer10, וזה אומר שניתן לייצא את קבצי הswf שלנו לגרסת FlashPlayer10 ומעלה, לדוגמא:
http://ressources.mediabox.fr/doc/html/ ... Block.html

תיאור של המחלקה (ישר מתחת לRuntime Versions):

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

The Loader class is used to load SWF files or image (JPG, PNG, or GIF) files. Use the load() method to initiate loading. The loaded display object is added as a child of the Loader object.

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

See also:

רשימה של לינקים לדוקומנטציה של מחלקות והסברים שקשורים למחלקה עליה אנחנו קוראים.
אל תתעלמו מזה, יש שם מידע ממש מועיל! סתם לדוגמא במקרה של Loader, יש קישור להסבר על איך בכלל להשתמש במחלקה: הלינק בשם Loading display objects שלוקח ל
http://www.adobe.com/livedocs/flash/9.0 ... 00171.html

Public properties:

רשימה של כל המאפיינים של המחלקה. שימו לב למבנה (ניקח לדוגמא את המאפיין הראשון של (Loader:
יש לנו את שם המאפיין והסוג שלו (איזו מחלקה הוא): content:DisplayObject, כאשר content זה שם המאפיין וDisplayObject זה הסוג שלו.
מתחת לזה רשום תיאור של המאפיין.

שימו לב שאם רשום בתחילת התיאור [read only], למאפיין הזה יש רק getter ואין setter, כלומר – ניתן רק לקבל אותו ולא לשנות אותו.
מצד ימין רשום Defined By, שזה בעצם אומר באיזו מחלקה הוגדר המאפיין (במקרה שלנו – הוא הוגדר ב- Loader).

שתי הערות חשובות:
1. בלחיצה על שם המאפיין נקפוץ לחלק בדוקומנטציה שמסביר יותר בהרחבה על אותו המאפיין.
2.שימו לב שממש מתחת לכותרת Public properties רשום "Show Inherited Public Properties".
בלחיצה על זה תראו את כל התכונות שהמחלקה ירשה מהמחלקות ממנה היא יורשת.
במצב זה, בחלק של "Defined By" תראו באיזו מחלקה בדיוק המאפיין נכתב.

Pubilc Methods:

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

לדוגמא, הפונקציה load של האובייקט Loader מקבלת בפרמטר הראשון פרמטר מסוג URLRequest. מה זה בכלל URLRequest? תלחצו על הלינק ותראו ;)

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

Events:

רשימה של כל הארועים שהוגדרו באובייקט.
אבל רגע, אם נסתכל ברשימה של האובייקט Loader נראה שהיא ריקה. האם זה אומר שהאוביקט Loader לא יורה ארועים(מה שניקרה מדספצ' ארועים)?
ממש לא! אם תלחצו על "Show inherited Events" תקבלו רשימה של כל הארועים אותם Loader ירשה ויכולה לירות.

Property details, Constructor details ו-Method details:

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

והחלק האחרון והמאוד חשוב – Examples:

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

לסיכום:

זהו, עברו על כל מה שהדוקומנטציה נותנת לנו.
חשוב לציין ששימוש בדוקומנטציה הוא חלק בלתי נפרד מפיתוח.
ככל שנשבור את הראש יותר על להבין איך הדברים עובדים, ככה נשתפר כמתכנתים (כמובן שגם למעצבים בפלאש יש הרבה מה לשאוב מהמקור הזה).
עם זאת, עד כמה שהדוקומנטציה היא מקור גדול למידע, היא רק טיפה קטנה למה שיש לנו אי שם בעולם האינטרנט... ומה היא המסקנה מהמשפט הפלצני הזה?
אם אתם לא מבינים/מצליחים משהו - תשתמשו בחיפוש או Google it!
:פינגוין:
סמל אישי של המשתמש
dor sakal
 
הודעות: 172
הצטרף: 13 מרץ 2010, 20:05

Re: תכנות: שימוש בדוקומנטציה [מתחיל]

הודעהעל ידי אמיתי טויטי ב 20 יוני 2010, 10:54

אפשר להרחיב קצת את המדריך?

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

אשמח לדעת איך אני בונה את זה.
תודה.
סמל אישי של המשתמש
אמיתי טויטי
 
הודעות: 332
הצטרף: 13 מרץ 2010, 19:19

Re: תכנות: שימוש בדוקומנטציה [מתחיל]

הודעהעל ידי sigalmaria ב 20 יוני 2010, 11:07

כן ,באמת איך אפשר ליצור כמו ב java שאתה יכול ליצור javadoc אז יש לך אפשרות ליצור ליצור html אם אתה כותב את הערות שלך ב docomments
לדוגמא
/**
@author
@exception
@return
**/


וכו....
sigalmaria
 
הודעות: 193
הצטרף: 02 יוני 2010, 00:18
מיקום: Flex/AS3/Flash/Java

Re: תכנות: שימוש בדוקומנטציה [מתחיל]

הודעהעל ידי אמיתי טויטי ב 20 יוני 2010, 12:10

איך אני מייצא את הקובץ?
סמל אישי של המשתמש
אמיתי טויטי
 
הודעות: 332
הצטרף: 13 מרץ 2010, 19:19

Re: תכנות: שימוש בדוקומנטציה [מתחיל]

הודעהעל ידי sigalmaria ב 20 יוני 2010, 13:06

כן. יש אפשרות ב eclipse אבל ב java develpment kit ללכת ל
project--->generate javadoc
אתה מנתב אותו ל:
C:\Program Files\Java\jdk1.6.0_18\bin\javadoc.exe
ואז....................................
Loading source file C:\Users\maria\Desktop\java\Search\src\Search.java...
Constructing Javadoc information...
Standard Doclet version 1.6.0_18
Building tree for all the packages and classes...
Generating C:\Users\maria\Desktop\java\Search\doc\Search.html...
C:\Users\maria\Desktop\java\Search\src\Search.java:256: warning - @return tag has no arguments.
C:\Users\maria\Desktop\java\Search\src\Search.java:82: warning - @return tag has no arguments.
Generating C:\Users\maria\Desktop\java\Search\doc\package-frame.html...
Generating C:\Users\maria\Desktop\java\Search\doc\package-summary.html...
Generating C:\Users\maria\Desktop\java\Search\doc\package-tree.html...
Generating C:\Users\maria\Desktop\java\Search\doc\constant-values.html...
Generating C:\Users\maria\Desktop\java\Search\doc\class-use\Search.html...
Generating C:\Users\maria\Desktop\java\Search\doc\package-use.html...
Building index for all the packages and classes...
Generating C:\Users\maria\Desktop\java\Search\doc\overview-tree.html...
Generating C:\Users\maria\Desktop\java\Search\doc\index-files\index-1.html...
Generating C:\Users\maria\Desktop\java\Search\doc\index-files\index-2.html...
Generating C:\Users\maria\Desktop\java\Search\doc\index-files\index-3.html...
Generating C:\Users\maria\Desktop\java\Search\doc\index-files\index-4.html...
Generating C:\Users\maria\Desktop\java\Search\doc\index-files\index-5.html...
Generating C:\Users\maria\Desktop\java\Search\doc\index-files\index-6.html...


נוצרת לך תקיה של דפי html אם כל הדקומנטציה , בפלאקס אין לך את האפשרות הזאת תחת
project , כרנאה ואין בכלל, לא הייתי בטוחה אז שאלתי אותך
sigalmaria
 
הודעות: 193
הצטרף: 02 יוני 2010, 00:18
מיקום: Flex/AS3/Flash/Java

Re: תכנות: שימוש בדוקומנטציה [מתחיל]

הודעהעל ידי atarsh ב 20 יוני 2010, 13:31

כמובן שיש אפשרות.
הגדרות איך לכתוב כך שהג'נרייטור יבין
גם ל- MXML
כך תריץ את הג'נרייטור

ותודה לאיתן שאסף את הלינקים.
סמל אישי של המשתמש
atarsh
 
הודעות: 1310
הצטרף: 11 מרץ 2010, 09:02
מיקום: איפשהו.. around.

Re: תכנות: שימוש בדוקומנטציה [מתחיל]

הודעהעל ידי sigalmaria ב 20 יוני 2010, 13:38

תודה
sigalmaria
 
הודעות: 193
הצטרף: 02 יוני 2010, 00:18
מיקום: Flex/AS3/Flash/Java

Re: תכנות: שימוש בדוקומנטציה [מתחיל]

הודעהעל ידי אמיתי טויטי ב 20 יוני 2010, 13:47

אני עובד עם FD ומצאתי שם אפשרות ל-Documentation Generator...אבל אני לא ממש מבין איך עובדים איתה...

איציק? :)
סמל אישי של המשתמש
אמיתי טויטי
 
הודעות: 332
הצטרף: 13 מרץ 2010, 19:19

Re: תכנות: שימוש בדוקומנטציה [מתחיל]

הודעהעל ידי IAP ב 20 יוני 2010, 18:13

לג'נרט דוקיומינציה אוטומאטית

בFD זה פשוט.

קודם כל, מעל כל מאפיין או שיטה ומעל המחלקה עצמה, אתה יכול לכתוב הערות שנקראות JavaDoc, והן יוכנסו באופן אוטומטי לדוקומנטציה המג'ונרטת
לשם דיקמונט שכזה בFD אתה פשוט צריך לכתוב
Syntax: [ Download ] [ Hide ]
Using actionscript3 Syntax Highlighting
/**
Parsed in 0.028 seconds, using GeSHi 1.0.8.4

מעל משתנה שיטה או מחלקה וFD כבר תשלים לך לבד את התגים באופן אוטומטי, על פי הפרמטרים של אותה פונקציה והערך המוחזר
Syntax: [ Download ] [ Hide ]
Using actionscript3 Syntax Highlighting
/**
*
* @parem mc
* @return
*/
Parsed in 0.030 seconds, using GeSHi 1.0.8.4

כל שעליך לעשות הוא להכניס את התיאור המילולי שלך (זה החלק החשוב!)

הפעולה הזו, בלי קשר לג'ינרוט האוטומטי, היא חשובה מעין כמותה להבנה של קוד. יש מחלקות שאני כותב שבהן ההערות תופסות יותר מהקוד עצמו. (את היחס הזה אני בודק באמצעות פלאגאין Source Code Statistics).
יש שיטה נוספת לדקמנט בצורה שתיג'נרט וזה על ידי שלושה סלשים:
Syntax: [ Download ] [ Hide ]
Using actionscript3 Syntax Highlighting
///
Parsed in 0.030 seconds, using GeSHi 1.0.8.4

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

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

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

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

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

אם לא, הצץ בפתיל הזה (למרות שהפלאגאין יותר יעיל):
http://www.flashdevelop.org/community/v ... f=9&t=2821

רק דבר אחד אחרון:
עברי, דבר עברית!
"לייצר תיעוד באופן ממוכן"
:שמש:
סמל אישי של המשתמש
IAP
 
הודעות: 554
הצטרף: 15 מרץ 2010, 21:27

Re: תכנות: שימוש בדוקומנטציה [מתחיל]

הודעהעל ידי אמיתי טויטי ב 20 יוני 2010, 19:15

איזה מלך אתה יאללה.

לגבי הג'ינרוט...תאשים את איתן, הוא כל הזמן מלמד פה אנשים לאנגלש פעלים :צארלס:
סמל אישי של המשתמש
אמיתי טויטי
 
הודעות: 332
הצטרף: 13 מרץ 2010, 19:19

Re: תכנות: שימוש בדוקומנטציה [מתחיל]

הודעהעל ידי atarsh ב 20 יוני 2010, 19:49

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

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

דרך אגב 4: asDoc, לא javadoc. מאוד דומה (נחשו מי העתיק ממי), אבל יש שם מיוחד.
סמל אישי של המשתמש
atarsh
 
הודעות: 1310
הצטרף: 11 מרץ 2010, 09:02
מיקום: איפשהו.. around.


חזור אל מאמרים ומדריכים לפלאש ומעבר

 


  • שרשורים בנושאים דומים
    תגובות
    צפיות
    הודעה אחרונה

מי מחובר

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

cron