Pages

September 10, 2009

FlexPMD from Flex Builder

Scroll down for English translation...

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

תשמעו, אתם מריצים את זה על הפרוייקט והוא מוצא תחלואות שלא היו מביישות את סומליה. ממש ממש כלי טוב, פשוט ויעיל העוזר לייצר קוד טוב יותר, ברם (ואתם ידעתם שזה יבוא), אליה וקוץ בה.
זה מגניב שאפשר להפעיל את זה אפילו מהמטבח של גיל חובב (mvn, ant, cmd) אבל אני רוצה דרך מהירה ויעילה להפעיל את העניינים. משהו של "קליק אחד ויאללא לרפואה", משהו של "מתוך פלקס בילדר ולעסק", וזה נכון שאדובה אומרים שהם עובדים על פלאג-אין לפלקס בילדר, אבל סאחבק לא נודע בשל חיכיונו למשיחי-תוכנה החל לתור אחר פתרון.
External tools!
מה שעוללתי הוא external tool בתוך Flex Builder, שיקרא Create PMD, והוא ידע לפנות ולבצע את הפעולות, נכון למיקום הבחירה בעץ הפרוייקט. כלומר, אם תבחרו את ה root, קובץ ה- PMD יופיע שם, אם תבחרו package, הקובץ יופיע בה.
תעקבו אחר הצעדים בתחתית הפוסט (הם באנגלית, אני יודע, אבל אתם תתמודדו), ובשלוש דקות יהיה לכם כפתור שמייצר PMD בקליק אחד. בכדי לחזות בתוצאות באופן נהיר, אדובה מציעים לנו את ה viewer שלהם. כל שצריך הוא להעלות את ה- PMD אליו וחזות בזוועות הקוד.
אם יש בעיות עם ה- tool, דברו איתי :).


Hi guys,
Recently Adobe has launched a new open source project called FlexPMD. You can read all about it here, but here are the highlights:

“FlexPMD is a tool that helps to improve code quality by auditing any AS3/Flex source directory and detecting common bad practices, such as:

* Unused code (functions, variables, constants, etc.)
* Inefficient code (misuse of dynamic filters, heavy constructors, etc.)
* Over-complex code (nested loops, too many conditionals, etc.)
* Over-long code (classes, methods, etc.)
* Incorrect use of the Flex component lifecycle (commitProperties, etc.)”

Well this is multi-nice, but it seems that we need a better/quicker way to invoke it on our projects than have it on the Maven site/Ant/CMD. This is something that we need on a day-to-day, hour-to-hour basis.
So until the Flex Builder plug-in will be out (they are working on it), here is my solution, and you are all welcomed to adopt it for better coding:

STPES:

Download the “command-line” version from adobe and extract it onto your local machine.
Open Flex Builder.
On the top menu, go to Run > External Tools > Open External Tools Dialog…
Create a new External tool and call it “Create PMD”.
Fill it according to the following:
  • The Location is where the java.exe can be found
  • The Working Directory is set to a variable which is the selected resource on the project tree (the variable name is “resource_loc” and can be found on the variables list).
  • The Arguments are where the flex-pmd-command-line-1.0.RC3.jar is found, the source (“s”) and output (“o”) folders which are set to be at the same location as the Working Directory.
Ok – all you need to do now, is to select a resource on the project tree and run this tool.
After the tool has completed its work – you will see a pmd.xml file on the same folder you’ve selected on the project tree (if you don’t, refresh the tree, it’s there…).
Launch Adobe PMD viewer URL.
This is the viewer for PMD that Adobe created (If you’re really lazy, you can open the viewer directly from Flex Builder… but that's another story).
Load the file onto it and witness the HORROR :)

If you encounter any trouble with the tool, please let me know.
Cheers.



2 comments:

vertical jump development bible said...

Never had any problems using it myself, good work as far as I'm concerned!

vertical jump development bible

Flashmattic said...

Happy to hear that :)