Mr. Ankur Sharma - PDE good practices

804 views
751 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
804
On SlideShare
0
From Embeds
0
Number of Embeds
113
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mr. Ankur Sharma - PDE good practices

  1. 1. PDE Good Practices Ankur Sharma PDE co-lead @ankur_sharma blog.ankursharma.org
  2. 2. #1 Separation of Concerns <ul><li>A plug-in is used to group your code into a modular, extendable and sharable unit. </li></ul><ul><li>Do not create monolithic plug-ins </li></ul><ul><li>Separate the platform/locale code into fragments </li></ul><ul><li>Separate Core, UI, Doc, etc </li></ul>
  3. 3. #2 bundle-localization <ul><li>Externalize bundle strings </li></ul><ul><li>‘ Usage of non-externalized strings’ preference </li></ul>
  4. 8. #3 Lazy-loading <ul><li>Prefer to have lazy loading plug-ins </li></ul><ul><ul><li>Helps reduce memory footprint </li></ul></ul><ul><ul><li>Every plug-in loads with a dependency baggage </li></ul></ul><ul><ul><li>Judiciously make plug-ins reusable </li></ul></ul>
  5. 9. #3 Singletons <ul><li>Prefer singleton plug-ins </li></ul><ul><ul><li>but there is a cost involved </li></ul></ul><ul><ul><li>singleton plug-ins can not be dynamically installed </li></ul></ul>
  6. 12. #4 Use startup code carefully <ul><li>Plug-in startup and constructor </li></ul><ul><li>org.eclipse.ui.startup extension </li></ul>
  7. 13. #5 Prefer target over workspace <ul><li>Prefer adding the required plug-ins to Target Platform </li></ul><ul><li>Adding them to workspace makes it difficult to track and manage. </li></ul>
  8. 14. #6 Share target definitions
  9. 15. #7 Keep build.properties synced <ul><li>Export wizard and headless build uses build.properties </li></ul><ul><li>Use build preferences to keep it in sync with classpath </li></ul><ul><li>This helps avoid “ …but it was working in my workspace! ” situations. </li></ul>
  10. 17. #8 EE and Java compliance <ul><li>Set the Execution Environments to the lowest required JRE version. </li></ul><ul><li>Set the appropriate Java Compiler preferences </li></ul>
  11. 18. #9 Use proper version ranges <ul><li>Use proper version restrictions </li></ul><ul><li>Also helps in catching API leaks </li></ul>
  12. 19. #10 Versions are not for marketing <ul><li>Version numbering is very important </li></ul><ul><li>Version numbers are not meant for marketing </li></ul><ul><li>Stick to major.minor.micro-qualifier </li></ul><ul><li>Bump up the correct number in version on releases. </li></ul>
  13. 20. #11 Define API carefully <ul><li>Put classes in correct packages </li></ul><ul><li>Public, internal and x-friends </li></ul><ul><li>Don’t Re-export everything </li></ul><ul><li>An Eclipse API is forever </li></ul>
  14. 21. #12 Use API Tools <ul><li>API Tools will help you with </li></ul><ul><ul><li>#9 Use proper version ranges </li></ul></ul><ul><ul><li>#10 Versions are not for marketing </li></ul></ul><ul><ul><li>#11 Define API carefully </li></ul></ul>
  15. 22. thank you

×